aboutsummaryrefslogtreecommitdiff
path: root/store/config/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'store/config/nvim')
-rw-r--r--store/config/nvim/init.lua11
-rw-r--r--store/config/nvim/lazy-lock.json27
-rw-r--r--store/config/nvim/lua/plugins.lua3
-rw-r--r--store/config/nvim/lua/setup/init.lua5
-rw-r--r--store/config/nvim/lua/setup/lsp.lua56
-rw-r--r--store/config/nvim/lua/setup/plugins/conform.lua18
-rw-r--r--store/config/nvim/lua/setup/plugins/init.lua3
-rw-r--r--store/config/nvim/lua/setup/plugins/lint.lua80
-rw-r--r--store/config/nvim/lua/setup/win.lua1
9 files changed, 110 insertions, 94 deletions
diff --git a/store/config/nvim/init.lua b/store/config/nvim/init.lua
index d038019..70eb8ef 100644
--- a/store/config/nvim/init.lua
+++ b/store/config/nvim/init.lua
@@ -1,3 +1,5 @@
+vim.crupest = {}
+
local lazy_path = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.uv.fs_stat(lazy_path) then
vim.fn.system({
@@ -14,11 +16,18 @@ require("lazy").setup {
spec = { { import = "plugins" } }
}
-if vim.g.neovide then
+vim.cmd([[
+ if has('nvim') && executable('nvr')
+ let $GIT_EDITOR = 'nvr -cc split --remote-wait'
+ endif
+]])
+
+if vim.g.neovide or vim.env.ALACRITTY_WINDOW_ID then
vim.opt.guifont = "Maple Mono";
vim.g.neovide_normal_opacity = 0.95;
vim.g.neovide_input_ime = false;
vim.g.neovide_cursor_animate_in_insert_mode = false
+ vim.g.neovide_scroll_animation_far_lines = 0
vim.g.neovide_input_macos_option_key_is_meta = 'only_left'
vim.cmd("colorscheme catppuccin-macchiato")
end
diff --git a/store/config/nvim/lazy-lock.json b/store/config/nvim/lazy-lock.json
index f323937..eb28615 100644
--- a/store/config/nvim/lazy-lock.json
+++ b/store/config/nvim/lazy-lock.json
@@ -1,20 +1,21 @@
{
- "catppuccin": { "branch": "main", "commit": "fa42eb5e26819ef58884257d5ae95dd0552b9a66" },
+ "catppuccin": { "branch": "main", "commit": "3aaf3ab60221bca8edb1354e41bd514a22c89de2" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
- "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
- "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
- "conform.nvim": { "branch": "master", "commit": "0e93e0d12d2f7ebdea9e3e444dfaff0050cefbe6" },
- "gitsigns.nvim": { "branch": "main", "commit": "d0f90ef51d4be86b824b012ec52ed715b5622e51" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
+ "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
+ "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
+ "gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
- "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" },
- "neo-tree.nvim": { "branch": "v3.x", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" },
- "nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" },
- "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
+ "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
+ "mini.bufremove": { "branch": "main", "commit": "a1bbb2af40f7773c8cee9e364aac4a724b5c10de" },
+ "neo-tree.nvim": { "branch": "v3.x", "commit": "cea666ef965884414b1b71f6b39a537f9238bdb2" },
+ "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
+ "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
- "nvim-lint": { "branch": "master", "commit": "cc26ae6a620298bb3f33b0e0681f99a10ae57781" },
- "nvim-lspconfig": { "branch": "master", "commit": "a182334ba933e58240c2c45e6ae2d9c7ae313e00" },
+ "nvim-lint": { "branch": "master", "commit": "7ef127aaede2a4d5ad8df8321e2eb4e567f29594" },
+ "nvim-lspconfig": { "branch": "master", "commit": "4da7247b2b348b4f6cade30a7a7fcb299879d275" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
- "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
- "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
+ "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" },
+ "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }
}
diff --git a/store/config/nvim/lua/plugins.lua b/store/config/nvim/lua/plugins.lua
index 8458575..b511c5a 100644
--- a/store/config/nvim/lua/plugins.lua
+++ b/store/config/nvim/lua/plugins.lua
@@ -31,11 +31,12 @@ return {
dependencies = { 'nvim-lua/plenary.nvim' }
},
{ "lewis6991/gitsigns.nvim" },
+ { "sindrets/diffview.nvim" },
{ "hrsh7th/nvim-cmp" },
{ "hrsh7th/cmp-nvim-lsp" },
{ "hrsh7th/cmp-buffer" },
{ "hrsh7th/cmp-path" },
+ { "echasnovski/mini.bufremove" },
{ "windwp/nvim-autopairs" },
{ "mfussenegger/nvim-lint" },
- { 'stevearc/conform.nvim' }
}
diff --git a/store/config/nvim/lua/setup/init.lua b/store/config/nvim/lua/setup/init.lua
index ec8c8d4..d5522d2 100644
--- a/store/config/nvim/lua/setup/init.lua
+++ b/store/config/nvim/lua/setup/init.lua
@@ -1,5 +1,3 @@
--- spellchecker: words termguicolors
-
local function close_float()
local wins = vim.api.nvim_list_wins()
for _, v in ipairs(wins) do
@@ -24,6 +22,9 @@ local function setup()
vim.keymap.set("n", "<c-tab>", "<cmd>bnext<cr>")
vim.keymap.set("n", "<c-s-tab>", "<cmd>bNext<cr>")
vim.keymap.set("n", "<esc>", close_float)
+ vim.keymap.set("n", "<C-q>", function ()
+ require("mini.bufremove").delete()
+ end)
vim.keymap.set('t', '<A-n>', '<C-\\><C-n>')
vim.keymap.set('t', '<A-p>', function()
local register = vim.fn.input("Enter register: ")
diff --git a/store/config/nvim/lua/setup/lsp.lua b/store/config/nvim/lua/setup/lsp.lua
index a11ad34..45aa100 100644
--- a/store/config/nvim/lua/setup/lsp.lua
+++ b/store/config/nvim/lua/setup/lsp.lua
@@ -1,5 +1,3 @@
--- spellchecker: words denols luals
-
vim.lsp.config("*", {
capabilities = vim.tbl_extend("force",
vim.lsp.protocol.make_client_capabilities(),
@@ -15,24 +13,23 @@ local function client_name_is(ev, name)
end
local function setup_clangd()
- local clangd = "clangd"
- local brew_clangd_path = "/usr/local/opt/llvm/bin/clangd"
-
- if vim.uv.fs_stat(brew_clangd_path) ~= nil then
- clangd = brew_clangd_path
- end
-
- vim.lsp.config("clangd", { cmd = { clangd } })
-
- vim.api.nvim_create_autocmd('LspAttach', {
+ vim.api.nvim_create_autocmd("LspAttach", {
callback = function(ev)
if client_name_is(ev, "clangd") then
- vim.keymap.set('n', 'grs', "<cmd>ClangdSwitchSourceHeader<cr>", {
+ vim.keymap.set("n", "grs", "<cmd>LspClangdSwitchSourceHeader<cr>", {
buffer = ev.buf
})
end
end
})
+
+ vim.api.nvim_create_autocmd("LspDetach", {
+ callback = function(ev)
+ if client_name_is(ev, "clangd") then
+ vim.keymap.del("n", "grs", { buffer = ev.buf })
+ end
+ end
+ })
end
local function setup_lua_ls()
@@ -57,6 +54,11 @@ local function setup_lua_ls()
})
end
+function vim.crupest.no_range_format()
+ print("Lsp doesn't support range formatting. Use gqa to format the whole document.")
+ return 0
+end
+
local function setup_denols()
vim.lsp.config("denols", {
root_dir = function(bufnr, on_dir)
@@ -69,10 +71,22 @@ local function setup_denols()
end,
})
- vim.api.nvim_create_autocmd('LspAttach', {
+ vim.api.nvim_create_autocmd("LspAttach", {
+ callback = function(ev)
+ if client_name_is(ev, "denols") then
+ vim.api.nvim_set_option_value(
+ "formatexpr",
+ "v:lua.vim.crupest.no_range_format()",
+ { buf = ev.buf }
+ )
+ end
+ end
+ })
+
+ vim.api.nvim_create_autocmd("LspDetach", {
callback = function(ev)
if client_name_is(ev, "denols") then
- vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
+ vim.api.nvim_set_option_value("formatexpr", "", { buf = ev.buf })
end
end
})
@@ -80,6 +94,18 @@ end
local function setup()
+ vim.api.nvim_create_autocmd("LspAttach", {
+ callback = function(ev)
+ vim.keymap.set("n", "gqa", vim.lsp.buf.format, { buffer = ev.buf })
+ end
+ })
+
+ vim.api.nvim_create_autocmd("LspDetach", {
+ callback = function(ev)
+ vim.keymap.del("n", "gqa", { buffer = ev.buf })
+ end
+ })
+
setup_clangd()
setup_lua_ls()
setup_denols()
diff --git a/store/config/nvim/lua/setup/plugins/conform.lua b/store/config/nvim/lua/setup/plugins/conform.lua
deleted file mode 100644
index e14c3f9..0000000
--- a/store/config/nvim/lua/setup/plugins/conform.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-local function setup()
- require("conform").setup({
- formatters_by_ft = {
- javascript = { "prettierd", "prettier", stop_after_first = true },
- typescript = { "prettierd", "prettier", stop_after_first = true },
- javascriptreact = { "prettierd", "prettier", stop_after_first = true },
- typescriptreact = { "prettierd", "prettier", stop_after_first = true },
- markdown = { "prettierd", "prettier", stop_after_first = true },
- },
- default_format_opts = {
- lsp_format = "fallback",
- },
- })
-end
-
-return {
- setup = setup
-}
diff --git a/store/config/nvim/lua/setup/plugins/init.lua b/store/config/nvim/lua/setup/plugins/init.lua
index 88eca4f..ac99886 100644
--- a/store/config/nvim/lua/setup/plugins/init.lua
+++ b/store/config/nvim/lua/setup/plugins/init.lua
@@ -12,12 +12,13 @@ local function setup()
require("setup.plugins.telescope").setup()
require("setup.plugins.gitsigns").setup()
+ require("diffview").setup {}
require("setup.plugins.tree-sitter").setup()
require("setup.plugins.lint").setup()
- require("setup.plugins.conform").setup()
require("setup.plugins.cmp").setup()
require("nvim-autopairs").setup {}
+ require('mini.bufremove').setup {}
end
return {
diff --git a/store/config/nvim/lua/setup/plugins/lint.lua b/store/config/nvim/lua/setup/plugins/lint.lua
index 928841d..d03f539 100644
--- a/store/config/nvim/lua/setup/plugins/lint.lua
+++ b/store/config/nvim/lua/setup/plugins/lint.lua
@@ -1,4 +1,6 @@
-local lint = require("lint")
+--- spellchecker: ignore markdownlintrc
+
+---@alias CruLinter { name: string, config_patterns: string[], filetypes: string[] | nil, fast: boolean }
local cspell = {
name = "cspell",
@@ -31,15 +33,30 @@ local markdownlint = {
fast = true,
}
-local linters = { cspell, markdownlint }
-
-local linter_names = vim.tbl_map(function(l) return l.name end, linters)
+local linters = { cspell = cspell, markdownlint = markdownlint }
-local function cru_lint(linter, opt)
- opt = opt or {}
+---@param linter CruLinter
+---@param buf integer
+---@return string | nil
+local function find_config(linter, buf)
+ local files = vim.fs.find(linter.config_patterns, {
+ path = vim.api.nvim_buf_get_name(buf), upward = true })
+ if #files ~= 0 then
+ return files[1];
+ end
+ return nil
+end
- local buf = opt.buf or 0
+vim.list_extend(require("lint.linters.markdownlint").args, {
+ "--config",
+ function()
+ return find_config(markdownlint, 0);
+ end
+})
+---@param linter CruLinter
+---@param buf integer
+function vim.crupest.lint(linter, buf)
if linter.filetypes then
local filetype = vim.api.nvim_get_option_value("filetype", { buf = buf })
if not vim.list_contains(linter.filetypes, filetype) then
@@ -47,50 +64,29 @@ local function cru_lint(linter, opt)
end
end
- if 0 ~= #vim.fs.find(linter.config_patterns, {
- path = vim.api.nvim_buf_get_name(opt.buf), upward = true }) then
- lint.try_lint(linter.name)
+ if find_config(linter, buf) then
+ require("lint").try_lint(linter.name)
end
end
-local function cru_lint_one(name, opt)
- for _, linter in ipairs(linters) do
- if linter.name == name then
- cru_lint(linter, opt)
- return
- end
- end
- vim.notify("No linter named " .. name .. " is configured.", vim.log.levels.ERROR, {})
-end
-
-local function cru_lint_all(opt, fast)
- for _, linter in ipairs(linters) do
+function vim.crupest.lint_all(buf, fast)
+ for _, linter in pairs(linters) do
if not fast or linter.fast then
- cru_lint(linter, opt)
+ vim.crupest.lint(linter, buf)
end
end
end
-local function cru_lint_all_fast(opt)
- local buf = opt.buf
- if vim.api.nvim_get_option_value("buftype", { buf = buf }) == "" then
- cru_lint_all(opt, true)
- end
-end
-
local function setup()
- vim.api.nvim_create_autocmd({ "BufReadPost", "InsertLeave", "TextChanged" }, { callback = cru_lint_all_fast })
-
- local function cru_lint_cmd(opt)
- if #opt.args == 0 then
- cru_lint_all(opt, false)
- else
- cru_lint_one(opt.args, opt)
- end
- end
-
- vim.api.nvim_create_user_command("CruLint", cru_lint_cmd,
- { nargs = '?', complete = function() return linter_names end })
+ vim.api.nvim_create_autocmd(
+ { "BufReadPost", "InsertLeave", "TextChanged" },
+ {
+ callback = function(opt)
+ if vim.api.nvim_get_option_value("buftype", { buf = opt.buf }) == "" then
+ vim.crupest.lint_all(opt.buf, true)
+ end
+ end
+ })
end
return {
diff --git a/store/config/nvim/lua/setup/win.lua b/store/config/nvim/lua/setup/win.lua
index 90e168a..9aa979d 100644
--- a/store/config/nvim/lua/setup/win.lua
+++ b/store/config/nvim/lua/setup/win.lua
@@ -1,4 +1,3 @@
--- spellchecker: words pwsh
-- spellchecker: ignore shellcmdflag shellredir shellpipe shellquote shellxquote
local function setup()
vim.cmd([[