From 938ae92ed9909fc2ef75c2a7076a41bedd3a2ec7 Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 14:24:30 +0200 Subject: [PATCH 01/20] Tracky lazylock --- .gitignore | 1 - lazy-lock.json | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 lazy-lock.json diff --git a/.gitignore b/.gitignore index 005b535b606..8a192cab54d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ test.sh nvim spell/ -lazy-lock.json diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 00000000000..18a985c4361 --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,24 @@ +{ + "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, + "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, + "conform.nvim": { "branch": "master", "commit": "f54259518695178168fbad442468e25f121230d4" }, + "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, + "gitsigns.nvim": { "branch": "main", "commit": "588264bee92993df92535b6742576f5655c91b1c" }, + "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "c4c84f4521d62de595c0d0f718a9a40c1890c8ce" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, + "mini.nvim": { "branch": "main", "commit": "48f48e4b3f317e9da34ee7a01958b4c5018e2d34" }, + "nvim-lspconfig": { "branch": "master", "commit": "1cb30b1bafe5a63a5c6ac20dc39f83487df38855" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } +} From bfc94f0acd26b677e2a521032e70428581e5352b Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 14:24:36 +0200 Subject: [PATCH 02/20] Enable nerd fonts --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index b98ffc6198a..8090243de97 100644 --- a/init.lua +++ b/init.lua @@ -91,7 +91,7 @@ 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 +vim.g.have_nerd_font = true -- [[ Setting options ]] -- See `:help vim.o` From 7eadc8184e4de9856f98bdd9fcf4c2ff0c8ce33c Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 14:26:35 +0200 Subject: [PATCH 03/20] Enable relative line numbers --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 8090243de97..ff327f4092b 100644 --- a/init.lua +++ b/init.lua @@ -102,7 +102,7 @@ vim.g.have_nerd_font = true 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' From e2123c3e61ca74efbf7810bb46c23fb10300360e Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 14:46:05 +0200 Subject: [PATCH 04/20] Enable linters --- init.lua | 4 ++-- lazy-lock.json | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index ff327f4092b..29454eabde2 100644 --- a/init.lua +++ b/init.lua @@ -108,7 +108,7 @@ vim.o.relativenumber = true vim.o.mouse = 'a' -- Don't show the mode, since it's already in the status line -vim.o.showmode = false +vim.o.showmode = true -- Sync clipboard between OS and Neovim. -- Schedule the setting after `UiEnter` because it can increase startup-time. @@ -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 diff --git a/lazy-lock.json b/lazy-lock.json index 18a985c4361..d57bdfd0c6f 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -11,6 +11,7 @@ "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, "mini.nvim": { "branch": "main", "commit": "48f48e4b3f317e9da34ee7a01958b4c5018e2d34" }, + "nvim-lint": { "branch": "master", "commit": "2b0039b8be9583704591a13129c600891ac2c596" }, "nvim-lspconfig": { "branch": "master", "commit": "1cb30b1bafe5a63a5c6ac20dc39f83487df38855" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" }, From a6a22fd4ce4f04a92bfdab0cc3cf8dafe3c56461 Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 14:52:41 +0200 Subject: [PATCH 05/20] Enable neotree --- init.lua | 2 +- lazy-lock.json | 2 ++ lua/kickstart/plugins/neo-tree.lua | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 29454eabde2..ee2a82af7fd 100644 --- a/init.lua +++ b/init.lua @@ -977,7 +977,7 @@ require('lazy').setup({ -- require 'kickstart.plugins.indent_line', require 'kickstart.plugins.lint', -- require 'kickstart.plugins.autopairs', - -- require 'kickstart.plugins.neo-tree', + require 'kickstart.plugins.neo-tree', -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` diff --git a/lazy-lock.json b/lazy-lock.json index d57bdfd0c6f..77aadf6bd7c 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -11,6 +11,8 @@ "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, "mini.nvim": { "branch": "main", "commit": "48f48e4b3f317e9da34ee7a01958b4c5018e2d34" }, + "neo-tree.nvim": { "branch": "main", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nvim-lint": { "branch": "master", "commit": "2b0039b8be9583704591a13129c600891ac2c596" }, "nvim-lspconfig": { "branch": "master", "commit": "1cb30b1bafe5a63a5c6ac20dc39f83487df38855" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, diff --git a/lua/kickstart/plugins/neo-tree.lua b/lua/kickstart/plugins/neo-tree.lua index c7067891df0..ad2e1343ef4 100644 --- a/lua/kickstart/plugins/neo-tree.lua +++ b/lua/kickstart/plugins/neo-tree.lua @@ -16,6 +16,7 @@ return { opts = { filesystem = { window = { + position = 'right', mappings = { ['\\'] = 'close_window', }, From 020f9b55315b300369ac031b32977868232f7775 Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 15:05:14 +0200 Subject: [PATCH 06/20] Add custom keymaps --- init.lua | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/init.lua b/init.lua index ee2a82af7fd..2947e6008f8 100644 --- a/init.lua +++ b/init.lua @@ -90,6 +90,22 @@ P.S. You can delete this when you're done too. It's your config now! :) vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' +-- Custom keymaps +-- Remap for dealing with word wrap +vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) +vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) + +-- Nicer tab handling in visual mode +vim.keymap.set("v", "<", "", ">gv") + +-- Nicer movement in visual mode +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") + +-- Additional map for neotree +vim.keymap.set("n", "te", "Neotree toggle") + -- Set to true if you have a Nerd Font installed and selected in the terminal vim.g.have_nerd_font = true From f2dd3538ce88f312d480678cc204a97eccc11ca1 Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 15:27:38 +0200 Subject: [PATCH 07/20] Harpoon, fugitive and supermaven --- init.lua | 12 +++---- lazy-lock.json | 3 ++ lua/custom/plugins/init.lua | 64 ++++++++++++++++++++++++++++++++++++- 3 files changed, 72 insertions(+), 7 deletions(-) diff --git a/init.lua b/init.lua index 2947e6008f8..7708c240575 100644 --- a/init.lua +++ b/init.lua @@ -96,15 +96,15 @@ vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = tr vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- Nicer tab handling in visual mode -vim.keymap.set("v", "<", "", ">gv") +vim.keymap.set('v', '<', '', '>gv') -- Nicer movement in visual mode -vim.keymap.set("v", "J", ":m '>+1gv=gv") -vim.keymap.set("v", "K", ":m '<-2gv=gv") +vim.keymap.set('v', 'J', ":m '>+1gv=gv") +vim.keymap.set('v', 'K', ":m '<-2gv=gv") -- Additional map for neotree -vim.keymap.set("n", "te", "Neotree toggle") +vim.keymap.set('n', 'te', 'Neotree toggle') -- Set to true if you have a Nerd Font installed and selected in the terminal vim.g.have_nerd_font = true @@ -1000,7 +1000,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! diff --git a/lazy-lock.json b/lazy-lock.json index 77aadf6bd7c..511b5ad702b 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -5,6 +5,7 @@ "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "gitsigns.nvim": { "branch": "main", "commit": "588264bee92993df92535b6742576f5655c91b1c" }, "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, + "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "c4c84f4521d62de595c0d0f718a9a40c1890c8ce" }, @@ -18,10 +19,12 @@ "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, + "vim-fugitive": { "branch": "master", "commit": "593f831d6f6d779cbabb70a4d1e6b1b1936a88af" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index be0eb9d8d7a..871c8d3d77f 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -2,4 +2,66 @@ -- I promise not to create any merge conflicts in this directory :) -- -- See the kickstart.nvim README for more information -return {} +return { + -- Git integration in nvim + 'tpope/vim-fugitive', + + -- Supermaven integration + { + 'supermaven-inc/supermaven-nvim', + config = function() + require('supermaven-nvim').setup { + keymaps = { + accept_word = '', + accept_suggestion = '', + }, + } + end, + }, + + -- Harpoon, for quick file navigation + { + 'ThePrimeagen/harpoon', + branch = 'harpoon2', + dependencies = { 'nvim-lua/plenary.nvim' }, + config = function() + local harpoon = require 'harpoon' + harpoon:setup() + + vim.keymap.set('n', '', function() + harpoon:list():add() + end) + + vim.keymap.set('n', 'H', function() + harpoon.ui:toggle_quick_menu(harpoon:list()) + end) + + vim.keymap.set('n', '1', function() + harpoon:list():select(1) + end) + + vim.keymap.set('n', '2', function() + harpoon:list():select(2) + end) + + vim.keymap.set('n', '3', function() + harpoon:list():select(3) + end) + + vim.keymap.set('n', '4', function() + harpoon:list():select(4) + end) + + vim.keymap.set('n', '5', function() + harpoon:list():select(5) + end) + + -- Go back to the previous buffer + vim.keymap.set('n', '`', 'b#') + + local harpoon_extensions = require 'harpoon.extensions' + harpoon:extend(harpoon_extensions.builtins.highlight_current_file()) + end, + }, +} +-- vim: ts=2 sts=2 sw=2 et From 5c7a0e0f80a2dc9b46c474ae5531a479d4ffe4bd Mon Sep 17 00:00:00 2001 From: Dominik Date: Wed, 2 Jul 2025 16:03:03 +0200 Subject: [PATCH 08/20] Update neotree map to toggle --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 7708c240575..6676cb1cfd3 100644 --- a/init.lua +++ b/init.lua @@ -104,7 +104,7 @@ vim.keymap.set('v', 'J', ":m '>+1gv=gv") vim.keymap.set('v', 'K', ":m '<-2gv=gv") -- Additional map for neotree -vim.keymap.set('n', 'te', 'Neotree toggle') +vim.keymap.set('n', 'te', 'Neotree reveal') -- Set to true if you have a Nerd Font installed and selected in the terminal vim.g.have_nerd_font = true From 5b3ab96bfadfd3559fda0a36a24ce382dc173242 Mon Sep 17 00:00:00 2001 From: Dominik Date: Thu, 3 Jul 2025 16:08:38 +0200 Subject: [PATCH 09/20] Guess indent fix --- init.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 6676cb1cfd3..88a6f1b6c04 100644 --- a/init.lua +++ b/init.lua @@ -263,7 +263,13 @@ 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', -- Detect tabstop and shiftwidth automatically + event = 'BufRead', + config = function() + require('guess-indent').setup {} + end, + }, -- NOTE: Plugins can also be added by using a table, -- with the first argument being the link and the following From 9be57a4953b4e852cbe4556ae279e616b2997bce Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 4 Jul 2025 11:30:07 +0200 Subject: [PATCH 10/20] Add keymap for accepting lsp completions --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index 88a6f1b6c04..52d95cbe0ee 100644 --- a/init.lua +++ b/init.lua @@ -858,6 +858,7 @@ require('lazy').setup({ -- -- See :h blink-cmp-config-keymap for defining your own keymap preset = 'default', + [''] = { 'accept' }, -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps From 501fda606faa9616a8ce55f1eb896c62a61cbaa1 Mon Sep 17 00:00:00 2001 From: Dominik Date: Tue, 29 Jul 2025 20:12:59 +0200 Subject: [PATCH 11/20] Transparent background --- init.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/init.lua b/init.lua index 52d95cbe0ee..97924cf0432 100644 --- a/init.lua +++ b/init.lua @@ -106,6 +106,10 @@ vim.keymap.set('v', 'K', ":m '<-2gv=gv") -- Additional map for neotree vim.keymap.set('n', 'te', 'Neotree reveal') +vim.o.expandtab = true +vim.o.tabstop = 4 +vim.o.shiftwidth = 4 + -- Set to true if you have a Nerd Font installed and selected in the terminal vim.g.have_nerd_font = true @@ -775,13 +779,10 @@ require('lazy').setup({ opts = { notify_on_error = false, format_on_save = function(bufnr) - -- Disable "format_on_save lsp_fallback" for languages that don't - -- have a well standardized coding style. You can add additional - -- languages here or re-enable it for the disabled ones. - local disable_filetypes = { c = true, cpp = true } - if disable_filetypes[vim.bo[bufnr].filetype] then - return nil - else + -- Emable "format_on_save lsp_fallback" for languages that have + -- have a well standardized coding style. You can add additional here + local enable_filetypes = { 'lua' } + if enable_filetypes[vim.bo[bufnr].filetype] then return { timeout_ms = 500, lsp_format = 'fallback', @@ -909,8 +910,11 @@ require('lazy').setup({ config = function() ---@diagnostic disable-next-line: missing-fields require('tokyonight').setup { + transparent = true, -- Transparent background styles = { comments = { italic = false }, -- Disable italics in comments + sidebars = "transparent", + floats = "transparent", }, } From 4397b3a0f5a47e1b91e1af238296bdb41fd78ee8 Mon Sep 17 00:00:00 2001 From: Dominik Date: Tue, 29 Jul 2025 20:21:44 +0200 Subject: [PATCH 12/20] Bump lazy lock --- lazy-lock.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 511b5ad702b..b3e76f3d0a2 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,30 +1,30 @@ { "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, - "conform.nvim": { "branch": "master", "commit": "f54259518695178168fbad442468e25f121230d4" }, - "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, - "gitsigns.nvim": { "branch": "main", "commit": "588264bee92993df92535b6742576f5655c91b1c" }, + "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" }, + "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, + "fidget.nvim": { "branch": "main", "commit": "c1725fbadd99c810273b202d67dbfedf66e61eaf" }, + "gitsigns.nvim": { "branch": "main", "commit": "b01433169be710d6c69f7b4ee264d9670698b831" }, "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "c4c84f4521d62de595c0d0f718a9a40c1890c8ce" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "c4fb5f2910750538ff3be7afaac6cd3a94be2587" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, - "mini.nvim": { "branch": "main", "commit": "48f48e4b3f317e9da34ee7a01958b4c5018e2d34" }, - "neo-tree.nvim": { "branch": "main", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" }, + "mason.nvim": { "branch": "main", "commit": "3671ab0d40aa5bd24b1686562bd0a23391ecf76a" }, + "mini.nvim": { "branch": "main", "commit": "c122e852517adaf7257688e435369c050da113b1" }, + "neo-tree.nvim": { "branch": "main", "commit": "cea666ef965884414b1b71f6b39a537f9238bdb2" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "2b0039b8be9583704591a13129c600891ac2c596" }, - "nvim-lspconfig": { "branch": "master", "commit": "1cb30b1bafe5a63a5c6ac20dc39f83487df38855" }, + "nvim-lint": { "branch": "master", "commit": "9c6207559297b24f0b7c32829f8e45f7d65b991f" }, + "nvim-lspconfig": { "branch": "master", "commit": "177be29e7b9c084c9200ee4033eb66e04ac536ec" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "nvim-web-devicons": { "branch": "master", "commit": "4a8369f4c78ef6f6f895f0cec349e48f74330574" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, - "vim-fugitive": { "branch": "master", "commit": "593f831d6f6d779cbabb70a4d1e6b1b1936a88af" }, + "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } From 4134525f2482ae3ca062b2118fa316c11ea6efbb Mon Sep 17 00:00:00 2001 From: Dominik Date: Tue, 9 Sep 2025 19:10:13 +0200 Subject: [PATCH 13/20] Treesitter folds --- init.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 97924cf0432..c80d893843a 100644 --- a/init.lua +++ b/init.lua @@ -1039,5 +1039,10 @@ require('lazy').setup({ }, }) --- The line beneath this is called `modeline`. See `:help modeline` --- vim: ts=2 sts=2 sw=2 et +-- set up folds for treesitter +vim.o.foldmethod = "expr" +vim.o.foldexpr = "nvim_treesitter#foldexpr()" + +-- keep folds open by default +vim.o.foldlevel = 99 +vim.o.foldenable = true From ebf3d7bbb55e2945d9ddefebdca07a11a1d67f92 Mon Sep 17 00:00:00 2001 From: Dominik Date: Tue, 9 Sep 2025 19:10:24 +0200 Subject: [PATCH 14/20] Lazy lock bump --- lazy-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index b3e76f3d0a2..fd8da0dc010 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -2,22 +2,22 @@ "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" }, "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, - "fidget.nvim": { "branch": "main", "commit": "c1725fbadd99c810273b202d67dbfedf66e61eaf" }, - "gitsigns.nvim": { "branch": "main", "commit": "b01433169be710d6c69f7b4ee264d9670698b831" }, + "fidget.nvim": { "branch": "main", "commit": "2cb5edb2dd6700a958a446b20bb2be04d318da9d" }, + "gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" }, "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "c4fb5f2910750538ff3be7afaac6cd3a94be2587" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "7f0bf635082bb9b7d2b37766054526a6ccafdb85" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "3671ab0d40aa5bd24b1686562bd0a23391ecf76a" }, - "mini.nvim": { "branch": "main", "commit": "c122e852517adaf7257688e435369c050da113b1" }, + "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, + "mini.nvim": { "branch": "main", "commit": "0e9d1f972a91acf5a0513319099ba41f7c09c30a" }, "neo-tree.nvim": { "branch": "main", "commit": "cea666ef965884414b1b71f6b39a537f9238bdb2" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "9c6207559297b24f0b7c32829f8e45f7d65b991f" }, - "nvim-lspconfig": { "branch": "master", "commit": "177be29e7b9c084c9200ee4033eb66e04ac536ec" }, + "nvim-lint": { "branch": "master", "commit": "7ef127aaede2a4d5ad8df8321e2eb4e567f29594" }, + "nvim-lspconfig": { "branch": "master", "commit": "45ff1914044de7dbd4cd85053dc09f47312a2f4d" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "4a8369f4c78ef6f6f895f0cec349e48f74330574" }, + "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, From 5e3e216ea1a4e61b63b721c81b2f5567174cc376 Mon Sep 17 00:00:00 2001 From: Dominik Date: Mon, 12 Jan 2026 18:21:53 +0100 Subject: [PATCH 15/20] Custom winbar setup with breadcrumbs (navic) --- init.lua | 10 ++++++ lazy-lock.json | 33 ++++++++++--------- lua/custom/plugins/init.lua | 6 ++++ lua/custom/winbar.lua | 66 +++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 16 deletions(-) create mode 100644 lua/custom/winbar.lua diff --git a/init.lua b/init.lua index c80d893843a..94951fb31f2 100644 --- a/init.lua +++ b/init.lua @@ -548,6 +548,7 @@ require('lazy').setup({ -- That is to say, every time a new file is opened that is associated with -- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this -- function will be executed to configure the current buffer + -- vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }), callback = function(event) @@ -617,6 +618,11 @@ require('lazy').setup({ -- -- When you move your cursor, the highlights will be cleared (the second autocommand). local client = vim.lsp.get_client_by_id(event.data.client_id) + + if client and client.server_capabilities.documentSymbolProvider then + require('nvim-navic').attach(client, event.buf) + end + if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false }) vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { @@ -1046,3 +1052,7 @@ vim.o.foldexpr = "nvim_treesitter#foldexpr()" -- keep folds open by default vim.o.foldlevel = 99 vim.o.foldenable = true + +-- winbar setup +require('custom.winbar').setup() +vim.o.winbar = "%{%v:lua.require('custom.winbar').setup()%}" diff --git a/lazy-lock.json b/lazy-lock.json index fd8da0dc010..fb20fe2fcef 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,30 +1,31 @@ { "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" }, - "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, - "fidget.nvim": { "branch": "main", "commit": "2cb5edb2dd6700a958a446b20bb2be04d318da9d" }, - "gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" }, + "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, + "conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" }, + "fidget.nvim": { "branch": "main", "commit": "3f5475949679953af6d78654db29b944fa826e6a" }, + "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "7f0bf635082bb9b7d2b37766054526a6ccafdb85" }, + "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, + "lazydev.nvim": { "branch": "main", "commit": "e28ce52fc7ff79fcb76f0e79ee6fb6182fca90b9" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, - "mini.nvim": { "branch": "main", "commit": "0e9d1f972a91acf5a0513319099ba41f7c09c30a" }, - "neo-tree.nvim": { "branch": "main", "commit": "cea666ef965884414b1b71f6b39a537f9238bdb2" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "mini.nvim": { "branch": "main", "commit": "8a7cf7eee8d89bd1b83f6d72f7f3b5598e7ae2cb" }, + "neo-tree.nvim": { "branch": "main", "commit": "c4c168e459395275c552179a1baf9c3d885d6a74" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "7ef127aaede2a4d5ad8df8321e2eb4e567f29594" }, - "nvim-lspconfig": { "branch": "master", "commit": "45ff1914044de7dbd4cd85053dc09f47312a2f4d" }, + "nvim-lint": { "branch": "master", "commit": "9da1fb942dd0668d5182f9c8dee801b9c190e2bb" }, + "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, + "nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" }, + "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, - "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, + "todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" }, + "tokyonight.nvim": { "branch": "main", "commit": "d14614cbfc63b6037bfccd48bb982d2ad2003352" }, "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } + "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" } } diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index 871c8d3d77f..711783f172d 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -63,5 +63,11 @@ return { harpoon:extend(harpoon_extensions.builtins.highlight_current_file()) end, }, + + -- Breadcrumbs + { + "SmiteshP/nvim-navic", + dependencies = 'neovim/nvim-lspconfig', + }, } -- vim: ts=2 sts=2 sw=2 et diff --git a/lua/custom/winbar.lua b/lua/custom/winbar.lua new file mode 100644 index 00000000000..56dc6c1b158 --- /dev/null +++ b/lua/custom/winbar.lua @@ -0,0 +1,66 @@ +M = {} + +M.setup = function() + local function winbar_indent() + local indent = 0 + + -- line numbers + if vim.wo.number or vim.wo.relativenumber then + local numberwidth = vim.wo.numberwidth + if numberwidth == 0 then + -- auto width: digits in max line number + local max_lnum = vim.api.nvim_buf_line_count(0) + indent = indent + tostring(max_lnum):len() + else + indent = indent + numberwidth + end + end + + -- space between number + text + indent = indent + 2 + + -- signcolumn + if vim.wo.signcolumn ~= 'no' then + indent = indent + 1 + end + + return string.rep(' ', indent) + end + + local function winbar_icon(filepath) + if filepath == 'Filesystem' then + return ' ' + elseif filepath == 'Git' then + return ' ' + elseif filepath == 'Nvim' then + return ' ' + end + return ' ' + end + + -- file path + local filepath = vim.fn.expand('%:~:.') + -- override neo-tree default buffer name + if filepath == 'neo-tree filesystem [1]' then + filepath = 'Filesystem' + -- override fugitive default buffer name + elseif filepath:match('^fugitive://') then + filepath = 'Git' + elseif filepath == '' then + filepath = 'Nvim' + end + + local navic = require('nvim-navic') + local location = navic.is_available() and navic.get_location() or '' + + local indent = winbar_indent() + local icon = winbar_icon(filepath) + + if location ~= '' then + return indent .. icon .. filepath .. ' > ' .. location + end + + return indent .. icon .. filepath +end + +return M From dda59d8a9dc2176ca8bac2eff5cd15295516af83 Mon Sep 17 00:00:00 2001 From: Dominik Date: Mon, 12 Jan 2026 18:56:54 +0100 Subject: [PATCH 16/20] Nicer statusline --- init.lua | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 94951fb31f2..f656c9e413e 100644 --- a/init.lua +++ b/init.lua @@ -957,7 +957,58 @@ require('lazy').setup({ -- and try some other statusline plugin local statusline = require 'mini.statusline' -- set use_icons to true if you have a Nerd Font - statusline.setup { use_icons = vim.g.have_nerd_font } + statusline.setup { + use_icons = vim.g.have_nerd_font, + + content = { + active = function() + local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 }) + local git = MiniStatusline.section_git({ trunc_width = 40 }) + local diff = MiniStatusline.section_diff({ trunc_width = 75 }) + local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 }) + local location = MiniStatusline.section_location({ trunc_width = 75 }) + local file_info = MiniStatusline.section_fileinfo({ trunc_width = 999 }) -- always truncated + local search = MiniStatusline.section_searchcount({ trunc_width = 75 }) + + -- local function get_indent() + -- local indent = 0 + -- + -- -- line numbers + -- if vim.wo.number or vim.wo.relativenumber then + -- local numberwidth = vim.wo.numberwidth + -- if numberwidth == 0 then + -- -- auto width: digits in max line number + -- local max_lnum = vim.api.nvim_buf_line_count(0) + -- indent = indent + tostring(max_lnum):len() + -- else + -- indent = indent + numberwidth + -- end + -- end + -- + -- return string.rep(' ', indent) + -- end + + -- local indent = get_indent() + + return MiniStatusline.combine_groups { + -- { hl = 'MiniStatuslineInactive', strings = { indent } }, + { hl = mode_hl, strings = { mode } }, + { hl = 'MiniStatuslineDevinfo', strings = { git, diff } }, + '%<', + { hl = 'MiniStatuslineFilename', strings = { diagnostics } }, + '%=', + { hl = 'MiniStatuslineDevinfo', strings = { file_info } }, + { hl = mode_hl, strings = { search, location } }, + } + end, + + inactive = function() + return MiniStatusline.combine_groups { + { hl = 'MiniStatuslineFilename', strings = {} }, + } + end, + }, + } -- You can configure sections in the statusline by overriding their -- default behavior. For example, here we set the section for @@ -1055,4 +1106,7 @@ vim.o.foldenable = true -- winbar setup require('custom.winbar').setup() -vim.o.winbar = "%{%v:lua.require('custom.winbar').setup()%}" +vim.o.winbar = "%{%v:lua.require('custom.winbar').setup()%}" +-- actually just copy the highlight from mini.statusline to match +vim.api.nvim_set_hl(0, 'WinBar', { link = 'MiniStatuslineFilename' }) +vim.api.nvim_set_hl(0, 'WinBarNC', { link = 'MiniStatuslineFilename' }) From a69c70cf65e7a54371ea16a76307cd436ef1899b Mon Sep 17 00:00:00 2001 From: Dominik Date: Thu, 15 Jan 2026 02:05:24 +0100 Subject: [PATCH 17/20] Smart path truncation --- lua/custom/winbar.lua | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lua/custom/winbar.lua b/lua/custom/winbar.lua index 56dc6c1b158..8de9d251ef1 100644 --- a/lua/custom/winbar.lua +++ b/lua/custom/winbar.lua @@ -38,6 +38,35 @@ M.setup = function() return ' ' end + local function winbar_path(path, keep) + keep = keep or 3 + + if path == '' or not path:find('/') then + return path + end + + local parts = vim.split(path, '/', { plain = true }) + + local out = {} + local cutoff = #parts - keep + local truncation_happend = false + + for i, part in ipairs(parts) do + if i < cutoff then + truncation_happend = true + else + table.insert(out, part) + end + end + + local result = table.concat(out, ' > ') + if truncation_happend then + result = '… > ' .. result + end + + return result + end + -- file path local filepath = vim.fn.expand('%:~:.') -- override neo-tree default buffer name @@ -56,6 +85,8 @@ M.setup = function() local indent = winbar_indent() local icon = winbar_icon(filepath) + filepath = winbar_path(filepath, 3) + if location ~= '' then return indent .. icon .. filepath .. ' > ' .. location end From 7eb2b0e99b492c3be8902a7ef33a3801c3e25b7b Mon Sep 17 00:00:00 2001 From: Dominik Date: Thu, 15 Jan 2026 02:05:43 +0100 Subject: [PATCH 18/20] Telescope smart path truncation & search hidden --- init.lua | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index f656c9e413e..423be371038 100644 --- a/init.lua +++ b/init.lua @@ -439,6 +439,11 @@ require('lazy').setup({ -- }, -- }, -- pickers = {} + defaults = { + path_display = { + "smart", + } + }, extensions = { ['ui-select'] = { require('telescope.themes').get_dropdown(), @@ -452,9 +457,21 @@ require('lazy').setup({ -- See `:help telescope.builtin` local builtin = require 'telescope.builtin' + local function find_files(opts) + return function() + builtin.find_files(opts) + end + end + + local include_hidden_files_opts = { + hidden = true, + no_ignore = true, + no_ignore_parent = true, + } vim.keymap.set('n', 'sh', builtin.help_tags, { desc = '[S]earch [H]elp' }) vim.keymap.set('n', 'sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' }) - vim.keymap.set('n', 'sf', builtin.find_files, { desc = '[S]earch [F]iles' }) + vim.keymap.set('n', 'sf', find_files({}), { desc = '[S]earch [F]iles' }) + vim.keymap.set('n', 'sF', find_files(include_hidden_files_opts), { desc = '[S]earch [F]iles (hidden)'}) vim.keymap.set('n', 'ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' }) vim.keymap.set('n', 'sw', builtin.grep_string, { desc = '[S]earch current [W]ord' }) vim.keymap.set('n', 'sg', builtin.live_grep, { desc = '[S]earch by [G]rep' }) @@ -1004,7 +1021,7 @@ require('lazy').setup({ inactive = function() return MiniStatusline.combine_groups { - { hl = 'MiniStatuslineFilename', strings = {} }, + { hl = 'MiniStatuslineInactive', strings = {} }, } end, }, @@ -1109,4 +1126,4 @@ require('custom.winbar').setup() vim.o.winbar = "%{%v:lua.require('custom.winbar').setup()%}" -- actually just copy the highlight from mini.statusline to match vim.api.nvim_set_hl(0, 'WinBar', { link = 'MiniStatuslineFilename' }) -vim.api.nvim_set_hl(0, 'WinBarNC', { link = 'MiniStatuslineFilename' }) +vim.api.nvim_set_hl(0, 'WinBarNC', { link = 'MiniStatuslineInactive' }) From e441f86e56640a2c4fc0e72b45f4c8dd62ea5c83 Mon Sep 17 00:00:00 2001 From: Dominik Kondrot Date: Fri, 26 Jun 2026 17:31:17 +0200 Subject: [PATCH 19/20] Fix kotlin lsp --- init.lua | 15 +++++++++++++-- lazy-lock.json | 38 ++++++++++++++++++------------------- lua/custom/plugins/init.lua | 1 + 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/init.lua b/init.lua index 423be371038..8fbbb4712c7 100644 --- a/init.lua +++ b/init.lua @@ -944,7 +944,7 @@ require('lazy').setup({ -- Load the colorscheme here. -- Like many other themes, this one has different styles, and you could load -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'tokyonight-night' + vim.cmd.colorscheme 'retrobox' end, }, @@ -1123,7 +1123,18 @@ vim.o.foldenable = true -- winbar setup require('custom.winbar').setup() -vim.o.winbar = "%{%v:lua.require('custom.winbar').setup()%}" +vim.o.winbar = "%{%v:lua.require('custom.winbar').setup()%}" -- actually just copy the highlight from mini.statusline to match vim.api.nvim_set_hl(0, 'WinBar', { link = 'MiniStatuslineFilename' }) vim.api.nvim_set_hl(0, 'WinBarNC', { link = 'MiniStatuslineInactive' }) + +-- enable zip plugin for jvm based lsp's +vim.g.loaded_zipPlugin = nil + +-- kotlin-lsp override before lspconfig patches it +vim.lsp.config('kotlin_lsp', { + cmd = { "intellij-server", "--stdio" }, + filetypes = { "kotlin" }, + root_markers = { "settings.gradle", "settings.gradle.kts", "build.gradle", "build.gradle.kts" }, +}) +vim.lsp.enable('kotlin_lsp') diff --git a/lazy-lock.json b/lazy-lock.json index fb20fe2fcef..a9d05ef5a26 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,31 +1,31 @@ { - "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, - "conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" }, - "fidget.nvim": { "branch": "main", "commit": "3f5475949679953af6d78654db29b944fa826e6a" }, - "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, + "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, + "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, + "conform.nvim": { "branch": "master", "commit": "178b8f0d70ee63db616a8b3bda637218eef121dd" }, + "fidget.nvim": { "branch": "main", "commit": "e32b672d8fd343f9d6a76944fedb8c61d7d8111a" }, + "gitsigns.nvim": { "branch": "main", "commit": "cdafc320f03f2572c40ab93a4eecb733d4016d07" }, "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, - "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, - "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, - "lazydev.nvim": { "branch": "main", "commit": "e28ce52fc7ff79fcb76f0e79ee6fb6182fca90b9" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, + "harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, - "mini.nvim": { "branch": "main", "commit": "8a7cf7eee8d89bd1b83f6d72f7f3b5598e7ae2cb" }, - "neo-tree.nvim": { "branch": "main", "commit": "c4c168e459395275c552179a1baf9c3d885d6a74" }, + "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, + "mini.nvim": { "branch": "main", "commit": "dce9bc4e19d02d5c37fe71c16f40f8a5536b0386" }, + "neo-tree.nvim": { "branch": "main", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "9da1fb942dd0668d5182f9c8dee801b9c190e2bb" }, - "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, + "nvim-lint": { "branch": "master", "commit": "baf7c91c2b868b12446df511d4cdddc98e9bf66e" }, + "nvim-lspconfig": { "branch": "master", "commit": "dc7e7c7699cc01b1b6fefa97f9b496d8f447d7a1" }, "nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, + "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, - "todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" }, - "tokyonight.nvim": { "branch": "main", "commit": "d14614cbfc63b6037bfccd48bb982d2ad2003352" }, + "telescope.nvim": { "branch": "master", "commit": "3a12a853ebf21ec1cce9a92290e3013f8ae75f02" }, + "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, + "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, - "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" } + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } } diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index 711783f172d..ee7161eb99c 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -71,3 +71,4 @@ return { }, } -- vim: ts=2 sts=2 sw=2 et + From b440576988bb9b7cbad40e11c89a9e5f23948551 Mon Sep 17 00:00:00 2001 From: Dominik Date: Sun, 28 Jun 2026 06:56:04 +0200 Subject: [PATCH 20/20] HTTP and snippets support, JB theme --- init.lua | 22 ++-- lazy-lock.json | 45 +++---- lua/custom/plugins/init.lua | 238 ++++++++++++++++++++++++++++++++++++ 3 files changed, 275 insertions(+), 30 deletions(-) diff --git a/init.lua b/init.lua index 8fbbb4712c7..7480db4ac4e 100644 --- a/init.lua +++ b/init.lua @@ -845,12 +845,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 = {}, }, @@ -923,7 +923,8 @@ require('lazy').setup({ }, }, - { -- You can easily change to a different colorscheme. + { + -- You can easily change to a different colorscheme. -- Change the name of the colorscheme plugin below, and then -- change the command in the config to whatever the name of that colorscheme is. -- @@ -944,7 +945,8 @@ require('lazy').setup({ -- Load the colorscheme here. -- Like many other themes, this one has different styles, and you could load -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'retrobox' + -- vim.cmd.colorscheme 'retrobox' + vim.cmd.colorscheme 'jb' end, }, @@ -1045,7 +1047,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', 'http', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }, -- Autoinstall languages that are not installed auto_install = true, highlight = { @@ -1138,3 +1140,5 @@ vim.lsp.config('kotlin_lsp', { root_markers = { "settings.gradle", "settings.gradle.kts", "build.gradle", "build.gradle.kts" }, }) vim.lsp.enable('kotlin_lsp') + +vim.o.wrap=false diff --git a/lazy-lock.json b/lazy-lock.json index a9d05ef5a26..f60d20cb90c 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,31 +1,34 @@ { - "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, - "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, - "conform.nvim": { "branch": "master", "commit": "178b8f0d70ee63db616a8b3bda637218eef121dd" }, - "fidget.nvim": { "branch": "main", "commit": "e32b672d8fd343f9d6a76944fedb8c61d7d8111a" }, - "gitsigns.nvim": { "branch": "main", "commit": "cdafc320f03f2572c40ab93a4eecb733d4016d07" }, + "LuaSnip": { "branch": "master", "commit": "642b0c595e11608b4c18219e93b88d7637af27bc" }, + "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, + "conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" }, + "fidget.nvim": { "branch": "main", "commit": "6f793b2bcd2d35e201c09520f698bb763220908a" }, + "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, + "gitsigns.nvim": { "branch": "main", "commit": "2038c666bd9d8a0b7349a0b6ee00dc83104b9ecf" }, "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, "harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" }, - "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, - "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, - "mini.nvim": { "branch": "main", "commit": "dce9bc4e19d02d5c37fe71c16f40f8a5536b0386" }, - "neo-tree.nvim": { "branch": "main", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, + "jb.nvim": { "branch": "main", "commit": "cd3688530993049c72bdb007200b558bf4547b01" }, + "kulala.nvim": { "branch": "main", "commit": "8848e90bf05b8416e02b2561039b70acc271071c" }, + "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, + "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "50bf3871b539896bd0650b882f6e6b467cc1c1eb" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" }, + "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, + "mini.nvim": { "branch": "main", "commit": "c248713d3530710f67ec804cfbdfcd5b02b19dee" }, + "neo-tree.nvim": { "branch": "main", "commit": "83e7a2982fd12b9c3d35bc39dd5877cd91a02a61" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "baf7c91c2b868b12446df511d4cdddc98e9bf66e" }, - "nvim-lspconfig": { "branch": "master", "commit": "dc7e7c7699cc01b1b6fefa97f9b496d8f447d7a1" }, + "nvim-lint": { "branch": "master", "commit": "a219b2c9e5b4765e5c845aba119dad55806fcaf1" }, + "nvim-lspconfig": { "branch": "master", "commit": "3371bf298c1f56efc26771ee961f461176958fb5" }, "nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" }, - "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" }, + "nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" }, + "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "3a12a853ebf21ec1cce9a92290e3013f8ae75f02" }, + "telescope.nvim": { "branch": "master", "commit": "427b576c16792edad01a92b89721d923c19ad60f" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, - "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, - "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, + "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" }, + "vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } } diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index ee7161eb99c..399aabb33d7 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -3,6 +3,8 @@ -- -- See the kickstart.nvim README for more information return { + -- Some color schemes + 'nickkadutskyi/jb.nvim', -- Git integration in nvim 'tpope/vim-fugitive', @@ -69,6 +71,242 @@ return { "SmiteshP/nvim-navic", dependencies = 'neovim/nvim-lspconfig', }, + -- Rest api client + { + "mistweaverco/kulala.nvim", + -- Load before session save/restore so VimLeavePre and SessionLoadPost hooks are registered. + event = { "SessionLoadPost", "VimLeavePre" }, + keys = { + { "Rs", mode = { "n", "v" }, desc = "Send request" }, + { "Ra", mode = { "n", "v" }, desc = "Send all requests" }, + { "Rb", desc = "Open scratchpad" }, + }, + -- See opts.lsp.enforce_external_script_naming_convention + -- to restrict LSP capabilities to *.http, *.http.js, *.http.ts and *.http.lua files. + ft = {"http", "rest", "javascript", "lua"}, + opts = { + kulala_core = { + -- Optional path to the kulala-core executable + -- (https://github.com/mistweaverco/kulala-core). + -- When set, this path is used exclusively. + -- When nil (default), auto-download and + -- use kulala-core from GitHub releases based on the user's OS and architecture. + path = nil, + -- Subprocess timeout (ms) for kulala-core. + -- Default is 60000 (1 minute). + -- nil disables the vim.system timeout. + timeout = 60000, + -- Optional override for kulala-core persistence + -- (cookies, OAuth, prompts). + -- Default matches kulala-core CLI: + -- - Linux: ~/.local/share/kulala-core + -- or $XDG_DATA_HOME/kulala-core + -- - macOS: ~/Library/Application + -- or Support/kulala-core + -- - Windows: %APPDATA%\kulala-core + data_dir = nil, + -- Optional override for download url + download_url = "https://github.com/mistweaverco/kulala-core/releases/download/%s/%s", + }, + -- Restore request history and UI after sourcing a vim session. + -- Requires `set sessionoptions+=globals` in your Neovim config. + session = { + restore = true, + }, + -- dev, test, prod, can be anything + -- see: https://learn.microsoft.com/en-us/aspnet/core/test/http-files?view=aspnetcore-8.0#environment-files + default_env = "default", + -- `"b"` = per-buffer env (default), `"g"` = global + environment_scope = "b", + -- enable reading vscode rest client environment variables + vscode_rest_client_environmentvars = false, + + -- Response body pretty-printing + response_format = { + indent = 2, + expand_tabs = true, + sort_keys = false, + }, + ui = { + -- display mode: possible values: "split", "float" + display_mode = "split", + -- split direction: possible values: "above", "right", "below", "left", fun(): "above"|"right"|"below"|"left" + split_direction = "right", + -- window options to override win_config: width/height/split/vertical.., buffer/window options + win_opts = { bo = {}, wo = {} }, ---@type kulala.ui.win_config + -- default view: "body" or "headers" or "headers_body" or "verbose" or fun(response: Response) + default_view = "body", ---@type "body"|"headers"|"headers_body"|"verbose"|fun(response: Response) + -- enable winbar + winbar = true, + -- Specify the panes to be displayed by default + -- Available panes are { "body", "headers", "headers_body", "script_output", "stats", "verbose", "report", "help" }, + default_winbar_panes = { "body", "headers", "verbose", "script_output", "report" }, + -- Winbar labels + winbar_labels = { + body = "Body", + headers = "Headers", + headers_body = "All", + verbose = "Verbose", + script_output = "Script Output", + stats = "Stats", + report = "Report", + help = "Help", + }, + -- show/hide winbar keymaps in labels + winbar_labels_keymaps = true, + -- enable/disable variable info text + -- this will show the variable name and value as float + -- possible values: false, "float" + show_variable_info_text = false, + -- icons position: "signcolumn"|"on_request"|"above_request"|"below_request" or nil to disable + show_icons = "on_request", + -- default icons + icons = { + inlay = { + loading = "⏳", + done = "✔", + error = "✘", + }, + lualine = "🐼", + textHighlight = "WarningMsg", -- highlight group for request elapsed time + loadingHighlight = "Normal", + doneHighlight = "String", + errorHighlight = "ErrorMsg", + }, + + -- enable/disable request summary in the output window + show_request_summary = true, + + -- do not show responses over maximum size, in bytes + max_response_size = 32768, + + -- used by `Copy as Curl` command to determine whether to inline request body + max_request_size = 2048, + + report = { + -- possible values: true | false | "on_error" + show_script_output = true, + -- possible values: true | false | "on_error" | "failed_only" + show_asserts_output = true, + -- possible values: true | false | "on_error" + show_summary = true, + + headersHighlight = "Special", + successHighlight = "String", + errorHighlight = "Error", + }, + + -- scratchpad default contents + scratchpad_default_contents = { + "@MY_TOKEN_NAME=my_token_value", + "", + "# @name scratchpad", + "POST https://echo.kulala.app/post HTTP/1.1", + "accept: application/json", + "content-type: application/json", + "", + "{", + ' "foo": "bar"', + "}", + }, + + -- Settings for pickers used for Environment, Authentication and Requests Managers + pickers = { + snacks = { + layout = function() + local has_snacks, snacks_picker = pcall(require, "snacks.picker") + return not has_snacks and {} + or vim.tbl_deep_extend("force", snacks_picker.config.layout("telescope"), { + reverse = true, + layout = { + { { win = "list" }, { height = 1, win = "input" }, box = "vertical" }, + { win = "preview", width = 0.6 }, + box = "horizontal", + width = 0.8, + }, + }) + end, + }, + }, + }, + + lsp = { + ---enable/disable built-in LSP server + ---@type boolean + enable = true, + + ---filetypes to attach Kulala LSP to + ---@type string[] + filetypes = { + "http", + "rest", + "javascript", + "typescript", + "lua", + }, + + ---Only scripts ending in *.http.js, *.http.ts and *.http.lua will be treated as HTTP scripts and + ---have LSP capabilities, unless `enforce_external_script_naming_convention` is set to false. + ---This allows users to have non-HTTP scripts with the same filetypes without LSP interference. + ---@type boolean + enforce_external_script_naming_convention = true, + + --enable/disable/customize LSP keymaps + ---@type boolean|table + keymaps = false, -- disabled by default, as Kulala relies on default Neovim LSP keymaps + + on_attach = nil, -- function called when Kulala LSP attaches to the buffer + }, + + -- enable/disable debug mode + debug = 3, + -- enable/disable bug reports on all errors + generate_bug_report = false, + + -- set to true to enable default keymaps + -- (see docs or lua/kulala/config/keymaps.lua) + -- or override default keymaps as shown in the example below. + ---@type boolean|table + global_keymaps = true, + --[[ + { + ["Send request"] = { -- sets global mapping + "Rs", + function() require("kulala").run() end, + mode = { "n", "v" }, -- optional mode, default is n + desc = "Send request" -- optional description, otherwise inferred from the key + }, + ["Send all requests"] = { + "Ra", + function() require("kulala").run_all() end, + mode = { "n", "v" }, + ft = "http", -- sets mapping for *.http files only + }, + ["Replay the last request"] = { + "Rr", + function() require("kulala").replay() end, + ft = { "http", "rest" }, -- sets mapping for specified file types + }, + ["Find request"] = false -- set to false to disable + }, + ]] + + -- Prefix for global keymaps + global_keymaps_prefix = "R", + + -- Kulala UI keymaps; override with custom keymaps as required + -- (see docs or lua/kulala/config/keymaps.lua) + ---@type boolean|table + kulala_keymaps = true, + --[[ + { + ["Show headers"] = { "H", function() require("kulala.ui").show_headers() end, }, + } + ]] + + kulala_keymaps_prefix = "", + }, + }, } -- vim: ts=2 sts=2 sw=2 et