From 0e3093eae81a5c769f1d8a7af8ef072bee175fa0 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Tue, 10 Mar 2026 08:37:34 +0100 Subject: [PATCH 1/3] Adding nvim-treesitter-context --- AppData/Local/nvim/lua/config/options.lua | 2 +- AppData/Local/nvim/lua/plugins/lazy.lua | 1 + AppData/Local/nvim/lua/plugins/nvim-treesitter-context.lua | 5 +++++ AppData/Local/nvim/lua/plugins/nvim-treesitter.lua | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 AppData/Local/nvim/lua/plugins/nvim-treesitter-context.lua diff --git a/AppData/Local/nvim/lua/config/options.lua b/AppData/Local/nvim/lua/config/options.lua index d96fc18..ef20bbf 100644 --- a/AppData/Local/nvim/lua/config/options.lua +++ b/AppData/Local/nvim/lua/config/options.lua @@ -6,7 +6,7 @@ -- Make line numbers default vim.opt.number = true -- You can also add relative line numbers, to help with jumping. -vim.opt.relativenumber = true +vim.opt.relativenumber = false -- Enable mouse mode, can be useful for resizing splits for example! vim.opt.mouse = 'a' diff --git a/AppData/Local/nvim/lua/plugins/lazy.lua b/AppData/Local/nvim/lua/plugins/lazy.lua index 49ec362..f824d83 100644 --- a/AppData/Local/nvim/lua/plugins/lazy.lua +++ b/AppData/Local/nvim/lua/plugins/lazy.lua @@ -42,6 +42,7 @@ require('lazy').setup({ require 'plugins.harpoon', require 'plugins.colorizer', require 'plugins.lualine', + require 'plugins.nvim-treesitter-context', -- TODO: Move these next require 'kickstart.plugins.debug', diff --git a/AppData/Local/nvim/lua/plugins/nvim-treesitter-context.lua b/AppData/Local/nvim/lua/plugins/nvim-treesitter-context.lua new file mode 100644 index 0000000..b7d203d --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/nvim-treesitter-context.lua @@ -0,0 +1,5 @@ +return { + { + 'nvim-treesitter/nvim-treesitter-context', + }, +} diff --git a/AppData/Local/nvim/lua/plugins/nvim-treesitter.lua b/AppData/Local/nvim/lua/plugins/nvim-treesitter.lua index 1a905e1..78fa5bb 100644 --- a/AppData/Local/nvim/lua/plugins/nvim-treesitter.lua +++ b/AppData/Local/nvim/lua/plugins/nvim-treesitter.lua @@ -1,6 +1,7 @@ return { { -- Highlight, edit, and navigate code 'nvim-treesitter/nvim-treesitter', + branch = 'master', build = ':TSUpdate', main = 'nvim-treesitter.configs', -- Sets main module to use for opts -- [[ Configure Treesitter ]] See `:help nvim-treesitter` From 8cee323b51bb41e42f84f4b818d09ee6e42e28f7 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Tue, 10 Mar 2026 08:39:35 +0100 Subject: [PATCH 2/3] Removing markdown-table --- .profile.ps1 | 3 +++ AppData/Local/nvim/lua/plugins/lazy.lua | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.profile.ps1 b/.profile.ps1 index 8cd4f41..996f1c3 100644 --- a/.profile.ps1 +++ b/.profile.ps1 @@ -150,8 +150,11 @@ Set-Alias -Name dev1 -Value Connect-Dev1 Set-Alias -Name dash -Value Open-KubernetesDashboard Set-Alias -Name cd-repos -Value cdr +Set-Alias -Name repos -Value cdr Set-Alias -Name cd-sf -Value cdsf +Set-Alias -Name sf -Value cdsf Set-Alias -Name cd-li -Value cdli +Set-Alias -Name li -Value cdli Set-Alias -Name notes -Value Open-Notes diff --git a/AppData/Local/nvim/lua/plugins/lazy.lua b/AppData/Local/nvim/lua/plugins/lazy.lua index 3cd9ca8..a0ccfa2 100644 --- a/AppData/Local/nvim/lua/plugins/lazy.lua +++ b/AppData/Local/nvim/lua/plugins/lazy.lua @@ -35,7 +35,6 @@ require('lazy').setup({ require 'plugins.todo-comments', require 'plugins.nvim-treesitter', require 'plugins.markdown-preview', - require 'plugins.markdown-table', require 'plugins.markview', require 'plugins.neotest', require 'plugins.pomo', From dfa1b7c2fc292f01ca6079a37e495ab14093d1e0 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Mon, 23 Mar 2026 08:41:35 +0100 Subject: [PATCH 3/3] work --- .profile.ps1 | 4 + AppData/Local/nvim/init.lua | 221 +++++++++++++++++++----------------- requirements.ps1 | 8 +- 3 files changed, 126 insertions(+), 107 deletions(-) diff --git a/.profile.ps1 b/.profile.ps1 index 996f1c3..efaa1cd 100644 --- a/.profile.ps1 +++ b/.profile.ps1 @@ -160,3 +160,7 @@ Set-Alias -Name notes -Value Open-Notes # Set up docker environment #$Env:DOCKER_HOST="ssh://wholteza@localhost:22/" + +# Set all files in .kube as kubeconfig paths. +# This allows for dynamic kubeconfig use. +$env:KUBECONFIG = (Get-ChildItem "$HOME\.kube" -File | ForEach-Object { $_.FullName }) -join ";" diff --git a/AppData/Local/nvim/init.lua b/AppData/Local/nvim/init.lua index 7dbdb6f..cbeb183 100644 --- a/AppData/Local/nvim/init.lua +++ b/AppData/Local/nvim/init.lua @@ -5,9 +5,9 @@ vim.o.tabstop = 2 -- 2 space tab width vim.o.shiftwidth = 2 -- 2 space tab width vim.o.swapfile = false -- Disable swap files (annoying) vim.o.undofile = true -- Enable undo between sessions -vim.o.mouse = 'a' -- Enable mouse support +vim.o.mouse = "a" -- Enable mouse support vim.o.showmode = false -- Don't show mode in status bar -vim.o.inccommand = 'split' -- Preview replace commands inline +vim.o.inccommand = "split" -- Preview replace commands inline vim.o.scrolloff = 20 -- Scroll if cursor is X lines to edge vim.o.confirm = true -- Add confirmation on some destructive actions vim.o.ignorecase = true -- Case insensitive search @@ -15,69 +15,90 @@ vim.o.smartcase = true -- Case sensitive when caps is used vim.o.cursorline = true -- Highlight current line vim.o.winborder = "single" -- Borders around popups like when you press leader for keybinds vim.opt.signcolumn = -'yes' -- TEST: Prohibit layout shifting by always showing the sign column (left of line numbers), you should see an icon there on this row. +"yes" -- TEST: Prohibit layout shifting by always showing the sign column (left of line numbers), you should see an icon there on this row. vim.o.updatetime = 250 -- Speed up the CursorHold autocmd event vim.o.timeoutlen = 300 -- Speed up completion of key event -- SECTION: Globals -vim.g.mapleader = ' ' -- Mapping leader to space. -vim.g.maplocalleader = ' ' -- Mapping leader to space. +vim.g.mapleader = " " -- Mapping leader to space. +vim.g.maplocalleader = " " -- Mapping leader to space. vim.g.have_nerd_font = true -- Enable nerd font -- SECTION: Lazy settings -- INFO: Lines in this function will be executed after main event loop is free, prohibiting startup lag. vim.schedule(function() - vim.opt.clipboard = 'unnamedplus' -- Share clipboard with system, comment if you want to keep it separate. + vim.opt.clipboard = "unnamedplus" -- Share clipboard with system, comment if you want to keep it separate. end) -- SECTION: Keybinds -- Source current file, helpful when editing this file. -vim.keymap.set('n', 'o', ':update :source') +vim.keymap.set("n", "o", ":update :source") -- Restart vim completely, you can then press CTRL + o to go back to the last file you had open. -vim.keymap.set('n', 'r', ':restart') +vim.keymap.set("n", "r", ":restart") -- Lets you use ESC to stop highlighting text that you have searched with '/' -vim.keymap.set('n', '', 'nohlsearch') +vim.keymap.set("n", "", "nohlsearch") -- Format the current buffer using the active lsp -vim.keymap.set('n', 'f', vim.lsp.buf.format, { desc = "Format buffer" }) +vim.keymap.set("n", "f", vim.lsp.buf.format, { desc = "Format buffer" }) -- Start the file picker in different modes -vim.keymap.set('n', 'sf', function() - require('mini.pick').builtin.files() +vim.keymap.set("n", "sf", function() + require("mini.pick").builtin.files() end, { desc = "Search files" }) -vim.keymap.set('n', 'sg', ":Pick grep_live", { desc = "Search file contents" }) -vim.keymap.set('n', 'sh', ":Pick help", { desc = "Search help pages" }) -vim.keymap.set('n', 'sr', ":Pick resume", { desc = "Resume last search" }) -vim.keymap.set('n', 'sb', ":Pick buffers", { desc = "Search buffers" }) +vim.keymap.set("n", "sg", ":Pick grep_live", { desc = "Search file contents" }) +vim.keymap.set("n", "sh", ":Pick help", { desc = "Search help pages" }) +vim.keymap.set("n", "sr", ":Pick resume", { desc = "Resume last search" }) +vim.keymap.set("n", "sb", ":Pick buffers", { desc = "Search buffers" }) -- Get help with keybinds -vim.keymap.set('n', '?', ":WhichKey", { desc = "Show keybinds" }) +vim.keymap.set("n", "?", ":WhichKey", { desc = "Show keybinds" }) -- File explorer -vim.keymap.set('n', '\\', ":Oil --float", { desc = "File explorer" }) +vim.keymap.set("n", "\\", ":Oil --float", { desc = "File explorer" }) + +-- Ai +vim.keymap.set("n", "ac", "ClaudeCode", { desc = "Toggle Claude" }) +vim.keymap.set("n", "af", "ClaudeCodeFocus", { desc = "Focus Claude" }) +vim.keymap.set("n", "ar", "ClaudeCode --resume", { desc = "Resume Claude" }) +vim.keymap.set("n", "aC", "ClaudeCode --continue", { desc = "Continue Claude" }) +vim.keymap.set("n", "am", "ClaudeCodeSelectModel", { desc = "Select Claude model" }) +vim.keymap.set("n", "ab", "ClaudeCodeAdd %", { desc = "Add current buffer" }) +vim.keymap.set("v", "as", "ClaudeCodeSend", { desc = "Send to Claude" }) +vim.keymap.set("n", "aa", "ClaudeCodeDiffAccept", { desc = "Accept diff" }) +vim.keymap.set("n", "ad", "ClaudeCodeDiffDeny", { desc = "Deny diff" }) +-- File tree keymap (conditional on filetype) +vim.api.nvim_create_autocmd("FileType", { + pattern = { "NvimTree", "neo-tree", "oil", "minifiles", "netrw" }, + callback = function(ev) + vim.keymap.set("n", "as", "ClaudeCodeTreeAdd", + { desc = "Add file", buffer = ev.buf }) + end, +}) -- SECTION: Install packages vim.pack.add({ - 'https://github.com/catppuccin/nvim', -- color scheme - 'https://github.com/nvim-mini/mini.pick', -- File picker, grep - 'https://github.com/nvim-mini/mini.pairs', -- Auto create {}, (), [] - pairs etc. - 'https://github.com/nvim-mini/mini.notify', -- Popup notifications - 'https://github.com/nvim-mini/mini.completion', -- Autocomplete, needs snippets and icons - 'https://github.com/nvim-mini/mini.snippets', -- Snippets - 'https://github.com/nvim-mini/mini.icons', -- Icons - 'https://github.com/nvim-mini/mini.cursorword', -- Highlight word under cursor - 'https://github.com/nvim-mini/mini.hipatterns', -- Highlight todos and rgb colors - 'https://github.com/nvim-mini/mini.statusline', -- Statusline at the bottom - 'https://github.com/neovim/nvim-lspconfig', -- Language servers - 'https://github.com/mason-org/mason.nvim', -- LSP deps installer - 'https://github.com/mason-org/mason-lspconfig.nvim', -- Lets you install mason tooling using lsp names - 'https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim', -- Automatically install mason tooling - 'https://github.com/folke/lazydev.nvim', -- Automatically resolve vim api paths. - 'https://github.com/folke/which-key.nvim', -- Shortcut hints (bar at the bottom when pressing space) - 'https://github.com/nvim-lua/plenary.nvim', -- Helper lua functions, dep of todo-comments. - 'https://github.com/nvim-treesitter/nvim-treesitter', -- Syntax highlighting - 'https://github.com/stevearc/oil.nvim', -- File explorer + "https://github.com/catppuccin/nvim", -- color scheme + "https://github.com/nvim-mini/mini.pick", -- File picker, grep + "https://github.com/nvim-mini/mini.pairs", -- Auto create {}, (), [] - pairs etc. + "https://github.com/nvim-mini/mini.notify", -- Popup notifications + "https://github.com/nvim-mini/mini.completion", -- Autocomplete, needs snippets and icons + "https://github.com/nvim-mini/mini.snippets", -- Snippets + "https://github.com/nvim-mini/mini.icons", -- Icons + "https://github.com/nvim-mini/mini.cursorword", -- Highlight word under cursor + "https://github.com/nvim-mini/mini.hipatterns", -- Highlight todos and rgb colors + "https://github.com/nvim-mini/mini.statusline", -- Statusline at the bottom + "https://github.com/neovim/nvim-lspconfig", -- Language servers + "https://github.com/mason-org/mason.nvim", -- LSP deps installer + "https://github.com/mason-org/mason-lspconfig.nvim", -- Lets you install mason tooling using lsp names + "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim", -- Automatically install mason tooling + "https://github.com/folke/lazydev.nvim", -- Automatically resolve vim api paths. + "https://github.com/folke/which-key.nvim", -- Shortcut hints (bar at the bottom when pressing space) + "https://github.com/nvim-lua/plenary.nvim", -- Helper lua functions, dep of todo-comments. + "https://github.com/nvim-treesitter/nvim-treesitter", -- Syntax highlighting + "https://github.com/stevearc/oil.nvim", -- File explorer + "https://github.com/folke/snacks.nvim", -- Dep for claudecode + "https://github.com/coder/claudecode.nvim", -- Claude code }) -- SECTION: Colorscheme @@ -88,59 +109,52 @@ vim.cmd("colorscheme catppuccin-mocha") -- Folke require("lazydev").setup() -local wk = require('which-key') +local wk = require("which-key") wk.setup() wk.add({ - { 's', group = '[S]earch' }, - { 'o', group = 'Source current file', mode = { 'n' } }, + { "s", group = "[S]earch" }, + { "o", group = "Source current file", mode = { "n" } }, + { "a", group = "AI/Claude Code" }, }) - --- require('todo-comments').setup({ --- keywords = { --- SECTION = { --- icon = "󰚟 ", --- color = "hint", --- } --- } --- }) - -- Mini -local MiniPicker = require('mini.pick').setup({ +local MiniPicker = require("mini.pick").setup({ source = { - show = require('mini.pick').default_show, + show = require("mini.pick").default_show, }, }) -require('mini.pairs').setup() -require('mini.notify').setup() -require('mini.icons').setup() +require("mini.pairs").setup() +require("mini.notify").setup() +require("mini.icons").setup() MiniIcons.tweak_lsp_kind() -require('mini.snippets').setup() -require('mini.completion').setup() -require('mini.cursorword').setup() -require('mini.hipatterns').setup({ +require("mini.snippets").setup() +require("mini.completion").setup() +require("mini.cursorword").setup() +require("mini.hipatterns").setup({ highlighters = { - todo = { pattern = '%f[%w]()TODO()%f[%W]', group = 'MiniHipatternsTodo' }, - section = { pattern = '%f[%w]()SECTION()%f[%W]', group = 'MiniHipatternsNote' }, - warning = { pattern = '%f[%w]()WARNING()%f[%W]', group = 'MiniHipatternsHack' }, - error = { pattern = '%f[%w]()ERROR()%f[%W]', group = 'MiniHipatternsTodo' }, - } + todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" }, + section = { pattern = "%f[%w]()SECTION()%f[%W]", group = "MiniHipatternsNote" }, + warning = { pattern = "%f[%w]()WARNING()%f[%W]", group = "MiniHipatternsHack" }, + error = { pattern = "%f[%w]()ERROR()%f[%W]", group = "MiniHipatternsTodo" }, + }, }) -require('mini.statusline').setup() -require('oil').setup() +require("mini.statusline").setup() +require("oil").setup() -require('nvim-treesitter').setup({ - auto_install = true +require("claudecode").setup() + +require("nvim-treesitter").setup({ + auto_install = true, }) -local vue_language_server_path = vim.fn.stdpath('data') .. - "/mason/packages/vue-language-server/node_modules/@vue/language-server" -local tsserver_filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' } +local vue_language_server_path = vim.fn.stdpath("data") + .. "/mason/packages/vue-language-server/node_modules/@vue/language-server" +local tsserver_filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" } local vue_plugin = { - name = '@vue/typescript-plugin', + name = "@vue/typescript-plugin", location = vue_language_server_path, - languages = { 'vue' }, - configNamespace = 'typescript', + languages = { "vue" }, + configNamespace = "typescript", } local vtsls_config = { settings = { @@ -166,39 +180,38 @@ local ts_ls_config = { local vue_ls_config = {} -- If you are on most recent `nvim-lspconfig` -- nvim 0.11 or above -vim.lsp.config('vtsls', vtsls_config) -vim.lsp.config('vue_ls', vue_ls_config) -vim.lsp.config('ts_ls', ts_ls_config) +vim.lsp.config("vtsls", vtsls_config) +vim.lsp.config("vue_ls", vue_ls_config) +vim.lsp.config("ts_ls", ts_ls_config) -- LSP Language Server require("mason").setup() require("mason-lspconfig").setup({ -- Install lsp deps here ensure_installed = { - 'lua_ls', - 'ts_ls', - 'vue_ls', - 'ansiblels', - 'eslint', + "lua_ls", + "ts_ls", + "vue_ls", + "ansiblels", + "eslint", }, automatic_enable = { - exclude = { 'ts_ls', 'vue_ls' } - } + exclude = { "ts_ls", "vue_ls" }, + }, }) require("mason-tool-installer").setup({ -- Install deps of lsp deps here ensure_installed = { - 'tree-sitter-cli', - 'markdownlint', - 'vue-language-server' - } + "tree-sitter-cli", + "markdownlint", + "vue-language-server", + }, }) -vim.lsp.enable({ 'ts_ls', 'vue_ls' }) - +vim.lsp.enable({ "ts_ls", "vue_ls" }) -- SECTION: Helpers local function client_supports_method(client, method, bufnr) - if vim.fn.has 'nvim-0.11' == 1 then + if vim.fn.has("nvim-0.11") == 1 then return client:supports_method(method, bufnr) else return client.supports_method(method, { bufnr = bufnr }) @@ -206,16 +219,16 @@ local function client_supports_method(client, method, bufnr) end -- SECTION: Autocommands -vim.api.nvim_create_autocmd('TextYankPost', { - desc = 'Highlight when yanking (copying) text', - group = vim.api.nvim_create_augroup('highlight-yank', { clear = true }), +vim.api.nvim_create_autocmd("TextYankPost", { + desc = "Highlight when yanking (copying) text", + group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }), callback = function() vim.highlight.on_yank() end, }) -- Actions on LspAttach -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('my.lsp', {}), +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("my.lsp", {}), callback = function(ev) local client = assert(vim.lsp.get_client_by_id(ev.data.client_id)) @@ -233,20 +246,20 @@ vim.api.nvim_create_autocmd('LspAttach', { -- end -- Swap out the icons in the leftmost column and show inlay hints - vim.diagnostic.config { + vim.diagnostic.config({ severity_sort = true, - float = { border = 'rounded', source = 'if_many' }, + float = { border = "rounded", source = "if_many" }, underline = { severity = vim.diagnostic.severity.ERROR }, signs = vim.g.have_nerd_font and { text = { - [vim.diagnostic.severity.ERROR] = '󰅚 ', - [vim.diagnostic.severity.WARN] = '󰀪 ', - [vim.diagnostic.severity.INFO] = '󰋽 ', - [vim.diagnostic.severity.HINT] = '󰌶 ', + [vim.diagnostic.severity.ERROR] = "󰅚 ", + [vim.diagnostic.severity.WARN] = "󰀪 ", + [vim.diagnostic.severity.INFO] = "󰋽 ", + [vim.diagnostic.severity.HINT] = "󰌶 ", }, } or {}, virtual_text = { - source = 'if_many', + source = "if_many", spacing = 2, format = function(diagnostic) local diagnostic_message = { @@ -258,6 +271,6 @@ vim.api.nvim_create_autocmd('LspAttach', { return diagnostic_message[diagnostic.severity] end, }, - } + }) end, }) diff --git a/requirements.ps1 b/requirements.ps1 index 2aa7fa2..25d9a00 100644 --- a/requirements.ps1 +++ b/requirements.ps1 @@ -159,7 +159,8 @@ $packages = @( "GnuWin32.gzip", "rustlang.rustup", "Mozilla.Firefox", - "SlackTechnologies.Slack" + "SlackTechnologies.Slack", + "Anthropic.ClaudeCode" ) $ExtraPackages = @( "mRemoteNG.mRemoteNG", @@ -189,7 +190,8 @@ if ($Flags.WingetEnabled) $toolPaths = @( "C:\ProgramData\chocolatey\tools", "C:\Program Files (x86)\GnuWin32\bin", - "$env:LOCALAPPDATA\bob_bin" + "$env:LOCALAPPDATA\bob_bin", + "$env:LOCALAPPDATA\Programs\Git\git-bash.exe" ) $currentPath = [Environment]::GetEnvironmentVariable("Path", "User") @@ -235,7 +237,7 @@ if ($Flags.ChocoEnabled) Write-Divider Write-Host "Installing Chocolatey Packages" ## Nvim requirements from choco, needs to be run as admin - Start-Process pwsh -Verb RunAs -ArgumentList "-Command", "choco install make unzip ripgrep zig" + Start-Process pwsh -Verb RunAs -ArgumentList "-Command", "choco install make unzip ripgrep zig kubelogin" } if ($Flags.PipEnabled)