diff options
author | Daniil Rozanov <dev@rozanov.info> | 2025-07-02 13:25:16 +0400 |
---|---|---|
committer | Daniil Rozanov <dev@rozanov.info> | 2025-07-02 13:25:16 +0400 |
commit | 9454a1f8cb7fc124b8014dd604c914d70394a01e (patch) | |
tree | 093c04239f3faf6bb98aef4fe3feb09097fd4090 /nvim/.config | |
parent | 95504e1540872755bc6a200561462a9575ad7835 (diff) |
Diffstat (limited to 'nvim/.config')
19 files changed, 143 insertions, 139 deletions
diff --git a/nvim/.config/nvim/after/ftplugin/c.lua b/nvim/.config/nvim/after/ftplugin/c.lua new file mode 100644 index 0000000..b9b960b --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/c.lua @@ -0,0 +1,14 @@ +vim.keymap.set( + "n", + "<localleader>s", + "<cmd>ClangdSwitchSourceHeader<cr>", + { desc = "Switch source/header", buffer = 0 } +) + +vim.keymap.set("n", "<localleader>a", "<cmd>ClangdAST<cr>", { desc = "Clang's AST", buffer = 0 }) + +vim.keymap.set("n", "<localleader>m", "<cmd>ClangdMemoryUsage<cr>", { desc = "Clang's memory usage", buffer = 0 }) + +vim.keymap.set("n", "<localleader>i", "<cmd>ClangdSymbolInfo<cr>", { desc = "Clang's symbol info", buffer = 0 }) + +vim.keymap.set("n", "<localleader>a", "<cmd>ClangdTypeHierarchy<cr>", { desc = "Type hierarchy", buffer = 0 }) diff --git a/nvim/.config/nvim/after/ftplugin/log.lua b/nvim/.config/nvim/after/ftplugin/log.lua new file mode 100644 index 0000000..9034143 --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/log.lua @@ -0,0 +1,3 @@ +-- vim.opt_local.spell = false + +-- fasdf diff --git a/nvim/.config/nvim/lsp/clangd.lua b/nvim/.config/nvim/lsp/clangd.lua index 37d811f..beaf665 100755 --- a/nvim/.config/nvim/lsp/clangd.lua +++ b/nvim/.config/nvim/lsp/clangd.lua @@ -1,5 +1,5 @@ return { - cmd = { "clangd", "--background-index" }, + cmd = { "clangd", "--background-index", "--experimental-modules-support" }, root_markers = { ".clangd", ".clang-tidy", @@ -16,6 +16,9 @@ return { completion = { editsNearCursor = true, }, + semanticTokens = { + multilineTokenSupport = true, + }, }, }, } diff --git a/nvim/.config/nvim/lsp/cmake.lua b/nvim/.config/nvim/lsp/cmake.lua new file mode 100644 index 0000000..3fc70fc --- /dev/null +++ b/nvim/.config/nvim/lsp/cmake.lua @@ -0,0 +1,5 @@ +return { + cmd = { "neocmakelsp", "--stdio" }, + filetypes = { "cmake" }, + root_markers = { ".git", "build", "cmake" }, +} diff --git a/nvim/.config/nvim/lua/bundles/colorscheme.lua b/nvim/.config/nvim/lua/bundles/colorscheme.lua new file mode 100644 index 0000000..ce544f8 --- /dev/null +++ b/nvim/.config/nvim/lua/bundles/colorscheme.lua @@ -0,0 +1 @@ +vim.cmd "colorscheme kanagawa" diff --git a/nvim/.config/nvim/lua/bundles/telescope.lua b/nvim/.config/nvim/lua/bundles/telescope.lua index a272fce..b29c18d 100755 --- a/nvim/.config/nvim/lua/bundles/telescope.lua +++ b/nvim/.config/nvim/lua/bundles/telescope.lua @@ -10,62 +10,6 @@ require("telescope").setup { }, } --- require("telescope").setup { --- extensions = { --- fzf = {}, --- wrap_results = true, --- history = { --- path = vim.fs.joinpath(data, "telescope_history.sqlite3"), --- limit = 100, --- }, --- ["ui-select"] = { --- require("telescope.themes").get_dropdown(), --- }, --- }, --- defaults = { --- -- configure to use ripgrep --- vimgrep_arguments = { --- "rg", --- "--follow", -- Follow symbolic links --- "--hidden", -- for hidden files --- "--no-heading", -- Don't group matches by each file --- "--with-filename", -- Print the file path with the matched lines --- "--line-number", -- Show line numbers --- "--column", -- Show column numbers --- "--smart-case", -- Smart case search --- --- -- Exclude some patterns from search --- "--glob=!**/.git/*", --- "--glob=!**/.idea/*", --- "--glob=!**/.vscode/*", --- "--glob=!**/build/*", --- "--glob=!**/dist/*", --- "--glob=!**/yarn.lock", --- "--glob=!**/package-lock.json", --- }, --- }, --- pickers = { --- find_files = { --- hidden = true, --- -- needed to exclude some files & dirs from general search --- -- when not included or specified in .gitignore --- find_command = { --- "rg", --- "--files", --- "--hidden", --- "--glob=!**/.git/*", --- "--glob=!**/.idea/*", --- "--glob=!**/.vscode/*", --- "--glob=!**/build/*", --- "--glob=!**/dist/*", --- "--glob=!**/yarn.lock", --- "--glob=!**/package-lock.json", --- }, --- }, --- }, --- } --- - pcall(require("telescope").load_extension, "fzf") pcall(require("telescope").load_extension, "smart_history") pcall(require("telescope").load_extension, "rest") diff --git a/nvim/.config/nvim/lua/keymaps.lua b/nvim/.config/nvim/lua/keymaps.lua index 39d275a..dc66b77 100755 --- a/nvim/.config/nvim/lua/keymaps.lua +++ b/nvim/.config/nvim/lua/keymaps.lua @@ -1,3 +1,18 @@ +-- Keymaps working on Russian layout +local function escape(str) + local escape_chars = [[;,."|\]] + return vim.fn.escape(str, escape_chars) +end + +local en = [[`qwertyuiop[]asdfghjkl;'zxcvbnm]] +local en_shift = [[~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>]] +local ru = [[ёйцукенгшщзхъфывапролджэячсмить]] +local ru_shift = [[ËЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]] +vim.opt.langmap = vim.fn.join({ + escape(ru_shift) .. ";" .. escape(en_shift), + escape(ru) .. ";" .. escape(en), +}, ",") + -- Actions vim.keymap.set("n", "<leader>w", "<cmd>w<cr>", { desc = "Write buffer" }) vim.keymap.set("n", "<leader>W", "<cmd>wall<cr>", { desc = "Write all" }) @@ -27,7 +42,7 @@ vim.keymap.set("n", "<C-p>", "<cmd>bp<CR>", { desc = "cycles to the previous buf vim.keymap.set("c", "<c-n>", "<Down>") vim.keymap.set("c", "<c-p>", "<Up>") --- Treesitter textobjects +-- Treesitter text objects -- select vim.keymap.set({ "x", "o" }, "aa", function() require("nvim-treesitter-textobjects.select").select_textobject("@parameter.outer", "textobjects") @@ -78,7 +93,6 @@ end, { desc = "Leap remote action" }) vim.keymap.set("n", ";", function() require("substitute").operator() end, { noremap = true }) --- vim.keymap.set("n", ",,", require("substitute").line, { noremap = true }) vim.keymap.set("x", ";", function() require("substitute").visual() end, { noremap = true }) @@ -90,16 +104,17 @@ vim.keymap.set("n", "<leader>tz", "<cmd>ZenMode<cr>", { desc = "Zen mode" }) vim.keymap.set("n", "<leader>e", "<cmd>Oil<cr>", { desc = "Open file explorer" }) -- Telescope -vim.keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help" }) -vim.keymap.set("n", "<leader>fk", "<cmd>Telescope keymaps<cr>", { desc = "Keymaps" }) vim.keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Files" }) -vim.keymap.set("n", "<leader>fs", "<cmd>Telescope builtin<cr>", { desc = "Select Telescope" }) vim.keymap.set("n", "<leader>fw", "<cmd>Telescope grep_string<cr>", { desc = "Current Word" }) vim.keymap.set("n", "<leader>fg", "<cmd>Telescope live_grep<cr>", { desc = "Live Grep" }) vim.keymap.set("n", "<leader>fd", "<cmd>Telescope diagnostics<cr>", { desc = "Diagnostics" }) -vim.keymap.set("n", "<leader>fr", "<cmd>Telescope resume<cr>", { desc = "Resume" }) -vim.keymap.set("n", "<leader>f.", "<cmd>Telescope oldfiles<cr>", { desc = "Recent Files" }) +-- vim.keymap.set("n", "<leader>fr", "<cmd>Telescope resume<cr>", { desc = "Resume" }) +-- vim.keymap.set("n", "<leader>f.", "<cmd>Telescope oldfiles<cr>", { desc = "Recent Files" }) +-- vim.keymap.set("n", "<leader>fs", "<cmd>Telescope builtin<cr>", { desc = "Select Telescope" }) +-- vim.keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help" }) +-- vim.keymap.set("n", "<leader>fk", "<cmd>Telescope keymaps<cr>", { desc = "Keymaps" }) vim.keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<cr>", { desc = " Find existing buffers" }) +vim.keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = " Find existing buffers" }) vim.keymap.set("n", "<leader>fn", function() require("telescope.builtin").find_files { cwd = vim.fn.stdpath "config" } end, { desc = "Neovim files" }) @@ -122,7 +137,6 @@ end vim.keymap.set("n", "<leader>gg", "<cmd>Neogit<cr>", { desc = "Neogit" }) -- GitSigns - local gitsigns = function(bufnr) local gitsigns = require "gitsigns" @@ -181,8 +195,9 @@ local gitsigns = function(bufnr) map("n", "<leader>gq", gitsigns.setqflist, { desc = "Setqflist" }) -- Toggles - map("n", "<leader>tb", gitsigns.toggle_current_line_blame, { desc = "Toggle current line blame" }) - map("n", "<leader>tw", gitsigns.toggle_word_diff, { desc = "Toggle word diff" }) + map("n", "<leader>tgb", gitsigns.toggle_current_line_blame, { desc = "Toggle current line blame" }) + map("n", "<leader>tgw", gitsigns.toggle_word_diff, { desc = "Toggle word diff" }) + map("n", "<leader>tgs", gitsigns.toggle_signs, { desc = "Toggle signs" }) -- Text object map({ "o", "x" }, "ih", gitsigns.select_hunk, { desc = "Select hunk" }) @@ -224,5 +239,8 @@ vim.keymap.set("n", "<leader>tn", function() vim.opt.relativenumber = not vim.o.rnu vim.opt.number = not vim.o.nu end, { desc = "Number" }) +vim.keymap.set("n", "<leader>ts", function() + vim.opt.spell = not vim.o.spell +end, { desc = "Spelling" }) return { gitsigns = gitsigns, lsp = lsp } diff --git a/nvim/.config/nvim/lua/lsp.lua b/nvim/.config/nvim/lua/lsp.lua index 0e4df88..6f32cbd 100755 --- a/nvim/.config/nvim/lua/lsp.lua +++ b/nvim/.config/nvim/lua/lsp.lua @@ -1,8 +1,8 @@ vim.lsp.config("*", { root_markers = { ".git" } }) -vim.lsp.enable { "clangd", "lua_ls", "marksman" } +vim.lsp.enable { "clangd", "lua_ls", "marksman", "bashls", "cmake" } --- Probably I dont need this :\ +-- Probably I don't need this :\ vim.api.nvim_create_autocmd("LspAttach", { callback = function(ev) local client = vim.lsp.get_client_by_id(ev.data.client_id) diff --git a/nvim/.config/nvim/lua/options.lua b/nvim/.config/nvim/lua/options.lua index 443d136..488e702 100755 --- a/nvim/.config/nvim/lua/options.lua +++ b/nvim/.config/nvim/lua/options.lua @@ -34,8 +34,6 @@ vim.opt.sidescrolloff = 5 vim.opt.hlsearch = true -- Set highlight on search vim.opt.incsearch = true -vim.opt.background = "dark" - vim.opt.laststatus = 3 vim.opt.completeopt = { "menu", "menuone", "noselect" } @@ -45,4 +43,7 @@ vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos, vim.diagnostic.config { virtual_text = true, virtual_line = false } -vim.cmd "colorscheme poimandres" +vim.opt.spell = true +vim.opt.spelllang = "en,ru_yo" + +vim.opt.background = "dark" diff --git a/nvim/.config/nvim/lua/plugins/gitsigns.lua b/nvim/.config/nvim/lua/plugins/gitsigns.lua index dff6401..7c91dbe 100755 --- a/nvim/.config/nvim/lua/plugins/gitsigns.lua +++ b/nvim/.config/nvim/lua/plugins/gitsigns.lua @@ -16,6 +16,6 @@ require("gitsigns").setup { untracked = { text = "┆" }, }, on_attach = function(bufnr) - require("keybinds").gitsigns(bufnr) + require("keymaps").gitsigns(bufnr) end, } diff --git a/nvim/.config/nvim/lua/plugins/neorg.lua b/nvim/.config/nvim/lua/plugins/neorg.lua index 3a3ecb1..eeede50 100755 --- a/nvim/.config/nvim/lua/plugins/neorg.lua +++ b/nvim/.config/nvim/lua/plugins/neorg.lua @@ -1,14 +1,22 @@ require("neorg").setup { load = { ["core.defaults"] = {}, + ["core.ui"] = {}, + ["core.summary"] = {}, + ["core.autocommands"] = {}, + ["core.highlights"] = {}, + ["core.integrations.treesitter"] = {}, + ["core.neorgcmd"] = {}, ["core.concealer"] = {}, + ["core.latex.renderer"] = {}, + ["core.qol.toc"] = {}, ["core.dirman"] = { config = { workspaces = { - notes = "~/notes" + notes = "~/notes", }, - default_workspace = "notes" - } + default_workspace = "notes", + }, }, - } + }, } diff --git a/nvim/.config/nvim/lua/plugins/todo-comments.lua b/nvim/.config/nvim/lua/plugins/todo-comments.lua index 4b46f89..18dc91c 100755 --- a/nvim/.config/nvim/lua/plugins/todo-comments.lua +++ b/nvim/.config/nvim/lua/plugins/todo-comments.lua @@ -1,6 +1 @@ -return { - "folke/todo-comments.nvim", - event = "VimEnter", - dependencies = { "nvim-lua/plenary.nvim" }, - opts = { signs = false }, -} +require("todo-comments").setup { signs = false } diff --git a/nvim/.config/nvim/lua/plugins/toggleterm.lua b/nvim/.config/nvim/lua/plugins/toggleterm.lua index 7f20237..08ea37c 100755 --- a/nvim/.config/nvim/lua/plugins/toggleterm.lua +++ b/nvim/.config/nvim/lua/plugins/toggleterm.lua @@ -1,47 +1,21 @@ -return { - "akinsho/toggleterm.nvim", - version = "*", - config = function() - require("toggleterm").setup { - size = function(term) - if term.direction == "horizontal" then - return 15 - elseif term.direction == "vertical" then - return vim.o.columns * 0.33 - end - end, - } - - local Terminal = require("toggleterm.terminal").Terminal - local on_open = function(_) - vim.cmd "startinsert!" - -- vim.keymap.set("n", "q", "<cmd>close<CR>", { noremap = true, silent = true, buffer = term.bufnr }) - end - local on_close = function(_) - vim.cmd "startinsert!" - end - if vim.fn.executable "lazygit" then - local lazygit = Terminal:new { - cmd = "lazygit", - dir = "git_dir", - direction = "float", - on_open = on_open, - on_close = on_close, - count = 999, - } - vim.keymap.set("n", "<leader>gg", function() - lazygit:toggle() - end, { desc = "ToggleTerm LazyGit" }) +require("toggleterm").setup { + size = function(term) + if term.direction == "horizontal" then + return 15 + elseif term.direction == "vertical" then + return vim.o.columns * 0.33 end - - vim.keymap.set("n", "<leader>tf", function() - Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "float") - end) - vim.keymap.set("n", "<leader>tv", function() - Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "vertical") - end) - vim.keymap.set("n", "<leader>th", function() - Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "horizontal") - end) end, } + +local Terminal = require("toggleterm.terminal").Terminal +local on_open = function(_) + vim.cmd "startinsert!" +end +local on_close = function(_) + vim.cmd "startinsert!" +end + +vim.keymap.set("n", "<leader>tt", function() + Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "float") +end) diff --git a/nvim/.config/nvim/lua/plugins/which-key.lua b/nvim/.config/nvim/lua/plugins/which-key.lua index 5efa3e4..df9ca9d 100755 --- a/nvim/.config/nvim/lua/plugins/which-key.lua +++ b/nvim/.config/nvim/lua/plugins/which-key.lua @@ -8,5 +8,6 @@ wk.add { { "<leader>g", group = "Git" }, { "<leader>l", group = "LSP" }, { "<leader>t", group = "Toggle" }, + { "<leader>tg", group = "Gitsigns" }, { "<leader>d", group = "DAP" }, } diff --git a/nvim/.config/nvim/rocks.toml b/nvim/.config/nvim/rocks.toml index cfc6569..2c4a529 100644 --- a/nvim/.config/nvim/rocks.toml +++ b/nvim/.config/nvim/rocks.toml @@ -9,7 +9,9 @@ auto_setup = true "rocks-config.nvim" = "3.1.1" "rocks-lazy.nvim" = "1.2.0" "rocks-dev.nvim" = "1.8.0" - +"nightfox.nvim" = "3.10.0" +"gruvbox.nvim" = "2.0.0" +"kanagawa.nvim" = "scm" "2048.nvim" = "2.8.2" "auto-hlsearch.nvim" = { version = "1.1.0", event = "CmdlineEnter" } "better-escape.nvim" = "2.3.3" @@ -46,22 +48,18 @@ harpoon = "scm" luasnip = "2.4.0" neogen = "2.20.0" neogit = "2.0.0" -neorg = { version = "9.3.0", ft = "norg" } +neorg = "9.3.0" neorg-conceal-wrap = "1.0.1" -nvim-autopairs = { version = "scm", event = "InsertEnter" } +nvim-autopairs = "scm" nvim-bqf = { version = "1.1.1", ft = "qf" } -nvim-cmp = { version = "scm", event = "InsertEnter" } +nvim-cmp = "scm" nvim-dap = "0.10.0" nvim-dap-ui = "4.0.0" nvim-dap-virtual-text = "scm" nvim-treesitter-textobjects = "scm" nvim-web-devicons = "0.100" vim-startuptime = "4.5.0" - -# Themes -"nightfox.nvim" = "3.10.0" -"gruvbox.nvim" = "2.0.0" -"kanagawa.nvim" = "scm" +# "markview.nvim"= "25.9.0" # fancy preview # Treesitter parsers tree-sitter-bash = "scm" @@ -98,6 +96,7 @@ rev = "9ea940c0d537e55de0de4c0298c04b976960fb12" [plugins.nvim-treesitter] git = "nvim-treesitter/nvim-treesitter" +rev = "v0.10.0" branch = "main" [plugins."poimandres.nvim"] @@ -116,6 +115,9 @@ rev = "c789da6968337d2a61104a929880b5f144e02855" git = "zenbones-theme/zenbones.nvim" rev = "v4.8.0" +[plugins."image.nvim"] +git = "3rd/image.nvim" + [bundles.telescope] items = [ "telescope.nvim", @@ -125,15 +127,22 @@ config = "bundles.telescope" [bundles.cmp] items = [ + "lspkind.nvim", + "nvim-cmp", "cmp-buffer", "cmp-cmdline", "cmp-nvim-lsp", "cmp-path", "cmp_luasnip", "friendly-snippets", - "lspkind.nvim", "luasnip", - "nvim-autopairs", - "nvim-cmp", ] config = "bundles.cmp" + +[bundles.colorscheme] +items = [ +"nightfox.nvim", +"gruvbox.nvim", +"kanagawa.nvim", +] +config = "bundles.colorscheme" diff --git a/nvim/.config/nvim/spell/en.utf-8.add b/nvim/.config/nvim/spell/en.utf-8.add new file mode 100644 index 0000000..063d3ce --- /dev/null +++ b/nvim/.config/nvim/spell/en.utf-8.add @@ -0,0 +1,28 @@ +Treesitter +DAP +LSP +Neogen +Neogit +GitSigns +деструктора +отнаследоваться +имплементацию +деструктор +STL +multimap +hashmap +Многопоточность +многопоточности +мьютексом +mutex +сокет +сокетом +OSI +подсети +Метапрограммирование +инстанцирование +имплементации +LLVM +контрвариантные +treesitter +CMake diff --git a/nvim/.config/nvim/spell/en.utf-8.add.spl b/nvim/.config/nvim/spell/en.utf-8.add.spl Binary files differnew file mode 100644 index 0000000..7eef4d5 --- /dev/null +++ b/nvim/.config/nvim/spell/en.utf-8.add.spl diff --git a/nvim/.config/nvim/spell/ru.utf-8.spl b/nvim/.config/nvim/spell/ru.utf-8.spl Binary files differnew file mode 100644 index 0000000..43d0e4b --- /dev/null +++ b/nvim/.config/nvim/spell/ru.utf-8.spl diff --git a/nvim/.config/nvim/spell/ru.utf-8.sug b/nvim/.config/nvim/spell/ru.utf-8.sug Binary files differnew file mode 100644 index 0000000..b418a0d --- /dev/null +++ b/nvim/.config/nvim/spell/ru.utf-8.sug |