summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2026-02-12 18:21:04 +0300
committer2026-02-12 18:21:04 +0300
commit529898343aed91872813833b1fa6bdf688cc4b2e (patch)
treeddde638184214df1873329539a2f8cc794e2ae12
parentnvim lazy upd (diff)
downloaddotfiles-529898343aed91872813833b1fa6bdf688cc4b2e.tar.gz
dotfiles-529898343aed91872813833b1fa6bdf688cc4b2e.tar.bz2
dotfiles-529898343aed91872813833b1fa6bdf688cc4b2e.tar.xz
dotfiles-529898343aed91872813833b1fa6bdf688cc4b2e.zip
12.02.2026
-rw-r--r--config/nvim/init.lua4
-rw-r--r--config/nvim/lazy-lock.json30
-rw-r--r--config/nvim/lua/autocommands.lua1
-rw-r--r--config/nvim/lua/keymaps.lua457
-rw-r--r--config/nvim/lua/keymaps_documentation.md4
-rw-r--r--config/nvim/lua/options.lua10
-rw-r--r--config/nvim/lua/plugins.lua30
-rw-r--r--config/nvim/lua/plugins/apidocs.lua9
-rw-r--r--config/nvim/lua/plugins/claudecode.lua26
-rw-r--r--config/nvim/lua/plugins/codecompanion.lua99
-rw-r--r--config/nvim/lua/plugins/conform.lua4
-rw-r--r--config/nvim/lua/plugins/dap.lua96
-rw-r--r--config/nvim/lua/plugins/dap_go.lua13
-rw-r--r--config/nvim/lua/plugins/dapui.lua32
-rw-r--r--config/nvim/lua/plugins/gitsigns.lua118
-rw-r--r--config/nvim/lua/plugins/goerr.lua3
-rw-r--r--config/nvim/lua/plugins/goimpl.lua11
-rw-r--r--config/nvim/lua/plugins/guihua.lua4
-rw-r--r--config/nvim/lua/plugins/lazydev.lua42
-rw-r--r--config/nvim/lua/plugins/neogit.lua11
-rw-r--r--config/nvim/lua/plugins/nvim-lspconfig.lua58
-rw-r--r--config/nvim/lua/plugins/plenary.lua3
-rw-r--r--config/nvim/lua/plugins/resize.lua32
-rw-r--r--config/nvim/lua/plugins/telescope.lua60
-rw-r--r--config/nvim/lua/plugins/tree.lua19
-rw-r--r--config/nvim/lua/theme/colors.lua15
-rw-r--r--config/nvim/lua/theme/init.lua7
27 files changed, 614 insertions, 584 deletions
diff --git a/config/nvim/init.lua b/config/nvim/init.lua
index 6ca25c9..73b1fcc 100644
--- a/config/nvim/init.lua
+++ b/config/nvim/init.lua
@@ -33,6 +33,4 @@ require("keymaps")
require("commands")
require("autocommands")
require("lsp")
-require("syntax")
--- require("dap")
-
+require("theme")
diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json
index 927e8b2..4a81880 100644
--- a/config/nvim/lazy-lock.json
+++ b/config/nvim/lazy-lock.json
@@ -1,34 +1,40 @@
{
"LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" },
"apidocs.nvim": { "branch": "main", "commit": "40356c6948a651181f7c9ce91f6fb4048dc388ef" },
- "auto-save.nvim": { "branch": "main", "commit": "37c82fd548e3f5ffc2d9d020a65dac1044584f44" },
- "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
+ "auto-save.nvim": { "branch": "main", "commit": "61892d67acd5b7c845f5da4d780b26fcd7f63e34" },
+ "blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
+ "claudecode.nvim": { "branch": "main", "commit": "aa9a5cebebdbfa449c1c5ff229ba5d98e66bafed" },
"conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
- "go.nvim": { "branch": "master", "commit": "41a18f0c05534c375bafec7ed05cdb409c4abcc6" },
+ "gitsigns.nvim": { "branch": "main", "commit": "31217271a7314c343606acb4072a94a039a19fb5" },
+ "go.nvim": { "branch": "master", "commit": "421694ad11759ad22d5200cff6a8c69d223ade29" },
"goerr-nvim": { "branch": "main", "commit": "d30ba1cab652e78dbf6a644eb4823be57e9af203" },
"goimpl.nvim": { "branch": "main", "commit": "a0c2d8cd1e37f0ae8c19dc954ced3c6ccdceed53" },
"guihua.lua": { "branch": "master", "commit": "ef44ba40f12e56c1c9fa45967f2b4d142e4b97a0" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
- "lsp_signature.nvim": { "branch": "master", "commit": "7d3bb0a641f516f1c7fd2e47852580dadbd7a430" },
+ "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
+ "lsp_signature.nvim": { "branch": "master", "commit": "0efb088dce050d38a3608ee69f80f2a62cf9849c" },
"lspsaga.nvim": { "branch": "main", "commit": "8efe00d6aed9db6449969f889170f1a7e43101a1" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
- "multicursor.nvim": { "branch": "1.0", "commit": "7fa95668af59d2a01c87390fb2eed8e48600952c" },
- "neogit": { "branch": "master", "commit": "73870229977fdd8747025820e15e98cfde787b9c" },
- "nvim-dap": { "branch": "master", "commit": "085386b9359ddf8d76ad89b98973b8e332dc5ba3" },
- "nvim-dap-go": { "branch": "main", "commit": "97924027bbd30b5276d383fb22dcb6bf44da0056" },
+ "multicursor.nvim": { "branch": "1.0", "commit": "630dd29dd696bc977cb81d7dd2fa6bb280f60fc4" },
+ "neogit": { "branch": "master", "commit": "75ca811db3ca3e43137596d25d26e57331540ee0" },
+ "nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
+ "nvim-dap": { "branch": "master", "commit": "db321947bb289a2d4d76a32e76e4d2bd6103d7df" },
+ "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
- "nvim-lspconfig": { "branch": "master", "commit": "ff9c0af8f9b2097fdd2695058db7e04c193908aa" },
+ "nvim-lspconfig": { "branch": "master", "commit": "f4e9d367d4e067d7a5fabc9fd3f1349b291eb718" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
- "nvim-tree.lua": { "branch": "master", "commit": "c07ce43527e5f0242121f4eb1feb7ac0ecea8275" },
+ "nvim-tree.lua": { "branch": "master", "commit": "c0b18e4879f7b29a17a240ad49f733af7a7fb348" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-context": { "branch": "master", "commit": "64dd4cf3f6fd0ab17622c5ce15c91fc539c3f24a" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
- "nvim-ts-autotag": { "branch": "main", "commit": "db15f2e0df2f5db916e511e3fffb682ef2f6354f" },
- "nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" },
+ "nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" },
+ "nvim-web-devicons": { "branch": "master", "commit": "746ffbb17975ebd6c40142362eee1b0249969c5c" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
"smartcolumn.nvim": { "branch": "main", "commit": "b9cdbdf42f7ac5a659204cd5926017c7ff724a19" },
+ "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
+ "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
"telescope.nvim": { "branch": "master", "commit": "ad7d9580338354ccc136e5b8f0aa4f880434dcdc" }
}
diff --git a/config/nvim/lua/autocommands.lua b/config/nvim/lua/autocommands.lua
index f773190..4faf74b 100644
--- a/config/nvim/lua/autocommands.lua
+++ b/config/nvim/lua/autocommands.lua
@@ -76,6 +76,7 @@ vim.api.nvim_create_autocmd("BufEnter", {
end
vim.schedule(function()
vim.cmd("nohlsearch")
+ require("gitsigns").attach()
local treeapi = require("nvim-tree.api")
treeapi.tree.find_file({
update_root = false,
diff --git a/config/nvim/lua/keymaps.lua b/config/nvim/lua/keymaps.lua
index 0597937..d4ca130 100644
--- a/config/nvim/lua/keymaps.lua
+++ b/config/nvim/lua/keymaps.lua
@@ -1,424 +1,39 @@
-local kmap = vim.keymap.set
-
-local keys = {
- -- ========== БАЗОВАЯ НАВИГАЦИЯ ==========
- {
- "<Space>",
- "<Nop>",
- { desc = "Disable Space in normal mode" },
- },
- {
- "<Home>",
- "^",
- { desc = "Go to first non-blank character" },
- },
- {
- "<End>",
- "$",
- { desc = "Go to end of line" },
- },
- {
- "<Home>",
- "^",
- { mode = "v", desc = "Go to first non-blank character (visual)" },
- },
- {
- "<End>",
- "$",
- { mode = "v", desc = "Go to end of line (visual)" },
- },
- {
- "<Home>",
- "<C-o>^",
- { mode = "i", desc = "Go to first non-blank character (insert)" },
- },
- {
- "<End>",
- "<C-o>$",
- { mode = "i", desc = "Go to end of line (insert)" },
- },
-
- -- ========== ВИЗУАЛЬНЫЙ РЕЖИМ ==========
- {
- "i",
- "<S-i>",
- { mode = "v", desc = "Select inner object" },
- },
- {
- "a",
- "<S-a>",
- { mode = "v", desc = "Select around object" },
- },
- {
- "J",
- ":m '>+1<CR>gv=gv",
- { mode = "v", desc = "Move selection down" },
- },
- {
- "K",
- ":m '<-2<CR>gv=gv",
- { mode = "v", desc = "Move selection up" },
- },
- {
- "<",
- "<gv",
- { mode = "v", desc = "Indent left and keep selection" },
- },
- {
- ">",
- ">gv",
- { mode = "v", desc = "Indent right and keep selection" },
- },
-
- -- ========== УПРАВЛЕНИЕ БУФЕРАМИ ==========
- {
- "<leader>bn",
- "<cmd>bnext<CR>",
- { desc = "Next buffer" },
- },
- {
- "<leader>bp",
- "<cmd>bprevious<CR>",
- { desc = "Previous buffer" },
- },
- {
- "<leader>bd",
- "<cmd>bdelete<CR>",
- { desc = "Delete buffer" },
- },
- {
- "<C-s>",
- "<cmd>wa<CR>",
- { desc = "Save all files" },
- },
- {
- "<leader>q",
- "<cmd>q<CR>",
- { desc = "Exit" },
- },
- {
- "<leader>vs",
- "<cmd>vsplit<CR>",
- { desc = "Vertical split" },
- },
-
- -- ========== УПРАВЛЕНИЕ ВКЛАДКАМИ ==========
- {
- "<A-Right>",
- "<cmd>tabnext<CR>",
- { desc = "Next tab" },
- },
- {
- "<A-Left>",
- "<cmd>tabprevious<CR>",
- { desc = "Previous tab" },
- },
- {
- "<A-t>",
- "<cmd>tabnew<CR>",
- { desc = "New tab" },
- },
- {
- "<A-w>",
- "<cmd>tabclose<CR>",
- { desc = "Close tab" },
- },
-
- -- ========== NVIM-TREE (ФАЙЛОВЫЙ ЭКСПЛОРЕР) ==========
- {
- "<C-c>",
- function()
- local api = require("nvim-tree.api")
- local global_cwd = vim.fn.getcwd(-1, -1)
- api.tree.change_root(global_cwd)
- end,
- { desc = "Change tree root to CWD" },
- },
- {
- "<F3>",
- "<cmd>NvimTreeToggle<CR>",
- { desc = "Toggle file tree" },
- },
-
- -- ========== TELESCOPE (ПОИСК) ==========
- {
- "<leader>ff",
- "<cmd>Telescope find_files<CR>",
- { desc = "Find files" },
- },
- {
- "<leader>fg",
- "<cmd>Telescope live_grep<CR>",
- { desc = "Live grep" },
- },
- {
- "<leader>fb",
- "<cmd>Telescope current_buffer_fuzzy_find<CR>",
- { desc = "Find in current buffer" },
- },
- {
- "<F4>",
- "<cmd>Telescope buffers<CR>",
- { desc = "Find buffers" },
- },
- {
- "<leader>gc",
- "<cmd>Telescope git_commits<CR>",
- { desc = "Git commits" },
- },
- {
- "<leader>gs",
- "<cmd>Telescope git_status<CR>",
- { desc = "Git status" },
- },
- {
- "<leader>ch",
- "<cmd>Telescope commands_history<CR>",
- { desc = "Commands history" },
- },
- {
- "<leader>e",
- "<cmd>Telescope diagnostics<CR>",
- { desc = "Diagnostics" },
- },
- {
- "gi",
- "<cmd>Telescope lsp_implementations<CR>",
- { desc = "LSP implementations" },
- },
- {
- "gr",
- "<cmd>Telescope lsp_references<CR>",
- { desc = "LSP references" },
- },
-
- -- ========== LSP (ЯЗЫКОВОЙ СЕРВЕР) ==========
- {
- "d[",
- vim.diagnostic.goto_prev,
- { desc = "Previous diagnostic" },
- },
- {
- "d]",
- vim.diagnostic.goto_next,
- { desc = "Next diagnostic" },
- },
- {
- "gD",
- vim.lsp.buf.declaration,
- { desc = "Go to declaration" },
- },
- {
- "gd",
- vim.lsp.buf.definition,
- { desc = "Go to definition" },
- },
- {
- "K",
- vim.lsp.buf.hover,
- { desc = "Show documentation" },
- },
- {
- "<C-k>",
- vim.lsp.buf.signature_help,
- { desc = "Signature help" },
- },
- {
- "<leader>sad",
- "<cmd>ApidocsOpen<cr>",
- { desc = "Search Api Doc" },
- },
- {
- "<leader>wa",
- vim.lsp.buf.add_workspace_folder,
- { desc = "Add workspace folder" },
- },
- {
- "<leader>wr",
- vim.lsp.buf.remove_workspace_folder,
- { desc = "Remove workspace folder" },
- },
- {
- "<leader>im",
- function()
- require("telescope").extensions.goimpl.goimpl({})
- end,
- { desc = "Generate stub for interface on a type for golang" },
- },
- {
- "<leader>wl",
- function()
- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end,
- { desc = "List workspace folders" },
- },
- {
- "<A-CR>",
- "<cmd>Lspsaga code_action<cr>",
- { desc = "Code actions" },
- },
- {
- "<F2>",
- vim.lsp.buf.rename,
- { desc = "Rename symbol" },
- },
- {
- "<A-q>",
- "gqip",
- { desc = "Reflow line" },
- },
-
- -- ========== ИЗМЕНЕНИЕ РАЗМЕРА ОКОН ==========
- {
- "<C-A-Left>",
- function()
- require("myplugins.resize").ResizeLeft()
- end,
- { desc = "Resize window left" },
- },
- {
- "<C-A-Right>",
- function()
- require("myplugins.resize").ResizeRight()
- end,
- { desc = "Resize window right" },
- },
- {
- "<C-A-Up>",
- function()
- require("myplugins.resize").ResizeUp()
- end,
- { desc = "Resize window up" },
- },
- {
- "<C-A-Down>",
- function()
- require("myplugins.resize").ResizeDown()
- end,
- { desc = "Resize window down" },
- },
-
- -- ========== DAP (ОТЛАДКА) ==========
- {
- "<F6>",
- function()
- require("dapui").toggle()
- end,
- { desc = "Toggle debug UI" },
- },
- {
- "<Leader>dh",
- function()
- require("dap.ui.widgets").hover()
- end,
- { desc = "Debug hover" },
- },
- {
- "<Leader>dp",
- function()
- require("dap.ui.widgets").preview()
- end,
- { desc = "Debug preview" },
- },
- {
- "<leader>dt",
- function()
- require("dap-go").debug_test()
- end,
- { desc = "Debug test" },
- },
- {
- "<F9>",
- function()
- local widgets = require("dap.ui.widgets")
- widgets.centered_float(widgets.scopes)
- end,
- { desc = "Debug scopes" },
- },
- {
- "<F5>",
- function()
- require("dap").continue()
- end,
- { desc = "Debug continue" },
- },
- {
- "<F17>",
- function() -- S-F5
- require("dap").restart()
- end,
- { desc = "Debug restart" },
- },
- {
- "<F29>",
- function() -- C-F5
- require("dap").terminate()
- end,
- { desc = "Debug terminate" },
- },
- {
- "<F8>",
- function()
- require("dap").step_over()
- end,
- { desc = "Debug step over" },
- },
- {
- "<F7>",
- function()
- require("dap").step_into()
- end,
- { desc = "Debug step into" },
- },
- {
- "<F19>",
- function() -- S-F7
- require("dap").step_out()
- end,
- { desc = "Debug step out" },
- },
- {
- "<A-b>",
- function()
- require("dap").toggle_breakpoint()
- end,
- { desc = "Toggle breakpoint" },
- },
-
- -- ========== ФОРМАТИРОВАНИЕ ==========
- {
- "<leader>mp",
- function()
- require("conform").format({ lsp_fallback = true, async = false, timeout_ms = 500 })
- end,
- { desc = "Format file or range (in visual mode)" },
- },
-}
-
--- Добавляем быстрый переход по вкладкам (1-9)
+-- ========== БАЗОВАЯ НАВИГАЦИЯ ==========
+vim.keymap.set("n", "<Space>", "<Nop>", { desc = "Disable Space in normal mode" })
+vim.keymap.set("n", "<Home>", "^", { desc = "Go to first non-blank character" })
+vim.keymap.set("n", "<End>", "$", { desc = "Go to end of line" })
+vim.keymap.set("v", "<Home>", "^", { desc = "Go to first non-blank character (visual)" })
+vim.keymap.set("v", "<End>", "$", { desc = "Go to end of line (visual)" })
+vim.keymap.set("i", "<Home>", "<C-o>^", { desc = "Go to first non-blank character (insert)" })
+vim.keymap.set("i", "<End>", "<C-o>$", { desc = "Go to end of line (insert)" })
+
+-- ========== ВИЗУАЛЬНЫЙ РЕЖИМ ==========
+vim.keymap.set("v", "i", "<S-i>", { desc = "Select inner object" })
+vim.keymap.set("v", "a", "<S-a>", { desc = "Select around object" })
+vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv", { desc = "Move selection down" })
+vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv", { desc = "Move selection up" })
+vim.keymap.set("v", "<", "<gv", { desc = "Indent left and keep selection" })
+vim.keymap.set("v", ">", ">gv", { desc = "Indent right and keep selection" })
+
+-- ========== УПРАВЛЕНИЕ БУФЕРАМИ ==========
+vim.keymap.set("n", "<leader>bn", "<cmd>bnext<CR>", { desc = "Next buffer" })
+vim.keymap.set("n", "<leader>bp", "<cmd>bprevious<CR>", { desc = "Previous buffer" })
+vim.keymap.set("n", "<leader>bd", "<cmd>bdelete<CR>", { desc = "Delete buffer" })
+vim.keymap.set("n", "<C-s>", "<cmd>wa<CR>", { desc = "Save all files" })
+vim.keymap.set("n", "<C-q>", "<cmd>q<CR>", { desc = "Exit" })
+vim.keymap.set("n", "<leader>vs", "<cmd>vsplit<CR>", { desc = "Vertical split" })
+
+-- ========== УПРАВЛЕНИЕ ВКЛАДКАМИ ==========
+vim.keymap.set("n", "<A-Right>", "<cmd>tabnext<CR>", { desc = "Next tab" })
+vim.keymap.set("n", "<A-Left>", "<cmd>tabprevious<CR>", { desc = "Previous tab" })
+vim.keymap.set("n", "<A-t>", "<cmd>tabnew<CR>", { desc = "New tab" })
+vim.keymap.set("n", "<A-w>", "<cmd>tabclose<CR>", { desc = "Close tab" })
+
+-- ========== Quick tab navigation (1-9) ==========
for i = 1, 9 do
- table.insert(keys, {
- "<A-" .. i .. ">",
- "<cmd>tabn " .. i .. "<CR>",
- { desc = "Go to tab " .. i },
- })
+ vim.keymap.set("n", "<A-" .. i .. ">", "<cmd>tabn " .. i .. "<CR>", { desc = "Go to tab " .. i })
end
--- Применяем все кеймапинги
-for _, mapping in ipairs(keys) do
- local key = mapping[1]
- local action = mapping[2]
- local opts = mapping[3] or {}
-
- -- Извлекаем режим или используем "n" по умолчанию
- local mode = opts.mode or "n"
- -- Удаляем mode из opts, так как он передается отдельно
- opts.mode = nil
-
- -- Устанавливаем silent = true по умолчанию
- if opts.silent == nil then
- opts.silent = true
- end
-
- kmap(mode, key, action, opts)
-end
+-- ========== MISCELLANEOUS ==========
+vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, { desc = "Signature help" })
+vim.keymap.set("n", "<A-q>", "gqip", { desc = "Reflow line" })
diff --git a/config/nvim/lua/keymaps_documentation.md b/config/nvim/lua/keymaps_documentation.md
index 4a7f874..63ed9a3 100644
--- a/config/nvim/lua/keymaps_documentation.md
+++ b/config/nvim/lua/keymaps_documentation.md
@@ -1,9 +1,5 @@
# Описание клавиатурных сокращений Neovim
-Данный документ содержит описание всех клавиатурных сокращений, настроенных в `keymaps.lua`, сгруппированных по категориям.
-
----
-
## Базовая навигация
- `<Space>` → Ничего не делает (отключено в нормальном режиме)
diff --git a/config/nvim/lua/options.lua b/config/nvim/lua/options.lua
index 0cd9c53..4a230ad 100644
--- a/config/nvim/lua/options.lua
+++ b/config/nvim/lua/options.lua
@@ -26,10 +26,12 @@ local options = {
softtabstop = 4,
cursorline = true,
listchars = {
- tab = '→→',
- trail = '-',
- nbsp = '+'
+ tab = "› ",
+ trail = "-",
+ nbsp = "+",
+ leadmultispace = "· ",
},
+ list = true,
number = true,
relativenumber = true,
numberwidth = 4,
@@ -65,5 +67,3 @@ vim.filetype.add({
[".*/todo.txt"] = "todotxt",
},
})
-
-
diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua
index 87a1a65..723ef8a 100644
--- a/config/nvim/lua/plugins.lua
+++ b/config/nvim/lua/plugins.lua
@@ -1,24 +1,10 @@
require("lazy").setup({
- { "nvim-lua/plenary.nvim" },
- {
- "ray-x/guihua.lua",
- build = "cd lua/fzy && make",
- },
- {
- "neovim/nvim-lspconfig",
- dependencies = { "saghen/blink.cmp" },
- },
- { "Snyssfx/goerr-nvim" },
- {
- "NeogitOrg/neogit",
- dependencies = {
- "nvim-lua/plenary.nvim",
- "sindrets/diffview.nvim",
- },
- },
- {
- "mfussenegger/nvim-dap",
- },
+ require("plugins.plenary"),
+ require("plugins.guihua"),
+ require("plugins.nvim-lspconfig"),
+ require("plugins.goerr"),
+ require("plugins.neogit"),
+ require("plugins.dap"),
require("plugins.multicursor"),
require("plugins.apidocs"),
require("plugins.resize"),
@@ -29,6 +15,7 @@ require("lazy").setup({
require("plugins.treesitter"),
require("plugins.tree"),
require("plugins.conform"),
+ require("plugins.lazydev"),
require("plugins.dapui"),
require("plugins.dap_go"),
require("plugins.go"),
@@ -36,7 +23,8 @@ require("lazy").setup({
require("plugins.lualine"),
require("plugins.telescope"),
require("plugins.columns"),
- -- require("plugins.codecompanion"),
+ require("plugins.gitsigns"),
+ require("plugins.claudecode"),
}, {
performance = {
rtp = {
diff --git a/config/nvim/lua/plugins/apidocs.lua b/config/nvim/lua/plugins/apidocs.lua
index 2727c09..9e76bff 100644
--- a/config/nvim/lua/plugins/apidocs.lua
+++ b/config/nvim/lua/plugins/apidocs.lua
@@ -4,10 +4,17 @@ return {
"nvim-telescope/telescope.nvim", -- or, 'folke/snacks.nvim'
},
cmd = { "ApidocsSearch", "ApidocsInstall", "ApidocsOpen", "ApidocsSelect", "ApidocsUninstall" },
+ keys = {
+ {
+ "<leader>sad",
+ "<cmd>ApidocsOpen<cr>",
+ desc = "Search Api Doc",
+ },
+ },
config = function()
require("apidocs").setup()
-- Picker will be auto-detected. To select a picker of your choice explicitly you can set picker by the configuration option 'picker':
-- require('apidocs').setup({picker = "snacks"})
-- Possible options are 'ui_select', 'telescope', and 'snacks'
end,
-}
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/claudecode.lua b/config/nvim/lua/plugins/claudecode.lua
new file mode 100644
index 0000000..8533480
--- /dev/null
+++ b/config/nvim/lua/plugins/claudecode.lua
@@ -0,0 +1,26 @@
+return {
+ "coder/claudecode.nvim",
+ dependencies = { "folke/snacks.nvim" },
+ opts = {},
+ keys = {
+ { "<leader>a", nil, desc = "AI/Claude Code" }, -- top‑level prefix
+ { "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" }, -- open/close Claude:contentReference[oaicite:6]{index=6}
+ { "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" }, -- focus/toggle terminal:contentReference[oaicite:7]{index=7}
+ { "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" }, -- resume previous session:contentReference[oaicite:8]{index=8}
+ { "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" }, -- continue conversation:contentReference[oaicite:9]{index=9}
+ { "<leader>am", "<cmd>ClaudeCodeSelectModel<cr>", desc = "Select model" }, -- choose Claude model:contentReference[oaicite:10]{index=10}
+ { "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" }, -- add current file:contentReference[oaicite:11]{index=11}
+ -- Visual-mode send: use the mapping only in visual mode (mode = "v")
+ { "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send selection" }, -- :contentReference[oaicite:12]{index=12}
+ -- File-tree send: applies only in file manager buffers such as nvim‑tree or neo-tree:contentReference[oaicite:13]{index=13}
+ {
+ "<leader>as",
+ "<cmd>ClaudeCodeTreeAdd<cr>",
+ desc = "Add file",
+ ft = { "NvimTree", "neo-tree", "oil", "minifiles", "netrw" },
+ },
+ -- Diff management: accept or deny changes:contentReference[oaicite:14]{index=14}
+ { "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
+ { "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
+ },
+}
diff --git a/config/nvim/lua/plugins/codecompanion.lua b/config/nvim/lua/plugins/codecompanion.lua
deleted file mode 100644
index d8eec4a..0000000
--- a/config/nvim/lua/plugins/codecompanion.lua
+++ /dev/null
@@ -1,99 +0,0 @@
-return {
- "olimorris/codecompanion.nvim",
- dependencies = {
- "nvim-lua/plenary.nvim",
- "nvim-treesitter/nvim-treesitter",
- {
- "ravitemer/mcphub.nvim",
- dependencies = {
- "nvim-lua/plenary.nvim",
- },
- build = "npm install -g mcp-hub@latest",
- config = function()
- require("mcphub").setup()
- end,
- },
- },
- opts = {
- opts = {
- log_level = "DEBUG", -- or "TRACE"
- },
- extensions = {
- mcphub = {
- callback = "mcphub.extensions.codecompanion",
- opts = {
- make_tools = true, -- Make individual tools (@server__tool) and server groups (@server) from MCP servers
- show_server_tools_in_chat = true, -- Show individual tools in chat completion (when make_tools=true)
- add_mcp_prefix_to_tool_names = false, -- Add mcp__ prefix (e.g `@mcp__github`, `@mcp__neovim__list_issues`)
- show_result_in_chat = true, -- Show tool results directly in chat buffer
- format_tool = nil, -- function(tool_name:string, tool: CodeCompanion.Agent.Tool) : string Function to format tool names to show in the chat buffer
- -- MCP Resources
- make_vars = true, -- Convert MCP resources to #variables for prompts
- -- MCP Prompts
- make_slash_commands = true, -- Add MCP prompts as /slash commands
- },
- },
- },
- strategies = {
- chat = {
- adapter = "scbt",
- tools = {
- opts = {
- auto_submit_errors = true, -- Send any errors to the LLM automatically?
- auto_submit_success = true, -- Send any successful output to the LLM automatically?
- default_tools = {
- "full_stack_dev",
- "mcp",
- "filesystem",
- },
- },
- opts = {
- system_promt = "Ты полезный ассистент в редакторе neovim в плагине codecompanion. Основной зык программирования - go. Отвечай всегда на русском языке.",
- },
- },
- },
- inline = {
- adapter = "scbt",
- },
- },
- memory = {
- opts = {
- chat = {
- enabled = true,
- },
- },
- },
- adapters = {
- http = {
- scbt = function()
- return require("codecompanion.adapters").extend("openai_compatible", {
- env = {
- api_key = "cmd: age -d -i ~/.ssh/id_ed25519 ~/.openai-api-key.age",
- url = "http://localhost:8888/api",
- },
-
- schema = {
- model = {
- default = "qwen3-235b-it",
- choices = {
- "qwen3-235b-it",
- "Qwen3-Coder-30B-A3B-Instruct-FP8",
- "qwen2-5-coder-1-5b",
- },
- num_ctx = {
- default = 120000,
- },
- think = {
- default = true,
- },
- keep_alive = {
- default = "5m",
- },
- },
- },
- })
- end,
- },
- },
- },
-}
diff --git a/config/nvim/lua/plugins/conform.lua b/config/nvim/lua/plugins/conform.lua
index 59e761b..e08f54a 100644
--- a/config/nvim/lua/plugins/conform.lua
+++ b/config/nvim/lua/plugins/conform.lua
@@ -22,6 +22,4 @@ return {
timeout_ms = 500,
},
},
- keys = {
- },
-}
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/dap.lua b/config/nvim/lua/plugins/dap.lua
new file mode 100644
index 0000000..315fab8
--- /dev/null
+++ b/config/nvim/lua/plugins/dap.lua
@@ -0,0 +1,96 @@
+return {
+ "mfussenegger/nvim-dap",
+ config = function()
+ local dap = require("dap")
+ dap.adapters.go = {
+ type = "server",
+ port = "${port}",
+ executable = {
+ command = "dlv",
+ args = { "dap", "-l", "127.0.0.1:${port}" },
+ },
+ }
+ -- dap.configurations.go = {
+ -- {
+ -- type = "go",
+ -- name = "Debug",
+ -- request = "launch",
+ -- program = "${file}",
+ -- },
+ -- {
+ -- type = "go",
+ -- name = "Debug test",
+ -- request = "launch",
+ -- mode = "test",
+ -- program = "${file}",
+ -- },
+ -- {
+ -- type = "go",
+ -- name = "Debug test (go test)",
+ -- request = "launch",
+ -- mode = "test",
+ -- program = "${workspaceFolder}",
+ -- },
+ -- }
+ end,
+ keys = {
+ {
+ "<F5>",
+ function()
+ require("dap").continue()
+ end,
+ desc = "Debug continue",
+ },
+ {
+ "<F17>",
+ function() -- S-F5
+ require("dap").restart()
+ end,
+ desc = "Debug restart",
+ },
+ {
+ "<F29>",
+ function() -- C-F5
+ require("dap").terminate()
+ end,
+ desc = "Debug terminate",
+ },
+ {
+ "<F8>",
+ function()
+ require("dap").step_over()
+ end,
+ desc = "Debug step over",
+ },
+ {
+ "<F7>",
+ function()
+ require("dap").step_into()
+ end,
+ desc = "Debug step into",
+ },
+ {
+ "<F19>",
+ function() -- S-F7
+ require("dap").step_out()
+ end,
+ desc = "Debug step out",
+ },
+ {
+ "<A-b>",
+ function()
+ require("dap").toggle_breakpoint()
+ end,
+ desc = "Toggle breakpoint",
+ },
+ {
+ "<F9>",
+ function()
+ local widgets = require("dap.ui.widgets")
+ widgets.centered_float(widgets.scopes)
+ end,
+ desc = "Debug scopes",
+ },
+ },
+}
+
diff --git a/config/nvim/lua/plugins/dap_go.lua b/config/nvim/lua/plugins/dap_go.lua
index 91dcac3..aee662b 100644
--- a/config/nvim/lua/plugins/dap_go.lua
+++ b/config/nvim/lua/plugins/dap_go.lua
@@ -1,5 +1,14 @@
return {
- url = "https://gitrepo.ru/NeonXP/nvim-dap-go.git",
+ "leoluz/nvim-dap-go",
dependencies = { "mfussenegger/nvim-dap" },
opts = true,
-}
+ keys = {
+ {
+ "<leader>dt",
+ function()
+ require("dap-go").debug_test()
+ end,
+ desc = "Debug test",
+ },
+ },
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/dapui.lua b/config/nvim/lua/plugins/dapui.lua
index ad2b6b6..f3fcb9c 100644
--- a/config/nvim/lua/plugins/dapui.lua
+++ b/config/nvim/lua/plugins/dapui.lua
@@ -7,8 +7,12 @@ return {
},
opts = {
icons = {
- expanded = "[-]",
- collapsed = "[+]",
+ expanded = "▼",
+ collapsed = "▶",
+ current_frame = "→",
+ },
+ controls = {
+ enabled = false,
},
mappings = {
open = "o",
@@ -22,6 +26,7 @@ return {
{
elements = {
"repl",
+ "scopes",
},
size = 0.3,
position = "bottom",
@@ -40,4 +45,27 @@ return {
max_type_length = nil,
},
},
+ keys = {
+ {
+ "<F6>",
+ function()
+ require("dapui").toggle()
+ end,
+ desc = "Toggle debug UI",
+ },
+ {
+ "<Leader>dh",
+ function()
+ require("dap.ui.widgets").hover()
+ end,
+ desc = "Debug hover",
+ },
+ {
+ "<Leader>dp",
+ function()
+ require("dap.ui.widgets").preview()
+ end,
+ desc = "Debug preview",
+ },
+ },
}
diff --git a/config/nvim/lua/plugins/gitsigns.lua b/config/nvim/lua/plugins/gitsigns.lua
new file mode 100644
index 0000000..5994cc8
--- /dev/null
+++ b/config/nvim/lua/plugins/gitsigns.lua
@@ -0,0 +1,118 @@
+return {
+ "lewis6991/gitsigns.nvim",
+ opts = {
+ signs = {
+ add = { text = "│" },
+ change = { text = "│" },
+ delete = { text = "_" },
+ topdelete = { text = "‾" },
+ changedelete = { text = "~" },
+ untracked = { text = "┆" },
+ },
+ auto_attach = true,
+ signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
+ numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
+ linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
+ word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
+ watch_gitdir = {
+ interval = 1000,
+ follow_files = true,
+ },
+ attach_to_untracked = true,
+ current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
+ current_line_blame_opts = {
+ virt_text = true,
+ virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
+ delay = 1000,
+ ignore_whitespace = false,
+ },
+ current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>",
+ sign_priority = 6,
+ update_debounce = 100,
+ status_formatter = nil, -- Use default
+ max_file_length = 40000, -- Disable if file is longer than this (in lines)
+ preview_config = {
+ -- Options passed to nvim_open_win
+ border = "single",
+ style = "minimal",
+ relative = "cursor",
+ row = 0,
+ col = 1,
+ }
+ },
+ keys = {
+ {
+ "]c",
+ function()
+ if vim.wo.diff then
+ vim.cmd.normal({ "]c", bang = true })
+ else
+ require("gitsigns").nav_hunk("next")
+ end
+ end,
+ desc = "Next hunk",
+ },
+ {
+ "[c",
+ function()
+ if vim.wo.diff then
+ vim.cmd.normal({ "[c", bang = true })
+ else
+ require("gitsigns").nav_hunk("prev")
+ end
+ end,
+ desc = "Previous hunk",
+ },
+ {
+ "<leader>hs",
+ function()
+ require("gitsigns").stage_hunk()
+ end,
+ desc = "Stage hunk",
+ },
+ {
+ "<leader>hr",
+ function()
+ require("gitsigns").reset_hunk()
+ end,
+ desc = "Reset hunk",
+ },
+ {
+ "<leader>hp",
+ function()
+ require("gitsigns").preview_hunk()
+ end,
+ desc = "Preview hunk",
+ },
+ {
+ "<leader>hi",
+ function()
+ require("gitsigns").preview_hunk_inline()
+ end,
+ desc = "Preview hunk inline",
+ },
+ {
+ "<leader>hb",
+ [[:<C-U>lua require('gitsigns').blame_line{full=true}<CR>]],
+ desc = "Blame line",
+ },
+ {
+ "<leader>hd",
+ [[:<C-U>lua require('gitsigns').diffthis()<CR>]],
+ desc = "Diff this",
+ },
+ {
+ "<leader>tb",
+ function()
+ require("gitsigns").toggle_current_line_blame()
+ end,
+ desc = "Toggle line blame",
+ },
+ {
+ "ih",
+ [[:<C-U>lua require('gitsigns').select_hunk()<CR>]],
+ mode = { "o", "x" },
+ desc = "Select hunk",
+ },
+ },
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/goerr.lua b/config/nvim/lua/plugins/goerr.lua
new file mode 100644
index 0000000..9e2ca0d
--- /dev/null
+++ b/config/nvim/lua/plugins/goerr.lua
@@ -0,0 +1,3 @@
+return {
+ "Snyssfx/goerr-nvim",
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/goimpl.lua b/config/nvim/lua/plugins/goimpl.lua
index 9d97fb6..30cb292 100644
--- a/config/nvim/lua/plugins/goimpl.lua
+++ b/config/nvim/lua/plugins/goimpl.lua
@@ -6,7 +6,16 @@ return {
"nvim-telescope/telescope.nvim",
"nvim-treesitter/nvim-treesitter",
},
+ keys = {
+ {
+ "<leader>im",
+ function()
+ require("telescope").extensions.goimpl.goimpl({})
+ end,
+ desc = "Generate stub for interface on a type for golang",
+ },
+ },
config = function()
require("telescope").load_extension("goimpl")
end,
-}
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/guihua.lua b/config/nvim/lua/plugins/guihua.lua
new file mode 100644
index 0000000..60b0876
--- /dev/null
+++ b/config/nvim/lua/plugins/guihua.lua
@@ -0,0 +1,4 @@
+return {
+ "ray-x/guihua.lua",
+ build = "cd lua/fzy && make",
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/lazydev.lua b/config/nvim/lua/plugins/lazydev.lua
new file mode 100644
index 0000000..0db6014
--- /dev/null
+++ b/config/nvim/lua/plugins/lazydev.lua
@@ -0,0 +1,42 @@
+return {
+ {
+ "folke/lazydev.nvim",
+ ft = "lua", -- only load on lua files
+ opts = {
+ library = {
+ -- See the configuration section for more details
+ -- Load luvit types when the `vim.uv` word is found
+ { path = "${3rd}/luv/library", words = { "vim%.uv" } },
+ { "nvim-dap-ui" },
+ },
+ },
+ },
+ { -- optional cmp completion source for require statements and module annotations
+ "hrsh7th/nvim-cmp",
+ opts = function(_, opts)
+ opts.sources = opts.sources or {}
+ table.insert(opts.sources, {
+ name = "lazydev",
+ group_index = 0, -- set group index to 0 to skip loading LuaLS completions
+ })
+ end,
+ },
+ { -- optional blink completion source for require statements and module annotations
+ "saghen/blink.cmp",
+ opts = {
+ sources = {
+ -- add lazydev to your completion providers
+ default = { "lazydev", "lsp", "path", "snippets", "buffer" },
+ providers = {
+ lazydev = {
+ name = "LazyDev",
+ module = "lazydev.integrations.blink",
+ -- make lazydev completions top priority (see `:h blink.cmp`)
+ score_offset = 100,
+ },
+ },
+ },
+ },
+ },
+ -- { "folke/neodev.nvim", enabled = false }, -- make sure to uninstall or disable neodev.nvim
+}
diff --git a/config/nvim/lua/plugins/neogit.lua b/config/nvim/lua/plugins/neogit.lua
new file mode 100644
index 0000000..3932bc1
--- /dev/null
+++ b/config/nvim/lua/plugins/neogit.lua
@@ -0,0 +1,11 @@
+return {
+ "NeogitOrg/neogit",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "sindrets/diffview.nvim",
+ },
+ cmd = "Neogit",
+ keys = {
+ { "<leader>gg", "<cmd>Neogit<cr>", desc = "Show Neogit UI" },
+ },
+}
diff --git a/config/nvim/lua/plugins/nvim-lspconfig.lua b/config/nvim/lua/plugins/nvim-lspconfig.lua
new file mode 100644
index 0000000..59085f9
--- /dev/null
+++ b/config/nvim/lua/plugins/nvim-lspconfig.lua
@@ -0,0 +1,58 @@
+return {
+ "neovim/nvim-lspconfig",
+ dependencies = { "saghen/blink.cmp" },
+ keys = {
+ {
+ "d[",
+ vim.diagnostic.goto_prev,
+ desc = "Previous diagnostic",
+ },
+ {
+ "d]",
+ vim.diagnostic.goto_next,
+ desc = "Next diagnostic",
+ },
+ {
+ "gD",
+ vim.lsp.buf.declaration,
+ desc = "Go to declaration",
+ },
+ {
+ "gd",
+ vim.lsp.buf.definition,
+ desc = "Go to definition",
+ },
+ {
+ "K",
+ vim.lsp.buf.hover,
+ desc = "Show documentation",
+ },
+ {
+ "<A-CR>",
+ "<cmd>Lspsaga code_action<cr>",
+ desc = "Code actions",
+ },
+ {
+ "<F2>",
+ vim.lsp.buf.rename,
+ desc = "Rename symbol",
+ },
+ {
+ "<leader>wa",
+ vim.lsp.buf.add_workspace_folder,
+ desc = "Add workspace folder",
+ },
+ {
+ "<leader>wr",
+ vim.lsp.buf.remove_workspace_folder,
+ desc = "Remove workspace folder",
+ },
+ {
+ "<leader>wl",
+ function()
+ print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ end,
+ desc = "List workspace folders",
+ },
+ },
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/plenary.lua b/config/nvim/lua/plugins/plenary.lua
new file mode 100644
index 0000000..74b7874
--- /dev/null
+++ b/config/nvim/lua/plugins/plenary.lua
@@ -0,0 +1,3 @@
+return {
+ "nvim-lua/plenary.nvim",
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/resize.lua b/config/nvim/lua/plugins/resize.lua
index bdb3ff6..ea3ce0c 100644
--- a/config/nvim/lua/plugins/resize.lua
+++ b/config/nvim/lua/plugins/resize.lua
@@ -1,4 +1,34 @@
return {
name = "resize",
dir = "~/.config/nvim/lua/myplugins",
-}
+ keys = {
+ {
+ "<C-A-Left>",
+ function()
+ require("myplugins.resize").ResizeLeft()
+ end,
+ desc = "Resize window left",
+ },
+ {
+ "<C-A-Right>",
+ function()
+ require("myplugins.resize").ResizeRight()
+ end,
+ desc = "Resize window right",
+ },
+ {
+ "<C-A-Up>",
+ function()
+ require("myplugins.resize").ResizeUp()
+ end,
+ desc = "Resize window up",
+ },
+ {
+ "<C-A-Down>",
+ function()
+ require("myplugins.resize").ResizeDown()
+ end,
+ desc = "Resize window down",
+ },
+ },
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/telescope.lua b/config/nvim/lua/plugins/telescope.lua
index 018d95c..228160f 100644
--- a/config/nvim/lua/plugins/telescope.lua
+++ b/config/nvim/lua/plugins/telescope.lua
@@ -1,7 +1,64 @@
return {
"nvim-telescope/telescope.nvim",
+ event = "VeryLazy",
dependencies = {
"nvim-lua/plenary.nvim",
+ {
+ "nvim-telescope/telescope-fzf-native.nvim",
+ build = "make",
+ },
+ },
+ keys = {
+ {
+ "<leader>ff",
+ "<cmd>Telescope find_files<CR>",
+ desc = "Find files",
+ },
+ {
+ "<leader>fg",
+ "<cmd>Telescope live_grep<CR>",
+ desc = "Live grep",
+ },
+ {
+ "<leader>fb",
+ "<cmd>Telescope current_buffer_fuzzy_find<CR>",
+ desc = "Find in current buffer",
+ },
+ {
+ "<F4>",
+ "<cmd>Telescope buffers<CR>",
+ desc = "Find buffers",
+ },
+ {
+ "<leader>gc",
+ "<cmd>Telescope git_commits<CR>",
+ desc = "Git commits",
+ },
+ {
+ "<leader>gs",
+ "<cmd>Telescope git_status<CR>",
+ desc = "Git status",
+ },
+ {
+ "<leader>ch",
+ "<cmd>Telescope commands_history<CR>",
+ desc = "Commands history",
+ },
+ {
+ "<leader>e",
+ "<cmd>Telescope diagnostics<CR>",
+ desc = "Diagnostics",
+ },
+ {
+ "gi",
+ "<cmd>Telescope lsp_implementations<CR>",
+ desc = "LSP implementations",
+ },
+ {
+ "gr",
+ "<cmd>Telescope lsp_references<CR>",
+ desc = "LSP references",
+ },
},
config = function()
local actions = require("telescope.actions")
@@ -28,5 +85,6 @@ return {
},
},
})
+ require("telescope").load_extension("fzf")
end,
-}
+} \ No newline at end of file
diff --git a/config/nvim/lua/plugins/tree.lua b/config/nvim/lua/plugins/tree.lua
index 30c0599..e002f49 100644
--- a/config/nvim/lua/plugins/tree.lua
+++ b/config/nvim/lua/plugins/tree.lua
@@ -20,6 +20,7 @@ return {
},
git = {
enable = true,
+ ignore = false,
},
renderer = {
group_empty = true,
@@ -37,4 +38,20 @@ return {
enable = true,
},
},
-}
+ keys = {
+ {
+ "<C-c>",
+ function()
+ local api = require("nvim-tree.api")
+ local global_cwd = vim.fn.getcwd(-1, -1)
+ api.tree.change_root(global_cwd)
+ end,
+ desc = "Change tree root to CWD",
+ },
+ {
+ "<F3>",
+ "<cmd>NvimTreeToggle<CR>",
+ desc = "Toggle file tree",
+ },
+ },
+} \ No newline at end of file
diff --git a/config/nvim/lua/theme/colors.lua b/config/nvim/lua/theme/colors.lua
index dd9d491..dd6f804 100644
--- a/config/nvim/lua/theme/colors.lua
+++ b/config/nvim/lua/theme/colors.lua
@@ -37,7 +37,7 @@ if vim.o.background == "dark" then
local diffadd = "#6abf40"
local diffdelete = "#d2322d"
local diffchange = "#ec8013"
- local statusline = "#162022"
+ local statusline = "#2c3043"
local comment = "#dfdf8e"
local dim_comment = "#696969"
local mistake = {
@@ -60,7 +60,7 @@ if vim.o.background == "dark" then
yellow = "#cd974b",
}
local comment_fg = vim.g.alabaster_dim_comments and dim_comment or comment
- local pmenu_bg = "#182325"
+ local pmenu_bg = "#252525"
local float_bg = vim.g.alabaster_floatborder and bg or pmenu_bg
local floatborder = vim.g.alabaster_floatborder and { bg = bg, fg = "#333333" }
or {
@@ -69,13 +69,13 @@ if vim.o.background == "dark" then
}
theme = {
Comment = { fg = comment_fg },
- ColorColumn = { bg = "#182325" },
+ ColorColumn = { bg = "#252525" },
Conceal = { fg = "#b0b0b0" },
Cursor = { bg = active, fg = "#000000" },
-- lCursor { }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
-- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM|
- CursorColumn = { bg = "#182325" },
- CursorLine = { bg = "#182325" },
+ CursorColumn = { bg = "#252525" },
+ CursorLine = { bg = "#252525" },
Directory = { fg = ansi.blue },
DiffAdd = { bg = "#244032", fg = "#56d364" },
DiffDelete = { bg = "#462c32", fg = "#f85149" },
@@ -86,7 +86,7 @@ if vim.o.background == "dark" then
TermCursorNC = { fg = bg, bg = fg },
ErrorMsg = { fg = error, bg = mistake.bg },
VertSplit = { fg = "#2b3d40" },
- Folded = { bg = "#182325", fg = "#7d7d7d" },
+ Folded = { bg = "#252525", fg = "#7d7d7d" },
FoldColumn = { bg = bg, fg = "#4d4d4d" },
SignColumn = {},
IncSearch = { bg = ansi.yellow, fg = bg },
@@ -108,7 +108,7 @@ if vim.o.background == "dark" then
PmenuSbar = { bg = "#212f31" },
PmenuThumb = { bg = "#47666b" },
Question = { fg = diffadd },
- QuickFixLine = { bg = "#182325" },
+ QuickFixLine = { bg = "#252525" },
Search = { bg = "#354c50" },
SpecialKey = { fg = ansi.cyan },
SpellBad = { undercurl = 1, sp = ansi.red },
@@ -485,6 +485,7 @@ else
VertSplit = { fg = "#abbdc0" },
Folded = { bg = "#dddddd", fg = "#7d7d7d" },
FoldColumn = { bg = bg, fg = "#4d4d4d" },
+
SignColumn = {},
IncSearch = { bg = active, fg = fg },
-- Substitute { }, -- |:substitute| replacement text highlighting
diff --git a/config/nvim/lua/theme/init.lua b/config/nvim/lua/theme/init.lua
new file mode 100644
index 0000000..b635c55
--- /dev/null
+++ b/config/nvim/lua/theme/init.lua
@@ -0,0 +1,7 @@
+local M = {}
+
+M.setup = function()
+ vim.cmd("colorscheme alabaster")
+end
+
+return M