From 0436b64c43032b3f1ecdd165f0ff865ff0abf456 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Mon, 3 Nov 2025 18:53:44 +0400 Subject: [PATCH 01/22] some changes --- init.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/init.lua b/init.lua index b98ffc6198a..52aa7020fcf 100644 --- a/init.lua +++ b/init.lua @@ -102,7 +102,7 @@ vim.g.have_nerd_font = false vim.o.number = true -- You can also add relative line numbers, to help with jumping. -- Experiment for yourself to see if you like it! --- vim.o.relativenumber = true +vim.o.relativenumber = true -- Enable mouse mode, can be useful for resizing splits for example! vim.o.mouse = 'a' @@ -159,7 +159,7 @@ vim.o.inccommand = 'split' vim.o.cursorline = true -- Minimal number of screen lines to keep above and below the cursor. -vim.o.scrolloff = 10 +vim.o.scrolloff = 20 -- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), -- instead raise a dialog asking if you wish to save the current file(s) @@ -185,10 +185,10 @@ vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagn vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) -- TIP: Disable arrow keys in normal mode --- vim.keymap.set('n', '', 'echo "Use h to move!!"') --- vim.keymap.set('n', '', 'echo "Use l to move!!"') --- vim.keymap.set('n', '', 'echo "Use k to move!!"') --- vim.keymap.set('n', '', 'echo "Use j to move!!"') +vim.keymap.set('n', '', 'echo "Use h to move!!"') +vim.keymap.set('n', '', 'echo "Use l to move!!"') +vim.keymap.set('n', '', 'echo "Use k to move!!"') +vim.keymap.set('n', '', 'echo "Use j to move!!"') -- Keybinds to make split navigation easier. -- Use CTRL+ to switch between windows @@ -975,7 +975,7 @@ require('lazy').setup({ -- -- require 'kickstart.plugins.debug', -- require 'kickstart.plugins.indent_line', - -- require 'kickstart.plugins.lint', + require 'kickstart.plugins.lint', -- require 'kickstart.plugins.autopairs', -- require 'kickstart.plugins.neo-tree', -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps @@ -984,7 +984,7 @@ require('lazy').setup({ -- This is the easiest way to modularize your config. -- -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. - -- { import = 'custom.plugins' }, + { import = 'custom.plugins' }, -- -- For additional information with loading, sourcing and examples see `:help lazy.nvim-馃攲-plugin-spec` -- Or use telescope! From 1a5b06c234d35b27f73a6c9ef93f4e3b0c393c09 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Mon, 3 Nov 2025 23:35:05 +0400 Subject: [PATCH 02/22] test commit --- init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/init.lua b/init.lua index 52aa7020fcf..ffeea040528 100644 --- a/init.lua +++ b/init.lua @@ -19,7 +19,6 @@ ======== ======== ===================================================================== ===================================================================== - What is Kickstart? Kickstart.nvim is *not* a distribution. From a1d899c3d2f033b891d6fbfb6419d2f3cf81f07a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=90=D0=B2=D0=B3?= =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Fri, 7 Nov 2025 00:35:31 +0400 Subject: [PATCH 03/22] added project.nvim to config --- lua/custom/plugins/project.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 lua/custom/plugins/project.lua diff --git a/lua/custom/plugins/project.lua b/lua/custom/plugins/project.lua new file mode 100644 index 00000000000..2cfc2a4bc81 --- /dev/null +++ b/lua/custom/plugins/project.lua @@ -0,0 +1,17 @@ +return { + 'DrKJeff16/project.nvim', + version = false, -- Get the latest release + dependencies = { -- OPTIONAL + 'nvim-lua/plenary.nvim', + 'nvim-telescope/telescope.nvim', + 'ibhagwan/fzf-lua', + }, + ---@module 'project' + + ---@type Project.Config.Options + opts = {}, + config = function() + require('project').setup() + require('telescope').load_extension 'projects' + end, +} From f4663f708df7588ec528610a37532e4a86f0ffaf Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 13 Nov 2025 13:46:26 +0400 Subject: [PATCH 04/22] Added project.nvim usage --- lua/custom/plugins/project.lua | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lua/custom/plugins/project.lua b/lua/custom/plugins/project.lua index 2cfc2a4bc81..7e7b865db27 100644 --- a/lua/custom/plugins/project.lua +++ b/lua/custom/plugins/project.lua @@ -1,17 +1,13 @@ return { 'DrKJeff16/project.nvim', - version = false, -- Get the latest release dependencies = { -- OPTIONAL 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope.nvim', 'ibhagwan/fzf-lua', }, - ---@module 'project' - - ---@type Project.Config.Options - opts = {}, config = function() require('project').setup() require('telescope').load_extension 'projects' end, + vim.keymap.set('n', 'sp', ':Telescope projects', { desc = '[S]earch [P]roject' }), } From a03a25e02a80544f60144a15ef779c2097db7eb1 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 13 Nov 2025 14:13:09 +0400 Subject: [PATCH 05/22] Added cheatsheed.nvim usage --- lua/custom/plugins/cheatsheet.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lua/custom/plugins/cheatsheet.lua diff --git a/lua/custom/plugins/cheatsheet.lua b/lua/custom/plugins/cheatsheet.lua new file mode 100644 index 00000000000..28b0df2acbf --- /dev/null +++ b/lua/custom/plugins/cheatsheet.lua @@ -0,0 +1,13 @@ +return { + 'sudormrfbin/cheatsheet.nvim', + + requires = { + { 'nvim-telescope/telescope.nvim' }, + { 'nvim-lua/popup.nvim' }, + { 'nvim-lua/plenary.nvim' }, + }, + config = function() + require('cheatsheet').setup() + end, + vim.keymap.set('n', 'sc', ':Cheatsheet', { desc = '[S]earch in [C]eatsheet' }), +} From 4dff548e94f9899de0114032d8fdeef9f3a38ddc Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 13 Nov 2025 14:33:00 +0400 Subject: [PATCH 06/22] Fixed GuessIdent loading --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index ffeea040528..05fb43381ce 100644 --- a/init.lua +++ b/init.lua @@ -246,7 +246,7 @@ rtp:prepend(lazypath) -- NOTE: Here is where you install your plugins. require('lazy').setup({ -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). - 'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically + { 'NMAC427/guess-indent.nvim', opts = {} }, -- Detect tabstop and shiftwidth automatically -- NOTE: Plugins can also be added by using a table, -- with the first argument being the link and the following From b6f5415961ff03a8b4fc680f1faa8fa11ab439fc Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 13 Nov 2025 22:53:38 +0400 Subject: [PATCH 07/22] Added harpoon and autopairs plugins --- lua/custom/plugins/autopairs.lua | 7 ++++ lua/custom/plugins/harpoon.lua | 64 ++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 lua/custom/plugins/autopairs.lua create mode 100644 lua/custom/plugins/harpoon.lua diff --git a/lua/custom/plugins/autopairs.lua b/lua/custom/plugins/autopairs.lua new file mode 100644 index 00000000000..1e80eb48726 --- /dev/null +++ b/lua/custom/plugins/autopairs.lua @@ -0,0 +1,7 @@ +return { + 'windwp/nvim-autopairs', + event = 'InsertEnter', + config = true, + -- use opts = {} for passing setup options + -- this is equivalent to setup({}) function +} diff --git a/lua/custom/plugins/harpoon.lua b/lua/custom/plugins/harpoon.lua new file mode 100644 index 00000000000..76b99ac046c --- /dev/null +++ b/lua/custom/plugins/harpoon.lua @@ -0,0 +1,64 @@ +return { + 'ThePrimeagen/harpoon', + branch = 'harpoon2', + commit = 'e76cb03', + dependencies = { 'nvim-lua/plenary.nvim' }, + config = function() + local harpoon = require 'harpoon' + harpoon:setup { + settings = { + save_on_toggle = true, + mark_branch = true, + }, + } + + -- basic telescope configuration + local conf = require('telescope.config').values + local function toggle_telescope(harpoon_files) + local file_paths = {} + for _, item in ipairs(harpoon_files.items) do + table.insert(file_paths, item.value) + end + + require('telescope.pickers') + .new({}, { + prompt_title = 'Harpoon', + finder = require('telescope.finders').new_table { + results = file_paths, + }, + previewer = conf.file_previewer {}, + sorter = conf.generic_sorter {}, + }) + :find() + end + + vim.keymap.set('n', '', function() + toggle_telescope(harpoon:list()) + end, { desc = 'Open harpoon window' }) + + vim.keymap.set('n', 'ha', function() + harpoon:list():add() + end, { desc = '[H]arpoon [A]dd mark' }) + + vim.keymap.set('n', '', function() + harpoon:list():select(1) + end) + vim.keymap.set('n', '', function() + harpoon:list():select(2) + end) + vim.keymap.set('n', '', function() + harpoon:list():select(3) + end) + vim.keymap.set('n', '', function() + harpoon:list():select(4) + end) + + -- Toggle previous & next buffers stored within Harpoon list + vim.keymap.set('n', 'hp', function() + harpoon:list():prev() + end, { desc = '[H]arpoon [P]rev item' }) + vim.keymap.set('n', 'hn', function() + harpoon:list():next() + end, { desc = '[H]arpoon [N]ext item' }) + end, +} From 8f69cbd2aaf7cabc00dc82b9c79c36e54eafe5c8 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 13 Nov 2025 23:02:50 +0400 Subject: [PATCH 08/22] Added keymap for opening netrw --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index 05fb43381ce..547a6d3e3e9 100644 --- a/init.lua +++ b/init.lua @@ -204,6 +204,7 @@ vim.keymap.set('n', '', '', { desc = 'Move focus to the upper win -- vim.keymap.set("n", "", "J", { desc = "Move window to the lower" }) -- vim.keymap.set("n", "", "K", { desc = "Move window to the upper" }) +vim.keymap.set('n', '', ':Explore', { desc = 'Open file manager' }) -- [[ Basic Autocommands ]] -- See `:help lua-guide-autocommands` From b79b7fc72119a50ffe922f90ebc3770dc585c210 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Wed, 19 Nov 2025 14:37:13 +0400 Subject: [PATCH 09/22] Added langmap for russian keyboard layout --- init.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/init.lua b/init.lua index 547a6d3e3e9..e32b7c4721d 100644 --- a/init.lua +++ b/init.lua @@ -205,6 +205,10 @@ vim.keymap.set('n', '', '', { desc = 'Move focus to the upper win -- vim.keymap.set("n", "", "K", { desc = "Move window to the upper" }) vim.keymap.set('n', '', ':Explore', { desc = 'Open file manager' }) + +vim.o.langmap = + '肖袠小袙校袗袩袪楔袨袥袛鞋孝些袟袡袣蝎袝袚袦笑效袧携;ABCDEFGHIJKLMNOPQRSTUVWXYZ,褎懈褋胁褍邪锌褉褕芯谢写褜褌褖蟹泄泻褘械谐屑褑褔薪褟;abcdefghijklmnopqrstuvwxyz' + -- [[ Basic Autocommands ]] -- See `:help lua-guide-autocommands` From 24d1a3b0a52cdd37becb6801b369ea8e9bf67572 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Wed, 19 Nov 2025 14:44:32 +0400 Subject: [PATCH 10/22] Added langmap for russian keyboard layout --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index e32b7c4721d..9fdb55ab690 100644 --- a/init.lua +++ b/init.lua @@ -206,6 +206,7 @@ vim.keymap.set('n', '', '', { desc = 'Move focus to the upper win vim.keymap.set('n', '', ':Explore', { desc = 'Open file manager' }) +-- Support for russian keyboard layout in normal mode vim.o.langmap = '肖袠小袙校袗袩袪楔袨袥袛鞋孝些袟袡袣蝎袝袚袦笑效袧携;ABCDEFGHIJKLMNOPQRSTUVWXYZ,褎懈褋胁褍邪锌褉褕芯谢写褜褌褖蟹泄泻褘械谐屑褑褔薪褟;abcdefghijklmnopqrstuvwxyz' From 31733abebd1d2407b77d018639310c9a3cbe7128 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 20 Nov 2025 12:20:52 +0400 Subject: [PATCH 11/22] Added some things for go support --- init.lua | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/init.lua b/init.lua index 9fdb55ab690..82713ec8703 100644 --- a/init.lua +++ b/init.lua @@ -677,7 +677,7 @@ require('lazy').setup({ -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/ local servers = { -- clangd = {}, - -- gopls = {}, + gopls = {}, -- pyright = {}, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs @@ -725,7 +725,9 @@ require('lazy').setup({ require('mason-tool-installer').setup { ensure_installed = ensure_installed } require('mason-lspconfig').setup { - ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) + ensure_installed = { + 'gopls', + }, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) automatic_installation = false, handlers = { function(server_name) @@ -773,6 +775,7 @@ require('lazy').setup({ end, formatters_by_ft = { lua = { 'stylua' }, + go = { 'gofmt' }, -- Conform can also run multiple formatters sequentially -- python = { "isort", "black" }, -- @@ -804,12 +807,12 @@ require('lazy').setup({ -- `friendly-snippets` contains a variety of premade snippets. -- See the README about individual language/framework/plugin snippets: -- https://github.com/rafamadriz/friendly-snippets - -- { - -- 'rafamadriz/friendly-snippets', - -- config = function() - -- require('luasnip.loaders.from_vscode').lazy_load() - -- end, - -- }, + { + 'rafamadriz/friendly-snippets', + config = function() + require('luasnip.loaders.from_vscode').lazy_load() + end, + }, }, opts = {}, }, @@ -949,7 +952,7 @@ require('lazy').setup({ main = 'nvim-treesitter.configs', -- Sets main module to use for opts -- [[ Configure Treesitter ]] See `:help nvim-treesitter` opts = { - ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }, + ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc', 'go' }, -- Autoinstall languages that are not installed auto_install = true, highlight = { @@ -978,7 +981,7 @@ require('lazy').setup({ -- Here are some example plugins that I've included in the Kickstart repository. -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- - -- require 'kickstart.plugins.debug', + require 'kickstart.plugins.debug', -- require 'kickstart.plugins.indent_line', require 'kickstart.plugins.lint', -- require 'kickstart.plugins.autopairs', From 7e2743db4137d010ecc3060907362abfbaf0df48 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 4 Dec 2025 12:32:11 +0400 Subject: [PATCH 12/22] added opentofu ls --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index 82713ec8703..1e48ab47028 100644 --- a/init.lua +++ b/init.lua @@ -678,6 +678,7 @@ require('lazy').setup({ local servers = { -- clangd = {}, gopls = {}, + tofu_ls = {}, -- pyright = {}, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs From daa4baabc15fca6bba974b9311f7eaffa26b15c0 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 4 Dec 2025 12:32:34 +0400 Subject: [PATCH 13/22] added golang testing configuration --- lua/custom/plugins/tests.lua | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lua/custom/plugins/tests.lua diff --git a/lua/custom/plugins/tests.lua b/lua/custom/plugins/tests.lua new file mode 100644 index 00000000000..522f8947cc7 --- /dev/null +++ b/lua/custom/plugins/tests.lua @@ -0,0 +1,31 @@ +return { + 'nvim-neotest/neotest', + dependencies = { + 'nvim-neotest/nvim-nio', + 'nvim-lua/plenary.nvim', + 'antoinemadec/FixCursorHold.nvim', + 'nvim-treesitter/nvim-treesitter', + 'nvim-neotest/neotest-go', + }, + opts = {}, + config = function() + require('neotest').setup { + adapters = { + require 'neotest-go', + }, + output_panel = { + enabled = true, + open = 'botright split | resize 15', + }, + quickfix = { + open = false, + }, + } + vim.keymap.set('n', 't', "lua require('neotest').run.run()", { desc = 'Run Test' }) + vim.keymap.set('n', 'tf', "lua require('neotest').run.run(vim.fn.expand('%'))", { desc = 'Run Test File' }) + vim.keymap.set('n', 'td', "lua require('neotest').run.run(vim.fn.getcwd())", { desc = 'Run Current Test Directory' }) + vim.keymap.set('n', 'tp', "lua require('neotest').output_panel.toggle()", { desc = 'Toggle Test Output Panel' }) + vim.keymap.set('n', 'tl', "lua require('neotest').run.run_last()", { desc = 'Run Last Test' }) + vim.keymap.set('n', 'ts', "lua require('neotest').summary.toggle()", { desc = 'Toggle Test Summary' }) + end, +} From 168b40ba9c58cb63038f6d2513bc5202b7fdbc0c Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Tue, 9 Dec 2025 12:22:00 +0400 Subject: [PATCH 14/22] Install yamlls for yaml support --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index 1e48ab47028..1e776e16b6c 100644 --- a/init.lua +++ b/init.lua @@ -728,6 +728,7 @@ require('lazy').setup({ require('mason-lspconfig').setup { ensure_installed = { 'gopls', + 'yamlls', }, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) automatic_installation = false, handlers = { From 83202acadb4e986b0536f574fda0e9d7af0ac159 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Fri, 19 Dec 2025 11:27:07 +0400 Subject: [PATCH 15/22] added llm completion --- init.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 1e776e16b6c..2d513987bf9 100644 --- a/init.lua +++ b/init.lua @@ -861,12 +861,23 @@ require('lazy').setup({ -- By default, you may press `` to show the documentation. -- Optionally, set `auto_show = true` to show the documentation after a delay. documentation = { auto_show = false, auto_show_delay_ms = 500 }, + -- Recommended to avoid unnecessary request + trigger = { prefetch_on_insert = false }, }, sources = { - default = { 'lsp', 'path', 'snippets', 'lazydev' }, + default = { 'lsp', 'path', 'snippets', 'lazydev', 'minuet' }, providers = { lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, + minuet = { + name = 'minuet', + module = 'minuet.blink', + async = true, + -- Should match minuet.config.request_timeout * 1000, + -- since minuet.config.request_timeout is in seconds + timeout_ms = 3000, + score_offset = 50, -- Gives minuet higher priority among suggestions + }, }, }, From 532b8ced730ce97c7c15fa120652219df56f27c0 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Fri, 19 Dec 2025 11:32:31 +0400 Subject: [PATCH 16/22] added llm completion --- lua/custom/plugins/llm.lua | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 lua/custom/plugins/llm.lua diff --git a/lua/custom/plugins/llm.lua b/lua/custom/plugins/llm.lua new file mode 100644 index 00000000000..916fc66c2db --- /dev/null +++ b/lua/custom/plugins/llm.lua @@ -0,0 +1,48 @@ +return { + { + 'milanglacier/minuet-ai.nvim', + config = function() + require('minuet').setup { + virtualtext = { + auto_trigger_ft = {}, + keymap = { + -- accept whole completion + accept = '', + -- accept one line + accept_line = '', + -- accept n lines (prompts for number) + -- e.g. "A-z 2 CR" will accept 2 lines + accept_n_lines = '', + -- Cycle to prev completion item, or manually invoke completion + prev = '', + -- Cycle to next completion item, or manually invoke completion + next = '', + dismiss = '', + }, + }, + provider = 'openai_fim_compatible', + n_completions = 1, -- recommend for local model for resource saving + -- I recommend beginning with a small context window size and incrementally + -- expanding it, depending on your local computing power. A context window + -- of 512, serves as an good starting point to estimate your computing + -- power. Once you have a reliable estimate of your local computing power, + -- you should adjust the context window to a larger value. + context_window = 512, + provider_options = { + openai_fim_compatible = { + -- For Windows users, TERM may not be present in environment variables. + -- Consider using APPDATA instead. + api_key = 'TERM', + name = 'Ollama', + end_point = 'http://localhost:11434/v1/completions', + model = 'qwen2.5-coder:7b', + optional = { + max_tokens = 56, + top_p = 0.9, + }, + }, + }, + } + end, + }, +} From 131fc5509e557f5c55075efba814cc0992e26ff2 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Fri, 19 Dec 2025 11:42:38 +0400 Subject: [PATCH 17/22] added condition for minuet.ai to disable it if there's no ollama installed --- lua/custom/plugins/llm.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lua/custom/plugins/llm.lua b/lua/custom/plugins/llm.lua index 916fc66c2db..5d53474d945 100644 --- a/lua/custom/plugins/llm.lua +++ b/lua/custom/plugins/llm.lua @@ -1,6 +1,17 @@ return { { 'milanglacier/minuet-ai.nvim', + + cond = function() + if vim.fn.executable 'ollama' ~= 1 then + vim.schedule(function() + vim.notify('minuet-ai.nvim disabled: ollama not found', vim.log.levels.INFO) + end) + return false + end + return true + end, + config = function() require('minuet').setup { virtualtext = { From b0ce4d621966ebd99edcbe415c85ffac80af902e Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 12 Feb 2026 13:40:29 +0400 Subject: [PATCH 18/22] Setted up telescope to show hidden files except .git dir --- init.lua | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/init.lua b/init.lua index 2d513987bf9..06642711118 100644 --- a/init.lua +++ b/init.lua @@ -417,7 +417,14 @@ require('lazy').setup({ -- i = { [''] = 'to_fuzzy_refine' }, -- }, -- }, - -- pickers = {} + pickers = { + find_files = { + hidden = true, + file_ignore_patterns = { '%.git/' }, + no_ignore = true, + no_ignore_parent = true, + }, + }, extensions = { ['ui-select'] = { require('telescope.themes').get_dropdown(), @@ -679,6 +686,7 @@ require('lazy').setup({ -- clangd = {}, gopls = {}, tofu_ls = {}, + marksman = {}, -- pyright = {}, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs @@ -866,18 +874,18 @@ require('lazy').setup({ }, sources = { - default = { 'lsp', 'path', 'snippets', 'lazydev', 'minuet' }, + default = { 'lsp', 'path', 'snippets', 'lazydev' }, providers = { lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, - minuet = { - name = 'minuet', - module = 'minuet.blink', - async = true, - -- Should match minuet.config.request_timeout * 1000, - -- since minuet.config.request_timeout is in seconds - timeout_ms = 3000, - score_offset = 50, -- Gives minuet higher priority among suggestions - }, + -- minuet = { + -- name = 'minuet', + -- -- module = 'minuet.blink', + -- -- async = true, + -- -- -- Should match minuet.config.request_timeout * 1000, + -- -- -- since minuet.config.request_timeout is in seconds + -- timeout_ms = 3000, + -- score_offset = 50, -- Gives minuet higher priority among suggestions + -- }, }, }, @@ -965,7 +973,7 @@ require('lazy').setup({ main = 'nvim-treesitter.configs', -- Sets main module to use for opts -- [[ Configure Treesitter ]] See `:help nvim-treesitter` opts = { - ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc', 'go' }, + ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc', 'go', 'yaml', 'json' }, -- Autoinstall languages that are not installed auto_install = true, highlight = { From 299f2e3e7264e57e482cde5fd5469f1b431e89e8 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Tue, 17 Feb 2026 20:30:46 +0400 Subject: [PATCH 19/22] Added ruby ls --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index 06642711118..25c1c452da0 100644 --- a/init.lua +++ b/init.lua @@ -737,6 +737,7 @@ require('lazy').setup({ ensure_installed = { 'gopls', 'yamlls', + 'solargraph', }, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) automatic_installation = false, handlers = { From 32584838f61600a771b8522572bab108d16b2dc5 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Tue, 17 Feb 2026 22:09:06 +0400 Subject: [PATCH 20/22] Added a few lss and configured lua ls for luarocks support --- init.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/init.lua b/init.lua index 25c1c452da0..ef0d7be806d 100644 --- a/init.lua +++ b/init.lua @@ -484,6 +484,7 @@ require('lazy').setup({ library = { -- Load luvit types when the `vim.uv` word is found { path = '${3rd}/luv/library', words = { 'vim%.uv' } }, + vim.fn.expand '~/.luarocks/share/lua/5.3/', }, }, }, @@ -687,6 +688,9 @@ require('lazy').setup({ gopls = {}, tofu_ls = {}, marksman = {}, + bashls = {}, + jsonls = {}, + yamlls = {}, -- pyright = {}, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs @@ -737,7 +741,10 @@ require('lazy').setup({ ensure_installed = { 'gopls', 'yamlls', + 'jsonls', 'solargraph', + 'bashls', + 'lua_ls', }, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) automatic_installation = false, handlers = { From 5233c6a3d2f42627feea25bfbbdcd17cf4843b0e Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Thu, 19 Feb 2026 09:34:12 +0400 Subject: [PATCH 21/22] Added python support (lsp, linter, formatter) --- init.lua | 20 ++++++++++++++++++-- lua/kickstart/plugins/lint.lua | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index ef0d7be806d..a5eacbe986a 100644 --- a/init.lua +++ b/init.lua @@ -88,7 +88,6 @@ P.S. You can delete this when you're done too. It's your config now! :) -- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' - -- Set to true if you have a Nerd Font installed and selected in the terminal vim.g.have_nerd_font = false @@ -691,7 +690,14 @@ require('lazy').setup({ bashls = {}, jsonls = {}, yamlls = {}, - -- pyright = {}, + ty = { + configuration = { + rules = { + ['unresolved-reference'] = 'warn', + diagnosticMode = 'workspace', + }, + }, + }, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs -- @@ -734,6 +740,7 @@ require('lazy').setup({ local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { 'stylua', -- Used to format Lua code + 'ruff', }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } @@ -745,6 +752,7 @@ require('lazy').setup({ 'solargraph', 'bashls', 'lua_ls', + 'ty', }, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) automatic_installation = false, handlers = { @@ -794,6 +802,14 @@ require('lazy').setup({ formatters_by_ft = { lua = { 'stylua' }, go = { 'gofmt' }, + python = { + -- To fix auto-fixable lint errors. + 'ruff_fix', + -- To run the Ruff formatter. + 'ruff_format', + -- To organize the imports. + 'ruff_organize_imports', + }, -- Conform can also run multiple formatters sequentially -- python = { "isort", "black" }, -- diff --git a/lua/kickstart/plugins/lint.lua b/lua/kickstart/plugins/lint.lua index dec42f097c6..ecdf36f4078 100644 --- a/lua/kickstart/plugins/lint.lua +++ b/lua/kickstart/plugins/lint.lua @@ -7,6 +7,7 @@ return { local lint = require 'lint' lint.linters_by_ft = { markdown = { 'markdownlint' }, + python = { 'ruff' }, } -- To allow other plugins to add linters to require('lint').linters_by_ft, From c7e0fbb55605dba6b249d79bfa3ad5bacac7c4d0 Mon Sep 17 00:00:00 2001 From: Nikita Avgustanov Date: Fri, 20 Feb 2026 11:08:35 +0400 Subject: [PATCH 22/22] Trying to fix ty and ruff conflicts, and added some stuff for golang --- init.lua | 38 +++++++++--------- lua/custom/plugins/golang.lua | 70 ++++++++++++++++++++++++++++++++++ lua/kickstart/plugins/lint.lua | 1 - 3 files changed, 89 insertions(+), 20 deletions(-) create mode 100644 lua/custom/plugins/golang.lua diff --git a/init.lua b/init.lua index a5eacbe986a..1362e3800ee 100644 --- a/init.lua +++ b/init.lua @@ -690,14 +690,7 @@ require('lazy').setup({ bashls = {}, jsonls = {}, yamlls = {}, - ty = { - configuration = { - rules = { - ['unresolved-reference'] = 'warn', - diagnosticMode = 'workspace', - }, - }, - }, + ruff = {}, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs -- @@ -740,7 +733,6 @@ require('lazy').setup({ local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { 'stylua', -- Used to format Lua code - 'ruff', }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } @@ -752,7 +744,7 @@ require('lazy').setup({ 'solargraph', 'bashls', 'lua_ls', - 'ty', + 'ruff', }, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) automatic_installation = false, handlers = { @@ -802,14 +794,6 @@ require('lazy').setup({ formatters_by_ft = { lua = { 'stylua' }, go = { 'gofmt' }, - python = { - -- To fix auto-fixable lint errors. - 'ruff_fix', - -- To run the Ruff formatter. - 'ruff_format', - -- To organize the imports. - 'ruff_organize_imports', - }, -- Conform can also run multiple formatters sequentially -- python = { "isort", "black" }, -- @@ -997,7 +981,23 @@ require('lazy').setup({ main = 'nvim-treesitter.configs', -- Sets main module to use for opts -- [[ Configure Treesitter ]] See `:help nvim-treesitter` opts = { - ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc', 'go', 'yaml', 'json' }, + ensure_installed = { + 'bash', + 'c', + 'diff', + 'html', + 'lua', + 'luadoc', + 'markdown', + 'markdown_inline', + 'query', + 'vim', + 'vimdoc', + 'go', + 'yaml', + 'json', + 'python', + }, -- Autoinstall languages that are not installed auto_install = true, highlight = { diff --git a/lua/custom/plugins/golang.lua b/lua/custom/plugins/golang.lua new file mode 100644 index 00000000000..2ea6462f79a --- /dev/null +++ b/lua/custom/plugins/golang.lua @@ -0,0 +1,70 @@ +return { + { + 'olexsmir/gopher.nvim', + ft = 'go', + -- branch = "develop" + -- (optional) updates the plugin's dependencies on each update + build = function() + vim.cmd.GoInstallDeps() + end, + ---@module "gopher" + ---@type gopher.Config + opts = {}, + config = function() + require('gopher').setup { + -- log level, you might consider using DEBUG or TRACE for debugging the plugin + log_level = vim.log.levels.INFO, + + -- timeout for running internal commands + timeout = 2000, + + -- timeout for running installer commands(e.g :GoDepsInstall, :GoDepsInstallSync) + installer_timeout = 999999, + + -- user specified paths to binaries + commands = { + go = 'go', + gomodifytags = 'gomodifytags', + gotests = 'gotests', + impl = 'impl', + iferr = 'iferr', + }, + gotests = { + -- a default template that gotess will use. + -- gotets doesn't have template named `default`, we use it to represent absence of the provided template. + template = 'default', + + -- path to a directory containing custom test code templates + template_dir = nil, + + -- use named tests(map with test name as key) in table tests(slice of structs by default) + named = false, + }, + gotag = { + transform = 'snakecase', + + -- default tags to add to struct fields + default_tag = 'json', + + -- default tag option added struct fields, set to nil to disable + -- e.g: `option = "json=omitempty,xml=omitempty` + option = nil, + }, + iferr = { + -- choose a custom error message, nil to use default + -- e.g: `message = 'fmt.Errorf("failed to %w", err)'` + message = nil, + }, + json2go = { + -- command used to open interactive input. + -- e.g: `split`, `botright split`, `tabnew` + interactive_cmd = 'vsplit', + + -- name of autogenerated struct + -- e.g: "MySuperCoolName" + type_name = nil, + }, + } + end, + }, +} diff --git a/lua/kickstart/plugins/lint.lua b/lua/kickstart/plugins/lint.lua index ecdf36f4078..dec42f097c6 100644 --- a/lua/kickstart/plugins/lint.lua +++ b/lua/kickstart/plugins/lint.lua @@ -7,7 +7,6 @@ return { local lint = require 'lint' lint.linters_by_ft = { markdown = { 'markdownlint' }, - python = { 'ruff' }, } -- To allow other plugins to add linters to require('lint').linters_by_ft,