From a15b0cebdd374f4d898ef88ca2aca13f4f7d2bd2 Mon Sep 17 00:00:00 2001 From: Francis Qureshi Date: Sun, 27 Apr 2025 11:31:24 +0100 Subject: [PATCH 01/20] Update .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 005b535b606..34477f08fdf 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ test.sh nvim spell/ -lazy-lock.json +# lazy-lock.json From 8f8880851ea7c829622303600448115e5c5a600c Mon Sep 17 00:00:00 2001 From: Francis Date: Sun, 27 Apr 2025 13:06:23 +0100 Subject: [PATCH 02/20] Added Moving Lines Up and Down in Vim without Using the Clipboard https://www.youtube.com/watch?v=gNyNm5DsQ88 --- init.lua | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/init.lua b/init.lua index 776c6873ff6..876ae985daf 100644 --- a/init.lua +++ b/init.lua @@ -102,7 +102,7 @@ vim.g.have_nerd_font = false vim.opt.number = true -- You can also add relative line numbers, to help with jumping. -- Experiment for yourself to see if you like it! --- vim.opt.relativenumber = true +vim.opt.relativenumber = true -- Enable mouse mode, can be useful for resizing splits for example! vim.opt.mouse = 'a' @@ -180,10 +180,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 @@ -200,6 +200,34 @@ 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" }) +-- NOTE: Francis Custom block mover: +-- Alt J / K in visual mode to more a block up/down +-- Try to move lines up/down in normal and visual modes + +-- Helper function to safely map keys +local function map(mode, lhs, rhs, opts) + local options = { noremap = true, silent = true } + if opts then + options = vim.tbl_extend('force', options, opts) + end + vim.keymap.set(mode, lhs, rhs, options) +end + +-- Helper function to safely map keys +local function map(mode, lhs, rhs, opts) + local options = { noremap = true, silent = true } + if opts then + options = vim.tbl_extend('force', options, opts) + end + vim.keymap.set(mode, lhs, rhs, options) +end + +-- Move lines with Cmd+j / Cmd+k +map('n', '', ':m .+1==', { desc = 'Move line down (Cmd)' }) +map('n', '', ':m .-2==', { desc = 'Move line up (Cmd)' }) +map('v', '', ":m '>+1gv=gv", { desc = 'Move selection down (Cmd)' }) +map('v', '', ":m '<-2gv=gv", { desc = 'Move selection up (Cmd)' }) + -- [[ Basic Autocommands ]] -- See `:help lua-guide-autocommands` @@ -886,7 +914,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 'tokyonight-night' + -- vim.cmd.colorscheme 'tokyonight-night' + vim.cmd.colorscheme 'default' end, }, From 9f8c1f0b19a1ae6779827d4ef9dc57977318c41d Mon Sep 17 00:00:00 2001 From: Francis Date: Tue, 29 Apr 2025 00:33:40 +0100 Subject: [PATCH 03/20] Added Avente! - Need to look at AI APIs... --- init.lua | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 876ae985daf..7b06f4e4b48 100644 --- a/init.lua +++ b/init.lua @@ -6,9 +6,9 @@ ======== .-----. ======== ======== .----------------------. | === | ======== ======== |.-""""""""""""""""""-.| |-----| ======== -======== || || | === | ======== ======== || KICKSTART.NVIM || |-----| ======== ======== || || | === | ======== +======== || || | === | ======== ======== || || |-----| ======== ======== ||:Tutor || |:::::| ======== ======== |'-..................-'| |____o| ======== @@ -371,6 +371,68 @@ require('lazy').setup({ }, }, + --NOTE: Avante! + + { + 'yetone/avante.nvim', + event = 'VeryLazy', + version = false, -- Never set this value to "*"! Never! + opts = { + -- add any opts here + -- for example + provider = 'openai', + openai = { + endpoint = 'https://api.openai.com/v1', + model = 'gpt-4o', -- your desired model (or use gpt-4o, etc.) + timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models + temperature = 0, + max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models) + --reasoning_effort = "medium", -- low|medium|high, only used for reasoning models + }, + }, + -- if you want to build from source then do `make BUILD_FROM_SOURCE=true` + build = 'make', + -- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows + dependencies = { + 'nvim-treesitter/nvim-treesitter', + 'stevearc/dressing.nvim', + 'nvim-lua/plenary.nvim', + 'MunifTanjim/nui.nvim', + --- The below dependencies are optional, + 'echasnovski/mini.pick', -- for file_selector provider mini.pick + 'nvim-telescope/telescope.nvim', -- for file_selector provider telescope + 'hrsh7th/nvim-cmp', -- autocompletion for avante commands and mentions + 'ibhagwan/fzf-lua', -- for file_selector provider fzf + 'nvim-tree/nvim-web-devicons', -- or echasnovski/mini.icons + 'zbirenbaum/copilot.lua', -- for providers='copilot' + { + -- support for image pasting + 'HakonHarnes/img-clip.nvim', + event = 'VeryLazy', + opts = { + -- recommended settings + default = { + embed_image_as_base64 = false, + prompt_for_file_name = false, + drag_and_drop = { + insert_mode = true, + }, + -- required for Windows users + use_absolute_path = true, + }, + }, + }, + { + -- Make sure to set this up properly if you have lazy=true + 'MeanderingProgrammer/render-markdown.nvim', + opts = { + file_types = { 'markdown', 'Avante' }, + }, + ft = { 'markdown', 'Avante' }, + }, + }, + }, + -- NOTE: Plugins can specify dependencies. -- -- The dependencies are proper plugin specifications as well - anything From 47687fca4091d5ea0d63adc39cd12a2aa48bd9b6 Mon Sep 17 00:00:00 2001 From: Francis Date: Thu, 8 May 2025 01:26:12 +0100 Subject: [PATCH 04/20] Kanso Theme :) --- .DS_Store | Bin 0 -> 6148 bytes .github/.DS_Store | Bin 0 -> 6148 bytes init.lua | 140 +++++++++++++++++++++++++++++++++++++++------- lazy-lock.json | 35 ++++++++++++ lua/.DS_Store | Bin 0 -> 6148 bytes 5 files changed, 156 insertions(+), 19 deletions(-) create mode 100644 .DS_Store create mode 100644 .github/.DS_Store create mode 100644 lazy-lock.json create mode 100644 lua/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d4bf14c0e2e21f19c7ade36ba8572ddd90aee0eb GIT binary patch literal 6148 zcmeHKO-jQ+6n@hNtP~+j!9@q$=tk(;O)Sy1&?dBj&o~ROFUd`_#VZyKO9%( zypgGnzp4N~yM!)iN)PlHJ-_Z-9mdKk&qqZyg0J)ZasJ+0eO|@!$&c~*EO(4WusQ zZAN20>-h?-`#$Eo!7m9jagmVk~=0h8pze1Ij% z-r86k@3j`~4vmfTYLA-|4BS?XT;7V0(VW3=c>v4=Yme~2^pAj(K|598R~7gI7*T!c literal 0 HcmV?d00001 diff --git a/.github/.DS_Store b/.github/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..de2f5c5a0cfbf742591916e1dd85ae8536db0a26 GIT binary patch literal 6148 zcmeHK!AiqG5PjSB&>~3j=1@B&bv$LcP zi7j5F$V{1eo5{@XLIIBgQ zV;32az1znzCj4D+=T`f7f}!kXb~~6{=ktXY-=1!ZpXX^h&2owBzI?vE9eunHx97}$ zowK-GuS@>F=wXQ*k9fchGLDvbs#f1RXpUO1`Tnb{xnaI}zN&O{WJ7&YqlqzK3>X8u zzyN!;NOw=stTA8=7y~5(@_z7C!6ag#7+xJT;RrzN&>e*1@GVC4;vgmw3q^V;PE(1R z>f#Z@X*&Hr#w8I8MNNkbD|4Q>vWq7a7gnd=hj6$=(X26G3{)9t>t$d1|M=(ge>KUj zi~(cdUoqf1=_DQTkz#MHJ)HDfPragwNL-; M&|tpF literal 0 HcmV?d00001 diff --git a/init.lua b/init.lua index 7b06f4e4b48..c7f984b0eaa 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.opt` @@ -268,14 +268,32 @@ vim.opt.rtp:prepend(lazypath) require('lazy').setup({ -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). 'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically - + --NOTE: nvim-tree - FQ + { + 'nvim-tree/nvim-tree.lua', + dependencies = { + 'nvim-tree/nvim-web-devicons', -- optional, for file icons + }, + version = '*', + lazy = false, + config = function() + require('nvim-tree').setup {} + -- Optional: Keybinding to toggle nvim-tree + vim.keymap.set('n', 'e', ':NvimTreeToggle', { desc = 'Toggle File Explorer (nvim-tree)' }) + end, + }, + -- --NOTE: Kanso Theme - FQ + -- { + -- 'webhooked/kanso.nvim', + -- lazy = false, + -- priority = 1000, + -- }, -- NOTE: Plugins can also be added by using a table, -- with the first argument being the link and the following -- keys can be used to configure plugin behavior/loading/etc. -- -- Use `opts = {}` to automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded. -- - -- Alternatively, use `config = function() ... end` for full control over the configuration. -- If you prefer to call `setup` explicitly, use: -- { @@ -370,8 +388,13 @@ require('lazy').setup({ }, }, }, - - --NOTE: Avante! + --NOTE: Avante blink cmp + { + 'Kaiser-Yang/blink-cmp-avante', + dependencies = { 'saghen/blink.cmp', 'yetone/avante.nvim' }, + lazy = false, + }, + --NOTE: Avante! Setup { 'yetone/avante.nvim', @@ -380,10 +403,10 @@ require('lazy').setup({ opts = { -- add any opts here -- for example - provider = 'openai', + provider = 'claude', openai = { - endpoint = 'https://api.openai.com/v1', - model = 'gpt-4o', -- your desired model (or use gpt-4o, etc.) + endpoint = 'https://api.anthropic.com', + model = 'claude-3-7-sonnet-20250219', -- your desired model (or use gpt-4o, etc.) timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models temperature = 0, max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models) @@ -432,7 +455,6 @@ require('lazy').setup({ }, }, }, - -- NOTE: Plugins can specify dependencies. -- -- The dependencies are proper plugin specifications as well - anything @@ -864,6 +886,10 @@ require('lazy').setup({ event = 'VimEnter', version = '1.*', dependencies = { + -- + -- + -- + 'Kaiser-Yang/blink-cmp-avante', -- Snippet Engine { 'L3MON4D3/LuaSnip', @@ -935,13 +961,58 @@ require('lazy').setup({ documentation = { auto_show = false, auto_show_delay_ms = 500 }, }, + -- providers = { + -- lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, + -- avante_commands = { + -- name = 'avante_commands', + -- module = 'blink.compat.source', + -- score_offset = 90, + -- opts = {}, + -- }, + -- avante_files = { + -- name = 'avante_files', + -- module = 'blink.compat.source', + -- score_offset = 100, + -- opts = {}, + -- }, + -- avante_mentions = { + -- name = 'avante_mentions', + -- module = 'blink.compat.source', + -- score_offset = 1000, + -- opts = {}, + -- }, + -- }, + -- }, + -- sources = { - default = { 'lsp', 'path', 'snippets', 'lazydev' }, + default = { 'avante', 'lsp', 'path', 'snippets', 'lazydev' }, providers = { - lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, + lazydev = { + module = 'lazydev.integrations.blink', + score_offset = 100, + }, + avante = { + name = 'Avante', + module = 'blink-cmp-avante', + opts = { + command = { + get_kind_name = function() + return 'AvanteCmd' + end, + }, + mention = { + get_kind_name = function() + return 'AvanteMention' + end, + }, + kind_icons = { + AvanteCmd = '', + AvanteMention = '', + }, + }, + }, }, }, - snippets = { preset = 'luasnip' }, -- Blink.cmp includes an optional, recommended rust fuzzy matcher, @@ -963,21 +1034,50 @@ require('lazy').setup({ -- change the command in the config to whatever the name of that colorscheme is. -- -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`. - 'folke/tokyonight.nvim', + -- 'folke/tokyonight.nvim', + + 'webhooked/kanso.nvim', + commit = '62e9c5d', priority = 1000, -- Make sure to load this before all the other start plugins. config = function() - ---@diagnostic disable-next-line: missing-fields - require('tokyonight').setup { - styles = { - comments = { italic = false }, -- Disable italics in comments + -- -@diagnostic disable-next-line: missing-fields + -- require('tokyonight').setup { + -- styles = { + -- comments = { italic = false }, -- Disable italics in comments + -- }, + -- } + -- Default options: + require('kanso').setup { + compile = false, -- enable compiling the colorscheme + undercurl = true, -- enable undercurls + commentStyle = { italic = true }, + functionStyle = {}, + keywordStyle = { italic = true }, + statementStyle = {}, + typeStyle = {}, + disableItalics = false, + transparent = false, -- do not set background color + dimInactive = false, -- dim inactive window `:h hl-NormalNC` + terminalColors = true, -- define vim.g.terminal_color_{0,17} + colors = { -- add/modify theme and palette colors + palette = {}, + theme = { zen = {}, pearl = {}, ink = {}, all = {} }, + }, + overrides = function(colors) -- add/modify highlights + return {} + end, + theme = 'zen', -- Load "zen" theme + background = { -- map the value of 'background' option to a theme + dark = 'zen', -- try "ink" or "zen"! + light = 'pearl', }, } - -- Load the colorscheme here. + -- -- 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 'default' + vim.cmd.colorscheme 'kanso-zen' end, }, @@ -1094,6 +1194,8 @@ require('lazy').setup({ }, }, }) +-- vim.api.nvim_set_hl(0, 'BlinkCmpKindAvanteCmd', { default = false, fg = '#89b4fa' }) +-- vim.api.nvim_set_hl(0, 'BlinkCmpKindAvanteMention', { default = false, fg = '#f38ba8' }) -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 00000000000..49883d41bbe --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,35 @@ +{ + "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, + "avante.nvim": { "branch": "main", "commit": "b2064a8f40cbd10ddd3ea9d82f0bdb2bcaf2f152" }, + "blink-cmp-avante": { "branch": "master", "commit": "ddefb8de3cb1286ab39e0ccec0f32a45d03391f2" }, + "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" }, + "conform.nvim": { "branch": "master", "commit": "372fc521f8421b7830ea6db4d6ea3bae1c77548c" }, + "copilot.lua": { "branch": "master", "commit": "7ba73866b9b3c696f80579c470c6eec374d3acec" }, + "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, + "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, + "fzf-lua": { "branch": "main", "commit": "02def6b972d7687866738d6f6a5f4839ce5b5a7a" }, + "gitsigns.nvim": { "branch": "main", "commit": "43b0c856ae5f32a195d83f4a27fe21d63e6c966c" }, + "img-clip.nvim": { "branch": "main", "commit": "08a02e14c8c0d42fa7a92c30a98fd04d6993b35d" }, + "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "aafae207d5a2a28c59c9d478d8581c2739135d09" }, + "mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" }, + "mini.nvim": { "branch": "main", "commit": "6105b69d79fef0afed5ed576081b1997ef2b4be1" }, + "mini.pick": { "branch": "main", "commit": "fa1e449e1080bf7aa9b2890ee186d23b1b4e1287" }, + "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" }, + "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, + "nvim-lspconfig": { "branch": "master", "commit": "4bc481b6f0c0cf3671fc894debd0e00347089a4e" }, + "nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" }, + "nvim-treesitter": { "branch": "master", "commit": "28d480e0624b259095e56f353ec911f9f2a0f404" }, + "nvim-web-devicons": { "branch": "master", "commit": "2c2b4eafce6cdd0cb165036faa17396eff18f847" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "render-markdown.nvim": { "branch": "main", "commit": "ff577b44bd3ab642acec0f134a7bf26b7278d137" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } +} diff --git a/lua/.DS_Store b/lua/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a5b4624706cdd6ed2ddf0543414188b784f62f3f GIT binary patch literal 6148 zcmeHK!A`?440XnYI&s;N3nE7(#9@C>rtS;&1F%hkX{$29cF(u%z!ixf;8%FIqq33$ zH-siza$f4#iTe`O4H3EVZZRSn5>WwV>R7(n}T|bTUVvdi^k(&O^P)yv^_* z8Q{G;r8({BnYNVg-`m&mI#ktc9cHi>uNV9M<@?KR?z8ySXY+V?PWb%MfL63bE-T69 zo}OsiK20~*-Cl<|O|F`pI_9gxXJ$Wpw)2aepNTPG3>X8)!T@SEOL3-XtubH>7y}Ih z{C)6H#xh}4lurj5xdH(DFpHos|8hXj24I;mD#8MB8Vb}X7P#enNq(`t-YO0_k6 uIj*%HdIx1;zo^)Rpd+OizFdmWp(3z*?f}b#Q4to1{RjvR)))hS%D@L%{!>c; literal 0 HcmV?d00001 From 74b4479f465c359143e3fb2b286e085ca1d083e7 Mon Sep 17 00:00:00 2001 From: Francis Date: Sun, 8 Jun 2025 22:57:06 +0100 Subject: [PATCH 05/20] Python not working in nvim.. --- .DS_Store | Bin 6148 -> 6148 bytes init.lua | 194 ++++++++++++++++++------------------------------- lazy-lock.json | 22 ++---- 3 files changed, 76 insertions(+), 140 deletions(-) diff --git a/.DS_Store b/.DS_Store index d4bf14c0e2e21f19c7ade36ba8572ddd90aee0eb..5fb87c9c53e0f02076de6b8b67caa91dcd4cd653 100644 GIT binary patch delta 147 zcmZoMXffEJ$`r>lV?F}|0}F#5LpnnyLrHGFi%U{YeiBfOW6`RF+Y--?Iikv^;FT}P yFbq!4&n*DzVPN2Uu(_GZkWr~)h4x|j`(T5Z8FCm(84`2z5ypUIH(z7c69E9UTq%_R delta 147 zcmZoMXffEJ$`r@FrGbHgfrUYjA)O(Up(Hoo#U&{xKM5$tvGR!KVfp*V98u*{@X8lt v7zQWj=N16e', ':NvimTreeToggle', { desc = 'Toggle File Explorer (nvim-tree)' }) end, @@ -321,7 +324,17 @@ require('lazy').setup({ }, }, }, + -- NOTE: CLaude code Plugin + { + 'greggh/claude-code.nvim', + dependencies = { + 'nvim-lua/plenary.nvim', -- Required for git operations + }, + config = function() + require('claude-code').setup() + end, + }, -- NOTE: Plugins can also be configured to run Lua code when they are loaded. -- -- This is often very useful to both group configuration, as well as handle @@ -335,7 +348,6 @@ require('lazy').setup({ -- -- Then, because we use the `opts` key (recommended), the configuration runs -- after the plugin has been loaded as `require(MODULE).setup(opts)`. - { -- Useful plugin to show you pending keybinds. 'folke/which-key.nvim', event = 'VimEnter', -- Sets the loading event to 'VimEnter' @@ -388,73 +400,6 @@ require('lazy').setup({ }, }, }, - --NOTE: Avante blink cmp - { - 'Kaiser-Yang/blink-cmp-avante', - dependencies = { 'saghen/blink.cmp', 'yetone/avante.nvim' }, - lazy = false, - }, - --NOTE: Avante! Setup - - { - 'yetone/avante.nvim', - event = 'VeryLazy', - version = false, -- Never set this value to "*"! Never! - opts = { - -- add any opts here - -- for example - provider = 'claude', - openai = { - endpoint = 'https://api.anthropic.com', - model = 'claude-3-7-sonnet-20250219', -- your desired model (or use gpt-4o, etc.) - timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models - temperature = 0, - max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models) - --reasoning_effort = "medium", -- low|medium|high, only used for reasoning models - }, - }, - -- if you want to build from source then do `make BUILD_FROM_SOURCE=true` - build = 'make', - -- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows - dependencies = { - 'nvim-treesitter/nvim-treesitter', - 'stevearc/dressing.nvim', - 'nvim-lua/plenary.nvim', - 'MunifTanjim/nui.nvim', - --- The below dependencies are optional, - 'echasnovski/mini.pick', -- for file_selector provider mini.pick - 'nvim-telescope/telescope.nvim', -- for file_selector provider telescope - 'hrsh7th/nvim-cmp', -- autocompletion for avante commands and mentions - 'ibhagwan/fzf-lua', -- for file_selector provider fzf - 'nvim-tree/nvim-web-devicons', -- or echasnovski/mini.icons - 'zbirenbaum/copilot.lua', -- for providers='copilot' - { - -- support for image pasting - 'HakonHarnes/img-clip.nvim', - event = 'VeryLazy', - opts = { - -- recommended settings - default = { - embed_image_as_base64 = false, - prompt_for_file_name = false, - drag_and_drop = { - insert_mode = true, - }, - -- required for Windows users - use_absolute_path = true, - }, - }, - }, - { - -- Make sure to set this up properly if you have lazy=true - 'MeanderingProgrammer/render-markdown.nvim', - opts = { - file_types = { 'markdown', 'Avante' }, - }, - ft = { 'markdown', 'Avante' }, - }, - }, - }, -- NOTE: Plugins can specify dependencies. -- -- The dependencies are proper plugin specifications as well - anything @@ -886,10 +831,6 @@ require('lazy').setup({ event = 'VimEnter', version = '1.*', dependencies = { - -- - -- - -- - 'Kaiser-Yang/blink-cmp-avante', -- Snippet Engine { 'L3MON4D3/LuaSnip', @@ -907,12 +848,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 = {}, }, @@ -961,56 +902,13 @@ require('lazy').setup({ documentation = { auto_show = false, auto_show_delay_ms = 500 }, }, - -- providers = { - -- lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, - -- avante_commands = { - -- name = 'avante_commands', - -- module = 'blink.compat.source', - -- score_offset = 90, - -- opts = {}, - -- }, - -- avante_files = { - -- name = 'avante_files', - -- module = 'blink.compat.source', - -- score_offset = 100, - -- opts = {}, - -- }, - -- avante_mentions = { - -- name = 'avante_mentions', - -- module = 'blink.compat.source', - -- score_offset = 1000, - -- opts = {}, - -- }, - -- }, - -- }, - -- sources = { - default = { 'avante', 'lsp', 'path', 'snippets', 'lazydev' }, + default = { 'lsp', 'path', 'snippets', 'lazydev' }, providers = { lazydev = { module = 'lazydev.integrations.blink', score_offset = 100, }, - avante = { - name = 'Avante', - module = 'blink-cmp-avante', - opts = { - command = { - get_kind_name = function() - return 'AvanteCmd' - end, - }, - mention = { - get_kind_name = function() - return 'AvanteMention' - end, - }, - kind_icons = { - AvanteCmd = '', - AvanteMention = '', - }, - }, - }, }, }, snippets = { preset = 'luasnip' }, @@ -1194,8 +1092,54 @@ require('lazy').setup({ }, }, }) --- vim.api.nvim_set_hl(0, 'BlinkCmpKindAvanteCmd', { default = false, fg = '#89b4fa' }) --- vim.api.nvim_set_hl(0, 'BlinkCmpKindAvanteMention', { default = false, fg = '#f38ba8' }) + +-- NOTE: Claude Code Plugin Config +require('claude-code').setup { + -- Terminal window settings + window = { + split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits) + position = 'vertical', -- Position of the window: "botright", "topleft", "vertical", "rightbelow vsplit", etc. + enter_insert = true, -- Whether to enter insert mode when opening Claude Code + hide_numbers = true, -- Hide line numbers in the terminal window + hide_signcolumn = true, -- Hide the sign column in the terminal window + }, + -- File refresh settings + refresh = { + enable = true, -- Enable file change detection + updatetime = 100, -- updatetime when Claude Code is active (milliseconds) + timer_interval = 1000, -- How often to check for file changes (milliseconds) + show_notifications = true, -- Show notification when files are reloaded + }, + -- Git project settings + git = { + use_git_root = true, -- Set CWD to git root when opening Claude Code (if in git project) + }, + -- Command settings + command = 'claude', -- Command used to launch Claude Code + -- Command variants + command_variants = { + -- Conversation management + continue = '--continue', -- Resume the most recent conversation + resume = '--resume', -- Display an interactive conversation picker + + -- Output options + verbose = '--verbose', -- Enable verbose logging with full turn-by-turn output + }, + -- Keymaps + keymaps = { + toggle = { + normal = '', -- Normal mode keymap for toggling Claude Code, false to disable + terminal = '', -- Terminal mode keymap for toggling Claude Code, false to disable + variants = { + continue = 'cC', -- Normal mode keymap for Claude Code with continue flag + verbose = 'cV', -- Normal mode keymap for Claude Code with verbose flag + }, + }, + window_navigation = true, -- Enable window navigation keymaps () + scrolling = true, -- Enable scrolling keymaps () for page up/down + }, +} -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et +vim.g.python3_host_prog = '/Users/fq/.pyenv/versions/3.13.1/envs/rca/bin/python3' diff --git a/lazy-lock.json b/lazy-lock.json index 49883d41bbe..bdc9a28afc8 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,31 +1,23 @@ { - "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, - "avante.nvim": { "branch": "main", "commit": "b2064a8f40cbd10ddd3ea9d82f0bdb2bcaf2f152" }, - "blink-cmp-avante": { "branch": "master", "commit": "ddefb8de3cb1286ab39e0ccec0f32a45d03391f2" }, + "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" }, - "conform.nvim": { "branch": "master", "commit": "372fc521f8421b7830ea6db4d6ea3bae1c77548c" }, - "copilot.lua": { "branch": "master", "commit": "7ba73866b9b3c696f80579c470c6eec374d3acec" }, - "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, + "claude-code.nvim": { "branch": "main", "commit": "ffdf35d8566528cb144d9812eccfecee34502edf" }, + "conform.nvim": { "branch": "master", "commit": "374aaf384e2e841607b8e2fe63fa3ad01d111c91" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, - "fzf-lua": { "branch": "main", "commit": "02def6b972d7687866738d6f6a5f4839ce5b5a7a" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "gitsigns.nvim": { "branch": "main", "commit": "43b0c856ae5f32a195d83f4a27fe21d63e6c966c" }, - "img-clip.nvim": { "branch": "main", "commit": "08a02e14c8c0d42fa7a92c30a98fd04d6993b35d" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "aafae207d5a2a28c59c9d478d8581c2739135d09" }, "mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" }, - "mini.nvim": { "branch": "main", "commit": "6105b69d79fef0afed5ed576081b1997ef2b4be1" }, - "mini.pick": { "branch": "main", "commit": "fa1e449e1080bf7aa9b2890ee186d23b1b4e1287" }, - "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" }, - "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lspconfig": { "branch": "master", "commit": "4bc481b6f0c0cf3671fc894debd0e00347089a4e" }, + "mini.nvim": { "branch": "main", "commit": "a9e4cb303ea6269ecab92c0276baf9d04370c492" }, + "nvim-lspconfig": { "branch": "master", "commit": "f817582301b2c188c1cff7c956971ce3f85631ff" }, "nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" }, "nvim-treesitter": { "branch": "master", "commit": "28d480e0624b259095e56f353ec911f9f2a0f404" }, - "nvim-web-devicons": { "branch": "master", "commit": "2c2b4eafce6cdd0cb165036faa17396eff18f847" }, + "nvim-web-devicons": { "branch": "master", "commit": "f1420728f59843eb2ef084406b3d0201a0a0932d" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "render-markdown.nvim": { "branch": "main", "commit": "ff577b44bd3ab642acec0f134a7bf26b7278d137" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, From 42338823be25ed0ed3a423964527eceb9eea035e Mon Sep 17 00:00:00 2001 From: Francis Date: Sun, 8 Jun 2025 23:40:34 +0100 Subject: [PATCH 06/20] Python LSP! :) --- init.lua | 18 ++++++++++++++++-- lazy-lock.json | 22 +++++++++++----------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/init.lua b/init.lua index a6e8fc6e06c..a11e9053640 100644 --- a/init.lua +++ b/init.lua @@ -722,7 +722,20 @@ require('lazy').setup({ local servers = { -- clangd = {}, -- gopls = {}, - -- pyright = {}, + pyright = { + cmd = { 'pyright-langserver', '--stdio' }, + settings = { + python = { + pythonPath = '/Users/fq/.pyenv/versions/3.13.1/envs/rca/bin/python3', + analysis = { + extraPaths = {'/Users/fq/.pyenv/versions/3.13.1/envs/rca/lib/python3.13/site-packages'}, + autoSearchPaths = true, + useLibraryCodeForTypes = true, + diagnosticMode = 'workspace', + }, + }, + }, + }, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs -- @@ -765,6 +778,7 @@ require('lazy').setup({ local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { 'stylua', -- Used to format Lua code + 'pyright', -- Python LSP server }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } @@ -1025,7 +1039,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', 'python', 'query', 'vim', 'vimdoc' }, -- Autoinstall languages that are not installed auto_install = true, highlight = { diff --git a/lazy-lock.json b/lazy-lock.json index bdc9a28afc8..a4fdc75d811 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,26 +1,26 @@ { "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" }, + "blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" }, "claude-code.nvim": { "branch": "main", "commit": "ffdf35d8566528cb144d9812eccfecee34502edf" }, - "conform.nvim": { "branch": "master", "commit": "374aaf384e2e841607b8e2fe63fa3ad01d111c91" }, + "conform.nvim": { "branch": "master", "commit": "0e93e0d12d2f7ebdea9e3e444dfaff0050cefbe6" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "43b0c856ae5f32a195d83f4a27fe21d63e6c966c" }, + "gitsigns.nvim": { "branch": "main", "commit": "d0f90ef51d4be86b824b012ec52ed715b5622e51" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "aafae207d5a2a28c59c9d478d8581c2739135d09" }, - "mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" }, - "mini.nvim": { "branch": "main", "commit": "a9e4cb303ea6269ecab92c0276baf9d04370c492" }, - "nvim-lspconfig": { "branch": "master", "commit": "f817582301b2c188c1cff7c956971ce3f85631ff" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "bef29b653ba71d442816bf56286c2a686210be04" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, + "mini.nvim": { "branch": "main", "commit": "35e1767f4cd7dde51256eabae7349a5283a43cba" }, + "nvim-lspconfig": { "branch": "master", "commit": "a182334ba933e58240c2c45e6ae2d9c7ae313e00" }, "nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" }, - "nvim-treesitter": { "branch": "master", "commit": "28d480e0624b259095e56f353ec911f9f2a0f404" }, - "nvim-web-devicons": { "branch": "master", "commit": "f1420728f59843eb2ef084406b3d0201a0a0932d" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, "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": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } From 9b04cc3211c4665b0ac4ad60476a6b2d419a8d33 Mon Sep 17 00:00:00 2001 From: Francis Date: Mon, 9 Jun 2025 08:00:59 +0100 Subject: [PATCH 07/20] Python LSP! :) --- init.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/init.lua b/init.lua index a11e9053640..2b38ef8b2dc 100644 --- a/init.lua +++ b/init.lua @@ -634,6 +634,16 @@ require('lazy').setup({ end end + -- Show diagnostics in floating window on cursor hold + local diagnostic_augroup = vim.api.nvim_create_augroup('kickstart-lsp-diagnostics', { clear = false }) + vim.api.nvim_create_autocmd('CursorHold', { + buffer = event.buf, + group = diagnostic_augroup, + callback = function() + vim.diagnostic.open_float(nil, { focus = false, scope = 'cursor' }) + end, + }) + -- The following two autocommands are used to highlight references of the -- word under your cursor when your cursor rests there for a little while. -- See `:help CursorHold` for information about when this is executed @@ -659,6 +669,7 @@ require('lazy').setup({ callback = function(event2) vim.lsp.buf.clear_references() vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf } + vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-diagnostics', buffer = event2.buf } end, }) end From 1aa899f9c603a00a8f03b42494d8efdf570ff6af Mon Sep 17 00:00:00 2001 From: Francis Date: Mon, 14 Jul 2025 00:13:19 +0100 Subject: [PATCH 08/20] current nvim --- .DS_Store | Bin 6148 -> 6148 bytes init.lua | 19 +++++++++++++++++-- lazy-lock.json | 17 +++++++++-------- lua/.DS_Store | Bin 6148 -> 6148 bytes lua/custom/plugins/init.lua | 1 + 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/.DS_Store b/.DS_Store index 5fb87c9c53e0f02076de6b8b67caa91dcd4cd653..67cda9cca5086f559084d0cccce62c32be72764f 100644 GIT binary patch delta 114 zcmZoMXffEJ$`r?2@6W)%z`~%%kj{|FP?DSP;*yk;p9B=+(6c=&8vpy4BdUA~UipFy d!{Frn+ybB;1_ptI&CN_wjEqd1=P{>=003Nd91H*e delta 114 zcmZoMXffEJ$`r>lV?F}|0}F#5LpnnyLrHGFi%U{YeiBfOW6`RF+Y--?Iikv^;FT}P dFbq!4&n*DzVPN2Uu(_E@ijk3V^E~D>5ditF9<2ZX diff --git a/init.lua b/init.lua index 2b38ef8b2dc..69382a3bf4b 100644 --- a/init.lua +++ b/init.lua @@ -285,6 +285,21 @@ require('lazy').setup({ vim.keymap.set('n', 'e', ':NvimTreeToggle', { desc = 'Toggle File Explorer (nvim-tree)' }) end, }, + -- NOTE: FQ dropbar + { + 'Bekaboo/dropbar.nvim', + -- optional, but required for fuzzy finder support + dependencies = { + 'nvim-telescope/telescope-fzf-native.nvim', + build = 'make' + }, + config = function() + local dropbar_api = require('dropbar.api') + vim.keymap.set('n', ';', dropbar_api.pick, { desc = 'Pick symbols in winbar' }) + vim.keymap.set('n', '[;', dropbar_api.goto_context_start, { desc = 'Go to start of current context' }) + vim.keymap.set('n', '];', dropbar_api.select_next_context, { desc = 'Select next context' }) + end + }, -- --NOTE: Kanso Theme - FQ -- { -- 'webhooked/kanso.nvim', @@ -739,7 +754,7 @@ require('lazy').setup({ python = { pythonPath = '/Users/fq/.pyenv/versions/3.13.1/envs/rca/bin/python3', analysis = { - extraPaths = {'/Users/fq/.pyenv/versions/3.13.1/envs/rca/lib/python3.13/site-packages'}, + extraPaths = { '/Users/fq/.pyenv/versions/3.13.1/envs/rca/lib/python3.13/site-packages' }, autoSearchPaths = true, useLibraryCodeForTypes = true, diagnosticMode = 'workspace', @@ -1090,7 +1105,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 a4fdc75d811..932085bafbc 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,20 +1,21 @@ { "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" }, - "claude-code.nvim": { "branch": "main", "commit": "ffdf35d8566528cb144d9812eccfecee34502edf" }, - "conform.nvim": { "branch": "master", "commit": "0e93e0d12d2f7ebdea9e3e444dfaff0050cefbe6" }, + "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, + "claude-code.nvim": { "branch": "main", "commit": "275c47615f4424a0329290ce1d0c18a8320fd8b0" }, + "conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" }, + "dropbar.nvim": { "branch": "master", "commit": "b695c346fd180d504c1d135435cbcfba08ad3946" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "d0f90ef51d4be86b824b012ec52ed715b5622e51" }, + "gitsigns.nvim": { "branch": "main", "commit": "88205953bd748322b49b26e1dfb0389932520dc9" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "bef29b653ba71d442816bf56286c2a686210be04" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "be159e939543777bbfe9e1fe5389984c4570afce" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" }, "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, - "mini.nvim": { "branch": "main", "commit": "35e1767f4cd7dde51256eabae7349a5283a43cba" }, - "nvim-lspconfig": { "branch": "master", "commit": "a182334ba933e58240c2c45e6ae2d9c7ae313e00" }, - "nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" }, + "mini.nvim": { "branch": "main", "commit": "3f5d06a6f710966cb93baaadc4897eeb6d6210e5" }, + "nvim-lspconfig": { "branch": "master", "commit": "9276b82935bf6b951d08c864eb5ac3f85d6b743b" }, + "nvim-tree.lua": { "branch": "master", "commit": "6b5b36659688767fb9f133bb83024ab1466fe5cd" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, diff --git a/lua/.DS_Store b/lua/.DS_Store index a5b4624706cdd6ed2ddf0543414188b784f62f3f..9037292f7f6a9fe7edb693e1c93704d3abb2fe92 100644 GIT binary patch delta 14 VcmZoMXffEJ&BS Date: Fri, 1 Aug 2025 13:04:23 +0100 Subject: [PATCH 09/20] SourceKit LSP added --- init.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/init.lua b/init.lua index 69382a3bf4b..84661c68fab 100644 --- a/init.lua +++ b/init.lua @@ -762,6 +762,11 @@ require('lazy').setup({ }, }, }, + sourcekit = { + cmd = { 'sourcekit-lsp' }, + filetypes = { 'swift' }, + settings = {}, + }, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs -- @@ -802,6 +807,8 @@ require('lazy').setup({ -- You can add other tools here that you want Mason to install -- for you, so that they are available from within Neovim. local ensure_installed = vim.tbl_keys(servers or {}) + -- Remove sourcekit from ensure_installed since it's locally available + ensure_installed = vim.tbl_filter(function(name) return name ~= 'sourcekit' end, ensure_installed) vim.list_extend(ensure_installed, { 'stylua', -- Used to format Lua code 'pyright', -- Python LSP server @@ -822,6 +829,11 @@ require('lazy').setup({ end, }, } + + -- Setup SourceKit-LSP separately since it's not managed by Mason + local sourcekit_config = servers.sourcekit or {} + sourcekit_config.capabilities = vim.tbl_deep_extend('force', {}, capabilities, sourcekit_config.capabilities or {}) + require('lspconfig').sourcekit.setup(sourcekit_config) end, }, From 65aefc04e6d46e5626bb1e9c2fc432658414fcd4 Mon Sep 17 00:00:00 2001 From: Francis Date: Fri, 1 Aug 2025 21:33:22 +0100 Subject: [PATCH 10/20] local mbpro nvim.. --- .DS_Store | Bin 6148 -> 6148 bytes init.lua | 30 ++++++++++++++++++++---------- lazy-lock.json | 20 ++++++++++---------- test.swift | 3 +++ 4 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 test.swift diff --git a/.DS_Store b/.DS_Store index 67cda9cca5086f559084d0cccce62c32be72764f..09c4482ff8a62dc365c83da14417cd4a0ee5b0bb 100644 GIT binary patch delta 107 zcmZoMXffEJ$`r?^UBke@z`~%%kj{|FP?DSP;*yk;p9B=+2y(yEZY6Zw5mi0~uY5s< VVQ_MOZUIma1B2j(&CN`Wq5yCK8YKV# delta 107 zcmZoMXffEJ$`r?2@6W)%z`~%%kj{|FP?DSP;*yk;p9B=+(6c=&8vpy4BdUA~UipFy V!{Frn+ybB;1_ptI&CN`Wq5z(_8nyrc diff --git a/init.lua b/init.lua index 84661c68fab..377b89bdb4d 100644 --- a/init.lua +++ b/init.lua @@ -763,9 +763,13 @@ require('lazy').setup({ }, }, sourcekit = { - cmd = { 'sourcekit-lsp' }, - filetypes = { 'swift' }, - settings = {}, + capabilities = { + workspace = { + didChangeWatchedFiles = { + dynamicRegistration = true, + }, + }, + }, }, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs @@ -806,9 +810,12 @@ require('lazy').setup({ -- -- You can add other tools here that you want Mason to install -- for you, so that they are available from within Neovim. - local ensure_installed = vim.tbl_keys(servers or {}) - -- Remove sourcekit from ensure_installed since it's locally available - ensure_installed = vim.tbl_filter(function(name) return name ~= 'sourcekit' end, ensure_installed) + -- Filter out servers that aren't available through Mason + local mason_servers = vim.tbl_filter(function(server_name) + return server_name ~= 'sourcekit' -- sourcekit-lsp comes with Xcode, not Mason + end, vim.tbl_keys(servers or {})) + + local ensure_installed = mason_servers vim.list_extend(ensure_installed, { 'stylua', -- Used to format Lua code 'pyright', -- Python LSP server @@ -830,10 +837,13 @@ require('lazy').setup({ }, } - -- Setup SourceKit-LSP separately since it's not managed by Mason - local sourcekit_config = servers.sourcekit or {} - sourcekit_config.capabilities = vim.tbl_deep_extend('force', {}, capabilities, sourcekit_config.capabilities or {}) - require('lspconfig').sourcekit.setup(sourcekit_config) + -- Setup LSP servers that aren't managed by Mason + local non_mason_servers = { 'sourcekit' } + for _, server_name in ipairs(non_mason_servers) do + local server = servers[server_name] or {} + server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) + require('lspconfig')[server_name].setup(server) + end end, }, diff --git a/lazy-lock.json b/lazy-lock.json index 932085bafbc..1b6e33280c6 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,23 +1,23 @@ { "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, - "claude-code.nvim": { "branch": "main", "commit": "275c47615f4424a0329290ce1d0c18a8320fd8b0" }, - "conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" }, - "dropbar.nvim": { "branch": "master", "commit": "b695c346fd180d504c1d135435cbcfba08ad3946" }, + "blink.cmp": { "branch": "main", "commit": "586ee87534f5bf65f1c8dea2d1da2a57e8cddd36" }, + "claude-code.nvim": { "branch": "main", "commit": "c9a31e51069977edaad9560473b5d031fcc5d38b" }, + "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, + "dropbar.nvim": { "branch": "master", "commit": "5c3b0afdae4eeebb17497062ffad58d98b1c1c79" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "88205953bd748322b49b26e1dfb0389932520dc9" }, + "gitsigns.nvim": { "branch": "main", "commit": "1fcaddcc427ff5802b6602f46de37a5352d0f9e0" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "be159e939543777bbfe9e1fe5389984c4570afce" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "bb3a17efc797c34c054463174e5522442576ebd8" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, - "mini.nvim": { "branch": "main", "commit": "3f5d06a6f710966cb93baaadc4897eeb6d6210e5" }, - "nvim-lspconfig": { "branch": "master", "commit": "9276b82935bf6b951d08c864eb5ac3f85d6b743b" }, + "mini.nvim": { "branch": "main", "commit": "432a0614f8dc38715892b0eec537716457ea4c2f" }, + "nvim-lspconfig": { "branch": "master", "commit": "f47cd681d7cb6048876a2e908b6d8ba1e530d152" }, "nvim-tree.lua": { "branch": "master", "commit": "6b5b36659688767fb9f133bb83024ab1466fe5cd" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, + "nvim-web-devicons": { "branch": "master", "commit": "0422a19d9aa3aad2c7e5cca167e5407b13407a9d" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, diff --git a/test.swift b/test.swift new file mode 100644 index 00000000000..d61e89c288e --- /dev/null +++ b/test.swift @@ -0,0 +1,3 @@ +import Foundation + +print("Hello, Swift\!") From 0748feb445c9b0e8fbb0638b161bd88867fc495e Mon Sep 17 00:00:00 2001 From: Francis Date: Fri, 1 Aug 2025 21:33:55 +0100 Subject: [PATCH 11/20] local mbpro nvim.. --- test.swift | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 test.swift diff --git a/test.swift b/test.swift deleted file mode 100644 index d61e89c288e..00000000000 --- a/test.swift +++ /dev/null @@ -1,3 +0,0 @@ -import Foundation - -print("Hello, Swift\!") From 1b56f16e49139df5797c10f16b09cd08de6b565d Mon Sep 17 00:00:00 2001 From: Francis Date: Tue, 14 Oct 2025 16:41:13 +0100 Subject: [PATCH 12/20] added Precognition, Persistance, leaderW save and other nice updates --- .DS_Store | Bin 6148 -> 6148 bytes init.lua | 65 ++++++++++++++++++++++++---- lazy-lock.json | 39 ++++++++++------- lua/custom/plugins/marks.lua | 38 ++++++++++++++++ lua/custom/plugins/persistence.lua | 29 +++++++++++++ lua/custom/plugins/precognition.lua | 37 ++++++++++++++++ 6 files changed, 183 insertions(+), 25 deletions(-) create mode 100644 lua/custom/plugins/marks.lua create mode 100644 lua/custom/plugins/persistence.lua create mode 100644 lua/custom/plugins/precognition.lua diff --git a/.DS_Store b/.DS_Store index 09c4482ff8a62dc365c83da14417cd4a0ee5b0bb..728fd2f70146371794243fbb6432cb02d9981bec 100644 GIT binary patch delta 107 zcmZoMXffEJ$`r>hw~~Q@frUYjA)O(Up(Hoo#U&{xKM5$tG3$TeqIGh|9Z}^|@X8lt W7zQWj=N16H delta 107 zcmZoMXffEJ$`r?^UBke@z`~%%kj{|FP?DSP;*yk;p9B=+2y(yEZY6Zw5mi0~uY5s< VVQ_MOZUIma1B2j(&CN`Wq5yCK8YKV# diff --git a/init.lua b/init.lua index 377b89bdb4d..c4273898eb7 100644 --- a/init.lua +++ b/init.lua @@ -154,7 +154,7 @@ vim.opt.inccommand = 'split' vim.opt.cursorline = true -- Minimal number of screen lines to keep above and below the cursor. -vim.opt.scrolloff = 10 +vim.opt.scrolloff = 28 -- 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) @@ -168,6 +168,9 @@ vim.opt.confirm = true -- See `:help hlsearch` vim.keymap.set('n', '', 'nohlsearch') +-- Save file +vim.keymap.set('n', 'w', 'w', { desc = 'Save file' }) + -- Diagnostic keymaps vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) @@ -291,14 +294,14 @@ require('lazy').setup({ -- optional, but required for fuzzy finder support dependencies = { 'nvim-telescope/telescope-fzf-native.nvim', - build = 'make' + build = 'make', }, config = function() - local dropbar_api = require('dropbar.api') + local dropbar_api = require 'dropbar.api' vim.keymap.set('n', ';', dropbar_api.pick, { desc = 'Pick symbols in winbar' }) vim.keymap.set('n', '[;', dropbar_api.goto_context_start, { desc = 'Go to start of current context' }) vim.keymap.set('n', '];', dropbar_api.select_next_context, { desc = 'Select next context' }) - end + end, }, -- --NOTE: Kanso Theme - FQ -- { @@ -582,6 +585,18 @@ require('lazy').setup({ -- If you're wondering about lsp vs treesitter, you can check out the wonderfully -- and elegantly composed help section, `:help lsp-vs-treesitter` + -- LSP Hover and Signature Help Border (set before LspAttach) + vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { + border = 'rounded', + }) + vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { + border = 'rounded', + }) + + -- Lighten LSP popup background + vim.api.nvim_set_hl(0, 'NormalFloat', { bg = '#15171c' }) + vim.api.nvim_set_hl(0, 'FloatBorder', { bg = '#15171c', fg = '#6a6a6a' }) + -- This function gets run when an LSP attaches to a particular buffer. -- 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 @@ -636,6 +651,25 @@ require('lazy').setup({ -- the definition of its *type*, not where it was *defined*. map('grt', require('telescope.builtin').lsp_type_definitions, '[G]oto [T]ype Definition') + -- Follow file:// links in LSP hover popup + vim.keymap.set('n', 'gx', function() + local line = vim.api.nvim_get_current_line() + local url = line:match('file://([^)]+)') + if url then + local file = url:match('([^#]+)') + local lnum = url:match('#L(%d+)') + if file then + vim.cmd('edit ' .. vim.fn.fnameescape(file)) + if lnum then + vim.cmd('normal! ' .. lnum .. 'Gzz') + end + end + else + -- Fallback to default gx behavior + vim.ui.open(vim.fn.expand('')) + end + end, { buffer = event.buf, desc = 'LSP: Open file:// link' }) + -- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10) ---@param client vim.lsp.Client ---@param method vim.lsp.protocol.Method @@ -748,6 +782,12 @@ require('lazy').setup({ local servers = { -- clangd = {}, -- gopls = {}, + zls = { + cmd = { 'zls' }, + settings = { + zig_exe_path = '/Users/fq/.zvm/bin/zig', + }, + }, pyright = { cmd = { 'pyright-langserver', '--stdio' }, settings = { @@ -812,9 +852,9 @@ require('lazy').setup({ -- for you, so that they are available from within Neovim. -- Filter out servers that aren't available through Mason local mason_servers = vim.tbl_filter(function(server_name) - return server_name ~= 'sourcekit' -- sourcekit-lsp comes with Xcode, not Mason + return server_name ~= 'sourcekit' and server_name ~= 'zls' -- sourcekit-lsp comes with Xcode, zls using custom version end, vim.tbl_keys(servers or {})) - + local ensure_installed = mason_servers vim.list_extend(ensure_installed, { 'stylua', -- Used to format Lua code @@ -832,17 +872,23 @@ require('lazy').setup({ -- by the server configuration above. Useful when disabling -- certain features of an LSP (for example, turning off formatting for ts_ls) server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) - require('lspconfig')[server_name].setup(server) + + -- Use new vim.lsp.config API for Neovim 0.11+ + vim.lsp.config(server_name, server) + vim.lsp.enable(server_name) end, }, } -- Setup LSP servers that aren't managed by Mason - local non_mason_servers = { 'sourcekit' } + local non_mason_servers = { 'sourcekit', 'zls' } for _, server_name in ipairs(non_mason_servers) do local server = servers[server_name] or {} server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) - require('lspconfig')[server_name].setup(server) + + -- Use new vim.lsp.config API for Neovim 0.11+ + vim.lsp.config(server_name, server) + vim.lsp.enable(server_name) end end, }, @@ -1133,6 +1179,7 @@ require('lazy').setup({ -- Or use telescope! -- In normal mode type `sh` then write `lazy.nvim-plugin` -- you can continue same window with `sr` which resumes last telescope search + }, { ui = { -- If you are using a Nerd Font: set icons to an empty table which will use the diff --git a/lazy-lock.json b/lazy-lock.json index 1b6e33280c6..13518211262 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,28 +1,35 @@ { "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "586ee87534f5bf65f1c8dea2d1da2a57e8cddd36" }, + "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, "claude-code.nvim": { "branch": "main", "commit": "c9a31e51069977edaad9560473b5d031fcc5d38b" }, - "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, - "dropbar.nvim": { "branch": "master", "commit": "5c3b0afdae4eeebb17497062ffad58d98b1c1c79" }, - "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, + "conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" }, + "dropbar.nvim": { "branch": "master", "commit": "ce202248134e3949aac375fd66c28e5207785b10" }, + "fidget.nvim": { "branch": "main", "commit": "3f5475949679953af6d78654db29b944fa826e6a" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "1fcaddcc427ff5802b6602f46de37a5352d0f9e0" }, + "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "bb3a17efc797c34c054463174e5522442576ebd8" }, + "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, + "lazydev.nvim": { "branch": "main", "commit": "e28ce52fc7ff79fcb76f0e79ee6fb6182fca90b9" }, + "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, - "mini.nvim": { "branch": "main", "commit": "432a0614f8dc38715892b0eec537716457ea4c2f" }, - "nvim-lspconfig": { "branch": "master", "commit": "f47cd681d7cb6048876a2e908b6d8ba1e530d152" }, - "nvim-tree.lua": { "branch": "master", "commit": "6b5b36659688767fb9f133bb83024ab1466fe5cd" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "mini.nvim": { "branch": "main", "commit": "4eaa8f4034535c372f6ca04b2772897048296dab" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, + "nvim-tree.lua": { "branch": "master", "commit": "321bc61580fd066b76861c32de3319c3a6d089e7" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "0422a19d9aa3aad2c7e5cca167e5407b13407a9d" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, + "oil.nvim": { "branch": "master", "commit": "919e155fdf38e9148cdb5304faaaf53c20d703ea" }, + "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "precognition.nvim": { "branch": "main", "commit": "2aae2687207029b3611a0e19a289f9e1c7efbe16" }, + "snacks.nvim": { "branch": "main", "commit": "839022302b470fe166b8b8b04add49bd32bdc01b" }, "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" }, + "todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } + "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" }, + "xcodebuild.nvim": { "branch": "main", "commit": "1ceeb313c28549884d59bbc204dac7220cb97ce8" } } diff --git a/lua/custom/plugins/marks.lua b/lua/custom/plugins/marks.lua new file mode 100644 index 00000000000..50ae0d037f6 --- /dev/null +++ b/lua/custom/plugins/marks.lua @@ -0,0 +1,38 @@ +return { + 'chentoast/marks.nvim', + event = 'VeryLazy', + opts = { + -- whether to map keybinds or not. default true + default_mappings = true, + -- which builtin marks to show. default {} + builtin_marks = { '.', '<', '>', '^' }, + -- whether movements cycle back to the beginning/end of buffer. default true + cyclic = true, + -- whether the shada file is updated after modifying uppercase marks. default false + force_write_shada = false, + -- how often (in ms) to redraw signs/recompute mark positions + -- higher values will have better performance but may cause visual lag, + -- while lower values may cause performance penalties. default 150. + refresh_interval = 250, + -- sign priorities for each type of mark - builtin marks, uppercase marks, lowercase + -- marks, and bookmarks. + -- can be either a table with all/none of the keys, or a single number, in which case + -- the priority applies to all marks. + -- default 10. + sign_priority = { lower = 10, upper = 15, builtin = 8, bookmark = 20 }, + -- disables mark tracking for specific filetypes. default {} + excluded_filetypes = {}, + -- disables mark tracking for specific buftypes. default {} + excluded_buftypes = {}, + -- marks.nvim allows you to configure up to 10 bookmark groups, each with its own + -- sign/virttext. Bookmarks can be used to group together positions and quickly move + -- across multiple buffers. default sign is '!@#$%^&*()' (from 0 to 9), and + -- default virt_text is "". + bookmark_0 = { + sign = '⚑', + virt_text = 'hello world', + annotate = false, + }, + mappings = {}, + }, +} diff --git a/lua/custom/plugins/persistence.lua b/lua/custom/plugins/persistence.lua new file mode 100644 index 00000000000..bf54c696394 --- /dev/null +++ b/lua/custom/plugins/persistence.lua @@ -0,0 +1,29 @@ +return { + 'folke/persistence.nvim', + event = 'BufReadPre', + opts = {}, + -- Optional keymaps for manual session control + keys = { + { + 'qs', + function() + require('persistence').load() + end, + desc = 'Restore Session', + }, + { + 'ql', + function() + require('persistence').load { last = true } + end, + desc = 'Restore Last Session', + }, + { + 'qd', + function() + require('persistence').stop() + end, + desc = "Don't Save Current Session", + }, + }, +} diff --git a/lua/custom/plugins/precognition.lua b/lua/custom/plugins/precognition.lua new file mode 100644 index 00000000000..2b6f63b8f11 --- /dev/null +++ b/lua/custom/plugins/precognition.lua @@ -0,0 +1,37 @@ +return { + 'tris203/precognition.nvim', + --event = "VeryLazy", + opts = { + startVisible = true, + -- showBlankVirtLine = true, + -- highlightColor = { link = "Comment" }, + -- hints = { + -- Caret = { text = "^", prio = 2 }, + -- Dollar = { text = "$", prio = 1 }, + -- MatchingPair = { text = "%", prio = 5 }, + -- Zero = { text = "0", prio = 1 }, + -- w = { text = "w", prio = 10 }, + -- b = { text = "b", prio = 9 }, + -- e = { text = "e", prio = 8 }, + -- W = { text = "W", prio = 7 }, + -- B = { text = "B", prio = 6 }, + -- E = { text = "E", prio = 5 }, + -- }, + -- gutterHints = { + -- G = { text = "G", prio = 10 }, + -- gg = { text = "gg", prio = 9 }, + -- PrevParagraph = { text = "{", prio = 8 }, + -- NextParagraph = { text = "}", prio = 8 }, + -- }, + -- disabled_fts = { + -- "startify", + -- }, + }, + keys = { + { + 'P', + 'Precognition toggle', + desc = 'Toggle Precognition', + }, + }, +} From ee0ee40cf3e0826dd8e0b92ef40b65e43b8be80a Mon Sep 17 00:00:00 2001 From: Francis Date: Wed, 29 Oct 2025 16:41:18 +0000 Subject: [PATCH 13/20] make home path generic with ~ --- init.lua | 2 +- lazy-lock.json | 40 ++++++++++++++++++---------------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/init.lua b/init.lua index c4273898eb7..c39e5485572 100644 --- a/init.lua +++ b/init.lua @@ -785,7 +785,7 @@ require('lazy').setup({ zls = { cmd = { 'zls' }, settings = { - zig_exe_path = '/Users/fq/.zvm/bin/zig', + zig_exe_path = vim.fn.expand('~/.zvm/bin/zig'), }, }, pyright = { diff --git a/lazy-lock.json b/lazy-lock.json index 13518211262..177b83026ba 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,35 +1,31 @@ { "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, - "claude-code.nvim": { "branch": "main", "commit": "c9a31e51069977edaad9560473b5d031fcc5d38b" }, - "conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" }, - "dropbar.nvim": { "branch": "master", "commit": "ce202248134e3949aac375fd66c28e5207785b10" }, - "fidget.nvim": { "branch": "main", "commit": "3f5475949679953af6d78654db29b944fa826e6a" }, + "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, + "claude-code.nvim": { "branch": "main", "commit": "275c47615f4424a0329290ce1d0c18a8320fd8b0" }, + "conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" }, + "dropbar.nvim": { "branch": "master", "commit": "b695c346fd180d504c1d135435cbcfba08ad3946" }, + "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, + "gitsigns.nvim": { "branch": "main", "commit": "88205953bd748322b49b26e1dfb0389932520dc9" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, - "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, - "lazydev.nvim": { "branch": "main", "commit": "e28ce52fc7ff79fcb76f0e79ee6fb6182fca90b9" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, - "mini.nvim": { "branch": "main", "commit": "4eaa8f4034535c372f6ca04b2772897048296dab" }, - "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, - "nvim-tree.lua": { "branch": "master", "commit": "321bc61580fd066b76861c32de3319c3a6d089e7" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "be159e939543777bbfe9e1fe5389984c4570afce" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, + "mini.nvim": { "branch": "main", "commit": "3f5d06a6f710966cb93baaadc4897eeb6d6210e5" }, + "nvim-lspconfig": { "branch": "master", "commit": "9276b82935bf6b951d08c864eb5ac3f85d6b743b" }, + "nvim-tree.lua": { "branch": "master", "commit": "6b5b36659688767fb9f133bb83024ab1466fe5cd" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, - "oil.nvim": { "branch": "master", "commit": "919e155fdf38e9148cdb5304faaaf53c20d703ea" }, + "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "precognition.nvim": { "branch": "main", "commit": "2aae2687207029b3611a0e19a289f9e1c7efbe16" }, - "snacks.nvim": { "branch": "main", "commit": "839022302b470fe166b8b8b04add49bd32bdc01b" }, "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" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, - "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" }, - "xcodebuild.nvim": { "branch": "main", "commit": "1ceeb313c28549884d59bbc204dac7220cb97ce8" } + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } From 4095694799ff9e055d83b1511d8e0d0c933504b7 Mon Sep 17 00:00:00 2001 From: Francis Date: Mon, 3 Nov 2025 01:08:24 +0000 Subject: [PATCH 14/20] mbp --- .DS_Store | Bin 6148 -> 6148 bytes init.lua | 79 +++++++++++++------------- lazy-lock.json | 20 ++++--- lua/custom/plugins/dropbar.lua | 13 +++++ lua/custom/plugins/hover.lua | 37 ++++++++++++ lua/custom/plugins/nvim-tree.lua | 16 ++++++ lua/kickstart/plugins/indent_line.lua | 13 ++++- 7 files changed, 130 insertions(+), 48 deletions(-) create mode 100644 lua/custom/plugins/dropbar.lua create mode 100644 lua/custom/plugins/hover.lua create mode 100644 lua/custom/plugins/nvim-tree.lua diff --git a/.DS_Store b/.DS_Store index 728fd2f70146371794243fbb6432cb02d9981bec..709dee0766c607a0b10b0fc68bad72d9bd7f6492 100644 GIT binary patch delta 305 zcmZoMXfc=|#>B!kF;Q%yo+6{j#(>?7iv?Ji7)2)YFiFK$-DF^3U}4Z>NN31oD9O!t zaY@R_PXdZ@JmdW46YPK75mi0~uY5sZN0NXHGjJb^|tZ4E)=3qv~jfqnkH?wo_ ea{vQmGb77)=E?jbjvR~(3``)knB)qF;Q%yo+6{b#(>?7i~^H+Sfpa*Rx&U!urTN`q%&kPl;q~SxFqG| zCjrGcX8jLbv`+50BdUA~UipFy!{Frn+ybB;1_t4V$;~WNCQoN=WpZPhEXNki#IRwr jAcqLcW_AvK4xn>@obSw&`9&N#K*||`?${h5vW6J|LvbpE diff --git a/init.lua b/init.lua index c39e5485572..3682449d510 100644 --- a/init.lua +++ b/init.lua @@ -171,6 +171,9 @@ vim.keymap.set('n', '', 'nohlsearch') -- Save file vim.keymap.set('n', 'w', 'w', { desc = 'Save file' }) +-- Duplicate line (without affecting yank register) +vim.keymap.set('n', 'd', ':t.', { desc = 'Duplicate line' }) + -- Diagnostic keymaps vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) @@ -231,6 +234,41 @@ map('n', '', ':m .-2==', { desc = 'Move line up (Cmd)' }) map('v', '', ":m '>+1gv=gv", { desc = 'Move selection down (Cmd)' }) map('v', '', ":m '<-2gv=gv", { desc = 'Move selection up (Cmd)' }) +-- Jump to last terminal buffer and enter insert mode +map('n', 'tt', function() + local term_bufs = vim.tbl_filter(function(buf) + return vim.bo[buf].buftype == 'terminal' + end, vim.api.nvim_list_bufs()) + + if #term_bufs > 0 then + vim.cmd('buffer ' .. term_bufs[#term_bufs]) + vim.cmd('startinsert') + end +end, { desc = 'Jump to last terminal buffer' }) + +-- Zig debug print variable +map('n', 'pf', function() + -- Get the word under cursor + local word = vim.fn.expand('') + + -- Get current line number + local line = vim.fn.line('.') + + -- Get current indentation + local indent = vim.fn.indent(line) + local indent_str = string.rep(' ', indent) + + -- Create the debug print line + local debug_line = indent_str .. 'std.debug.print("' .. word .. ': {}\\n", .{' .. word .. '});' + + -- Insert line below and position cursor + vim.fn.append(line, debug_line) + + -- Move cursor to the inserted line, at the position after the opening quote + vim.fn.cursor(line + 1, indent + 19 + #word) + vim.cmd('startinsert') +end, { desc = 'Zig debug print variable' }) + -- [[ Basic Autocommands ]] -- See `:help lua-guide-autocommands` @@ -245,6 +283,9 @@ vim.api.nvim_create_autocmd('TextYankPost', { end, }) +-- Make indent guides match comment color +vim.api.nvim_set_hl(0, 'IblIndent', { fg = '#161a1f' }) -- RGB 22, 26, 31 + -- [[ Install `lazy.nvim` plugin manager ]] -- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' @@ -271,44 +312,6 @@ vim.opt.rtp:prepend(lazypath) require('lazy').setup({ -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). 'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically - --NOTE: nvim-tree - FQ - { - 'nvim-tree/nvim-tree.lua', - dependencies = { - 'nvim-tree/nvim-web-devicons', -- optional, for file icons - }, - version = '*', - lazy = false, - config = function() - require('nvim-tree').setup { - sync_root_with_cwd = true, - respect_buf_cwd = true, - } - -- Optional: Keybinding to toggle nvim-tree - vim.keymap.set('n', 'e', ':NvimTreeToggle', { desc = 'Toggle File Explorer (nvim-tree)' }) - end, - }, - -- NOTE: FQ dropbar - { - 'Bekaboo/dropbar.nvim', - -- optional, but required for fuzzy finder support - dependencies = { - 'nvim-telescope/telescope-fzf-native.nvim', - build = 'make', - }, - config = function() - local dropbar_api = require 'dropbar.api' - vim.keymap.set('n', ';', dropbar_api.pick, { desc = 'Pick symbols in winbar' }) - vim.keymap.set('n', '[;', dropbar_api.goto_context_start, { desc = 'Go to start of current context' }) - vim.keymap.set('n', '];', dropbar_api.select_next_context, { desc = 'Select next context' }) - end, - }, - -- --NOTE: Kanso Theme - FQ - -- { - -- 'webhooked/kanso.nvim', - -- lazy = false, - -- priority = 1000, - -- }, -- NOTE: Plugins can also be added by using a table, -- with the first argument being the link and the following -- keys can be used to configure plugin behavior/loading/etc. diff --git a/lazy-lock.json b/lazy-lock.json index 177b83026ba..886c24a60f9 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -6,19 +6,21 @@ "dropbar.nvim": { "branch": "master", "commit": "b695c346fd180d504c1d135435cbcfba08ad3946" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "88205953bd748322b49b26e1dfb0389932520dc9" }, + "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, + "hover.nvim": { "branch": "main", "commit": "3b49066e09e03e63be6d6f43ae2b8bcd58301f63" }, + "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "be159e939543777bbfe9e1fe5389984c4570afce" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" }, - "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, - "mini.nvim": { "branch": "main", "commit": "3f5d06a6f710966cb93baaadc4897eeb6d6210e5" }, - "nvim-lspconfig": { "branch": "master", "commit": "9276b82935bf6b951d08c864eb5ac3f85d6b743b" }, - "nvim-tree.lua": { "branch": "master", "commit": "6b5b36659688767fb9f133bb83024ab1466fe5cd" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "mini.nvim": { "branch": "main", "commit": "4eaa8f4034535c372f6ca04b2772897048296dab" }, + "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, + "nvim-tree.lua": { "branch": "master", "commit": "321bc61580fd066b76861c32de3319c3a6d089e7" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, + "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "precognition.nvim": { "branch": "main", "commit": "2aae2687207029b3611a0e19a289f9e1c7efbe16" }, @@ -27,5 +29,5 @@ "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } + "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" } } diff --git a/lua/custom/plugins/dropbar.lua b/lua/custom/plugins/dropbar.lua new file mode 100644 index 00000000000..b16e1269047 --- /dev/null +++ b/lua/custom/plugins/dropbar.lua @@ -0,0 +1,13 @@ +return { + 'Bekaboo/dropbar.nvim', + dependencies = { + 'nvim-telescope/telescope-fzf-native.nvim', + build = 'make', + }, + config = function() + local dropbar_api = require 'dropbar.api' + vim.keymap.set('n', ';', dropbar_api.pick, { desc = 'Pick symbols in winbar' }) + vim.keymap.set('n', '[;', dropbar_api.goto_context_start, { desc = 'Go to start of current context' }) + vim.keymap.set('n', '];', dropbar_api.select_next_context, { desc = 'Select next context' }) + end, +} diff --git a/lua/custom/plugins/hover.lua b/lua/custom/plugins/hover.lua new file mode 100644 index 00000000000..ac81fc226f7 --- /dev/null +++ b/lua/custom/plugins/hover.lua @@ -0,0 +1,37 @@ +return { + 'lewis6991/hover.nvim', + config = function() + require('hover').setup { + init = function() + -- Require providers + require 'hover.providers.lsp' + require 'hover.providers.diagnostic' + require 'hover.providers.man' + require 'hover.providers.dictionary' + end, + preview_opts = { + border = 'rounded', + }, + preview_window = false, + title = true, + mouse_providers = { + 'LSP', + }, + mouse_delay = 1000, + } + + -- Setup keymaps + vim.keymap.set('n', 'K', require('hover').hover, { desc = 'hover.nvim' }) + vim.keymap.set('n', 'gK', require('hover').hover_select, { desc = 'hover.nvim (select)' }) + vim.keymap.set('n', '', function() + require('hover').hover_switch 'previous' + end, { desc = 'hover.nvim (previous source)' }) + vim.keymap.set('n', '', function() + require('hover').hover_switch 'next' + end, { desc = 'hover.nvim (next source)' }) + + -- Mouse support + vim.keymap.set('n', '', require('hover').hover_mouse, { desc = 'hover.nvim (mouse)' }) + vim.o.mousemoveevent = true + end, +} diff --git a/lua/custom/plugins/nvim-tree.lua b/lua/custom/plugins/nvim-tree.lua new file mode 100644 index 00000000000..9ffe95f095f --- /dev/null +++ b/lua/custom/plugins/nvim-tree.lua @@ -0,0 +1,16 @@ +return { + 'nvim-tree/nvim-tree.lua', + dependencies = { + 'nvim-tree/nvim-web-devicons', -- optional, for file icons + }, + version = '*', + lazy = false, + config = function() + require('nvim-tree').setup { + sync_root_with_cwd = true, + respect_buf_cwd = true, + } + -- Keybinding to toggle nvim-tree + vim.keymap.set('n', 'e', ':NvimTreeToggle', { desc = 'Toggle File Explorer (nvim-tree)' }) + end, +} diff --git a/lua/kickstart/plugins/indent_line.lua b/lua/kickstart/plugins/indent_line.lua index ed7f269399f..983274e79eb 100644 --- a/lua/kickstart/plugins/indent_line.lua +++ b/lua/kickstart/plugins/indent_line.lua @@ -4,6 +4,17 @@ return { -- Enable `lukas-reineke/indent-blankline.nvim` -- See `:help ibl` main = 'ibl', - opts = {}, + dependencies = { 'nvim-treesitter/nvim-treesitter' }, + opts = { + indent = { + char = '▏', -- Thinner character (alternatives: '│', '┊', '┆', '¦', '|', '⁞') + smart_indent_cap = true, + }, + scope = { + enabled = false, -- Disable scope highlighting + show_start = false, + show_end = false, + }, + }, }, } From 901cad412ed4c0a932d92027c5584c4562e1bb95 Mon Sep 17 00:00:00 2001 From: Francis Date: Mon, 10 Nov 2025 08:39:08 +0000 Subject: [PATCH 15/20] hover ++ --- lua/custom/plugins/hover.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/custom/plugins/hover.lua b/lua/custom/plugins/hover.lua index ac81fc226f7..13343ba8cf5 100644 --- a/lua/custom/plugins/hover.lua +++ b/lua/custom/plugins/hover.lua @@ -7,7 +7,7 @@ return { require 'hover.providers.lsp' require 'hover.providers.diagnostic' require 'hover.providers.man' - require 'hover.providers.dictionary' + -- require 'hover.providers.dictionary' end, preview_opts = { border = 'rounded', From 0515f981d16929184a89dcc2a839598da1aaf860 Mon Sep 17 00:00:00 2001 From: Francis Date: Mon, 10 Nov 2025 18:00:32 +0000 Subject: [PATCH 16/20] indent --- init.lua | 4 +-- lazy-lock.json | 40 +++++++++++++-------------- lua/kickstart/plugins/indent_line.lua | 15 ++++------ 3 files changed, 28 insertions(+), 31 deletions(-) diff --git a/init.lua b/init.lua index 3682449d510..d2342279243 100644 --- a/init.lua +++ b/init.lua @@ -284,7 +284,7 @@ vim.api.nvim_create_autocmd('TextYankPost', { }) -- Make indent guides match comment color -vim.api.nvim_set_hl(0, 'IblIndent', { fg = '#161a1f' }) -- RGB 22, 26, 31 +vim.api.nvim_set_hl(0, 'BlinkIndent', { fg = '#2a2f36' }) -- RGB 42, 47, 54 (lighter than before) -- [[ Install `lazy.nvim` plugin manager ]] -- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info @@ -1166,7 +1166,7 @@ require('lazy').setup({ -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- -- require 'kickstart.plugins.debug', - -- require 'kickstart.plugins.indent_line', + require 'kickstart.plugins.indent_line', -- require 'kickstart.plugins.lint', -- require 'kickstart.plugins.autopairs', -- require 'kickstart.plugins.neo-tree', diff --git a/lazy-lock.json b/lazy-lock.json index 886c24a60f9..ba715d0197a 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,33 +1,33 @@ { - "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, - "claude-code.nvim": { "branch": "main", "commit": "275c47615f4424a0329290ce1d0c18a8320fd8b0" }, - "conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" }, - "dropbar.nvim": { "branch": "master", "commit": "b695c346fd180d504c1d135435cbcfba08ad3946" }, - "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, + "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, + "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, + "blink.indent": { "branch": "main", "commit": "a66ac16464f22a813c755af283af423a38bbde65" }, + "claude-code.nvim": { "branch": "main", "commit": "c9a31e51069977edaad9560473b5d031fcc5d38b" }, + "conform.nvim": { "branch": "master", "commit": "cde4da5c1083d3527776fee69536107d98dae6c9" }, + "dropbar.nvim": { "branch": "master", "commit": "ce202248134e3949aac375fd66c28e5207785b10" }, + "fidget.nvim": { "branch": "main", "commit": "e32b672d8fd343f9d6a76944fedb8c61d7d8111a" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, + "gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" }, "hover.nvim": { "branch": "main", "commit": "3b49066e09e03e63be6d6f43ae2b8bcd58301f63" }, - "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, + "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": "4eaa8f4034535c372f6ca04b2772897048296dab" }, - "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, + "mini.nvim": { "branch": "main", "commit": "68d4478920c7afdfa21c13706464e275d9ce3255" }, + "nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" }, "nvim-tree.lua": { "branch": "master", "commit": "321bc61580fd066b76861c32de3319c3a6d089e7" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, - "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, + "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "precognition.nvim": { "branch": "main", "commit": "2aae2687207029b3611a0e19a289f9e1c7efbe16" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, - "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "telescope.nvim": { "branch": "master", "commit": "0294ae3eafe662c438addb8692d9c98ef73a983e" }, + "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, - "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" } + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } } diff --git a/lua/kickstart/plugins/indent_line.lua b/lua/kickstart/plugins/indent_line.lua index 983274e79eb..040788810d6 100644 --- a/lua/kickstart/plugins/indent_line.lua +++ b/lua/kickstart/plugins/indent_line.lua @@ -1,19 +1,16 @@ return { { -- Add indentation guides even on blank lines - 'lukas-reineke/indent-blankline.nvim', - -- Enable `lukas-reineke/indent-blankline.nvim` - -- See `:help ibl` - main = 'ibl', - dependencies = { 'nvim-treesitter/nvim-treesitter' }, + 'saghen/blink.indent', + -- See: https://github.com/saghen/blink.indent + --- @module 'blink.indent' + --- @type blink.indent.Config opts = { - indent = { + static = { + enabled = true, -- Enable static indent guides char = '▏', -- Thinner character (alternatives: '│', '┊', '┆', '¦', '|', '⁞') - smart_indent_cap = true, }, scope = { enabled = false, -- Disable scope highlighting - show_start = false, - show_end = false, }, }, }, From fbc8a24a1430cd376fa0e144b70b4d5e79d5d183 Mon Sep 17 00:00:00 2001 From: Francis Date: Tue, 11 Nov 2025 18:04:51 +0000 Subject: [PATCH 17/20] lsp warning --- init.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/init.lua b/init.lua index d2342279243..b9721fe2c94 100644 --- a/init.lua +++ b/init.lua @@ -738,6 +738,15 @@ require('lazy').setup({ end, }) + -- Override diagnostic handler to prevent URI errors + local default_diagnostic_handler = vim.lsp.handlers['textDocument/publishDiagnostics'] + vim.lsp.handlers['textDocument/publishDiagnostics'] = function(err, result, ctx, config) + -- Filter out diagnostics with invalid URIs + if result and result.uri and type(result.uri) == 'string' and result.uri ~= '' then + return default_diagnostic_handler(err, result, ctx, config) + end + end + -- Diagnostic Config -- See :help vim.diagnostic.Opts vim.diagnostic.config { From 8f87c0b271f4b05bba4e0d63bb0bf66b06224d52 Mon Sep 17 00:00:00 2001 From: Francis Date: Sun, 7 Dec 2025 10:57:25 +0000 Subject: [PATCH 18/20] code diff --- lazy-lock.json | 2 ++ lua/custom/plugins/init.lua | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lazy-lock.json b/lazy-lock.json index ba715d0197a..9f6e97bdef5 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -17,6 +17,7 @@ "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, "mini.nvim": { "branch": "main", "commit": "68d4478920c7afdfa21c13706464e275d9ce3255" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" }, "nvim-tree.lua": { "branch": "master", "commit": "321bc61580fd066b76861c32de3319c3a6d089e7" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, @@ -29,5 +30,6 @@ "telescope.nvim": { "branch": "master", "commit": "0294ae3eafe662c438addb8692d9c98ef73a983e" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, + "vscode-diff.nvim": { "branch": "main", "commit": "94bba113413cb660397f219d4096775338ea08e1" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } } diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index 34bcd10acb8..720ce5b6eb0 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -3,4 +3,14 @@ -- -- See the kickstart.nvim README for more information -return {} +return { + { + 'esmuellert/vscode-diff.nvim', + dependencies = { + 'MunifTanjim/nui.nvim', + }, + config = function() + require('vscode-diff').setup() + end, + }, +} From 39f42594da3710f50deb99ee154eef979ee5331d Mon Sep 17 00:00:00 2001 From: francisqureshi Date: Sun, 7 Dec 2025 13:46:56 +0000 Subject: [PATCH 19/20] json --- init.lua | 2 ++ lazy-lock.json | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/init.lua b/init.lua index b9721fe2c94..b9a01249d99 100644 --- a/init.lua +++ b/init.lua @@ -794,6 +794,7 @@ require('lazy').setup({ local servers = { -- clangd = {}, -- gopls = {}, + jsonls = {}, zls = { cmd = { 'zls' }, settings = { @@ -937,6 +938,7 @@ require('lazy').setup({ end, formatters_by_ft = { lua = { 'stylua' }, + json = { 'prettier' }, -- Conform can also run multiple formatters sequentially -- python = { "isort", "black" }, -- diff --git a/lazy-lock.json b/lazy-lock.json index 9f6e97bdef5..6d07f98f19a 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,35 +1,35 @@ { - "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, + "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, "blink.indent": { "branch": "main", "commit": "a66ac16464f22a813c755af283af423a38bbde65" }, "claude-code.nvim": { "branch": "main", "commit": "c9a31e51069977edaad9560473b5d031fcc5d38b" }, - "conform.nvim": { "branch": "master", "commit": "cde4da5c1083d3527776fee69536107d98dae6c9" }, + "conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" }, "dropbar.nvim": { "branch": "master", "commit": "ce202248134e3949aac375fd66c28e5207785b10" }, - "fidget.nvim": { "branch": "main", "commit": "e32b672d8fd343f9d6a76944fedb8c61d7d8111a" }, + "fidget.nvim": { "branch": "main", "commit": "3f5475949679953af6d78654db29b944fa826e6a" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" }, + "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, "hover.nvim": { "branch": "main", "commit": "3b49066e09e03e63be6d6f43ae2b8bcd58301f63" }, "kanso.nvim": { "branch": "main", "commit": "62e9c5d669567d086474b2b6863e0724c71c6c99" }, - "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, - "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, + "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, + "lazydev.nvim": { "branch": "main", "commit": "e28ce52fc7ff79fcb76f0e79ee6fb6182fca90b9" }, "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, - "mini.nvim": { "branch": "main", "commit": "68d4478920c7afdfa21c13706464e275d9ce3255" }, + "mini.nvim": { "branch": "main", "commit": "4eaa8f4034535c372f6ca04b2772897048296dab" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" }, + "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, "nvim-tree.lua": { "branch": "master", "commit": "321bc61580fd066b76861c32de3319c3a6d089e7" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, - "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, + "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, + "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "precognition.nvim": { "branch": "main", "commit": "2aae2687207029b3611a0e19a289f9e1c7efbe16" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "0294ae3eafe662c438addb8692d9c98ef73a983e" }, - "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, + "todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "vscode-diff.nvim": { "branch": "main", "commit": "94bba113413cb660397f219d4096775338ea08e1" }, - "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } + "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" } } From b0f3985b9099d3c89a1fe7471b98c7a2d823b862 Mon Sep 17 00:00:00 2001 From: francisqureshi Date: Sun, 7 Dec 2025 13:49:09 +0000 Subject: [PATCH 20/20] json