From 72c8a19f67c2e04e5ba0a138aceed9c4dca63564 Mon Sep 17 00:00:00 2001 From: Spencer Gilbert Date: Wed, 26 Aug 2026 11:44:46 -0400 Subject: [PATCH] [fish,mise,nvim,pi] Backport changes for work macOS machine --- fish/conf.d/10-env.fish | 6 ++++-- mise.macos.toml | 5 ++++- mise.toml | 4 ++-- nvim/init.lua | 28 +++++++++++++++++----------- nvim/lsp/bashls.lua | 5 +++++ nvim/lsp/gopls.lua | 9 +++++++-- nvim/lsp/helm_ls.lua | 5 ----- nvim/lsp/helmls.lua | 5 +++++ nvim/lsp/terraformls.lua | 5 +++++ nvim/lsp/yaml_language_server.lua | 5 ----- nvim/lsp/yamlls.lua | 17 +++++++++++++++++ nvim/lua/filetypes/helm.lua | 17 ++++++++++++----- pi/settings.json | 6 +++--- 13 files changed, 81 insertions(+), 36 deletions(-) create mode 100644 nvim/lsp/bashls.lua delete mode 100644 nvim/lsp/helm_ls.lua create mode 100644 nvim/lsp/helmls.lua create mode 100644 nvim/lsp/terraformls.lua delete mode 100644 nvim/lsp/yaml_language_server.lua create mode 100644 nvim/lsp/yamlls.lua diff --git a/fish/conf.d/10-env.fish b/fish/conf.d/10-env.fish index fee9f0a..14c1fa9 100644 --- a/fish/conf.d/10-env.fish +++ b/fish/conf.d/10-env.fish @@ -11,6 +11,8 @@ set -gx CODEX_HOME $XDG_CONFIG_HOME/codex set -gx PI_CODING_AGENT_DIR $XDG_CONFIG_HOME/pi set -gx PI_CODING_AGENT_SESSION_DIR $XDG_STATE_HOME/pi/sessions -if not set -q SSH_CONNECTION - set -gx KAGI_API_KEY "$(op read op://Private/Pi/kagi)" +if not set -q SSH_CONNECTION; and not set -q KAGI_API_KEY + if set -l kagi_api_key (op read op://Private/Pi/kagi 2>/dev/null) + set -gx KAGI_API_KEY "$kagi_api_key" + end end diff --git a/mise.macos.toml b/mise.macos.toml index 25e4a34..d98608e 100644 --- a/mise.macos.toml +++ b/mise.macos.toml @@ -1,11 +1,14 @@ [bootstrap.packages] "brew:fish" = "latest" +# "brew:gnupg" = "latest" +# "brew:pinentry-mac" = "latest" # 1password app is MDM managed "brew-cask:1password-cli" = "latest" "brew-cask:claude" = "latest" +# "brew-cask:docker-desktop" = "latest" "brew-cask:ghostty" = "latest" "brew-cask:notion" = "latest" -# docker-desktop +"brew-cask:orion" = "latest" [dotfiles] "~/.config/claude/CLAUDE.md" = { source = "shared/AGENTS.md" } diff --git a/mise.toml b/mise.toml index 3af9b38..87afbfc 100644 --- a/mise.toml +++ b/mise.toml @@ -1,4 +1,4 @@ -min_version = { hard = "2026.7.7" } +min_version = { soft = "2026.7.7" } [settings] experimental = true @@ -37,6 +37,6 @@ node = "lts" pi = "latest" ripgrep = "latest" starship = "latest" -"npm:tree-sitter-cli" = "0.22.6" +tree-sitter = "latest" uv = "latest" zoxide = "latest" diff --git a/nvim/init.lua b/nvim/init.lua index db0ad2e..0513e07 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -21,8 +21,9 @@ vim.cmd.colorscheme('catppuccin-frappe') treesitter_languages = { 'lua', 'go', 'yaml', 'helm', 'bash', 'json', 'toml', 'markdown', 'markdown_inline', } -treesitter_fold_langs = { 'lua', 'go', 'yaml', 'helm' } +treesitter_fold_langs = { 'lua', 'go', 'yaml', 'yaml.helm-values', 'helm' } require('nvim-treesitter').setup {} +vim.treesitter.language.register('yaml', 'yaml.helm-values') for _, lang in ipairs(treesitter_languages) do require('nvim-treesitter').install({ lang }) end @@ -55,6 +56,7 @@ local clipboard_group = vim.api.nvim_create_augroup('clipboard', { clear = true vim.api.nvim_create_autocmd('UIEnter', { group = clipboard_group, desc = 'Sync OS clipboard via unnamedplus', + once = true, callback = function() vim.o.clipboard = 'unnamedplus' end, @@ -83,14 +85,18 @@ vim.o.completeopt = 'menuone,noselect,popup' vim.keymap.set('t', '', '') -- Map , , , to navigate between windows in any modes -vim.keymap.set({ 't', 'i' }, '', 'h') -vim.keymap.set({ 't', 'i' }, '', 'j') -vim.keymap.set({ 't', 'i' }, '', 'k') -vim.keymap.set({ 't', 'i' }, '', 'l') -vim.keymap.set({ 'n' }, '', 'h') -vim.keymap.set({ 'n' }, '', 'j') -vim.keymap.set({ 'n' }, '', 'k') -vim.keymap.set({ 'n' }, '', 'l') +vim.keymap.set('i', '', 'h') +vim.keymap.set('i', '', 'j') +vim.keymap.set('i', '', 'k') +vim.keymap.set('i', '', 'l') +vim.keymap.set('t', '', 'h') +vim.keymap.set('t', '', 'j') +vim.keymap.set('t', '', 'k') +vim.keymap.set('t', '', 'l') +vim.keymap.set('n', '', 'h') +vim.keymap.set('n', '', 'j') +vim.keymap.set('n', '', 'k') +vim.keymap.set('n', '', 'l') -- Telescope keybindings local builtin = require('telescope.builtin') @@ -116,7 +122,7 @@ local indent_group = vim.api.nvim_create_augroup('indent', { clear = true }) vim.api.nvim_create_autocmd('FileType', { group = indent_group, desc = 'Set buffer-local indentation for specific filetypes', - pattern = { 'json', 'helm.tmpl', 'yaml', 'toml' }, + pattern = { 'json', 'helm', 'yaml', 'toml' }, callback = function() vim.bo.tabstop = 2 vim.bo.shiftwidth = 2 @@ -166,4 +172,4 @@ vim.api.nvim_create_autocmd('LspAttach', { }) -- Enable language servers (loaded from lsp/.lua) -vim.lsp.enable({ 'gopls', 'helm_ls', 'yaml_language_server' }) +vim.lsp.enable({ 'bashls', 'gopls', 'helmls', 'terraformls', 'yamlls' }) diff --git a/nvim/lsp/bashls.lua b/nvim/lsp/bashls.lua new file mode 100644 index 0000000..b72317b --- /dev/null +++ b/nvim/lsp/bashls.lua @@ -0,0 +1,5 @@ +return { + cmd = { 'bash-language-server', 'start' }, + filetypes = { 'bash', 'sh' }, + root_markers = { '.git' }, +} diff --git a/nvim/lsp/gopls.lua b/nvim/lsp/gopls.lua index b87eec0..d3badc7 100644 --- a/nvim/lsp/gopls.lua +++ b/nvim/lsp/gopls.lua @@ -1,5 +1,10 @@ return { - cmd = { 'gopls', 'serve' }, - filetypes = { 'go', 'gomod', 'gosum', 'gowork' }, + cmd = { 'gopls' }, + filetypes = { 'go', 'gomod', 'gowork' }, root_markers = { 'go.work', 'go.mod', '.git' }, + settings = { + gopls = { + gofumpt = true, + } + } } diff --git a/nvim/lsp/helm_ls.lua b/nvim/lsp/helm_ls.lua deleted file mode 100644 index eec4cb8..0000000 --- a/nvim/lsp/helm_ls.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - cmd = { 'helm-ls', 'yaml' }, - filetypes = { 'helm', 'helm.tmpl' }, - root_markers = { '.git' }, -} diff --git a/nvim/lsp/helmls.lua b/nvim/lsp/helmls.lua new file mode 100644 index 0000000..e026f32 --- /dev/null +++ b/nvim/lsp/helmls.lua @@ -0,0 +1,5 @@ +return { + cmd = { 'helm_ls', 'serve' }, + filetypes = { 'helm', 'yaml.helm-values' }, + root_markers = { 'Chart.yaml', '.git' }, +} diff --git a/nvim/lsp/terraformls.lua b/nvim/lsp/terraformls.lua new file mode 100644 index 0000000..2da8777 --- /dev/null +++ b/nvim/lsp/terraformls.lua @@ -0,0 +1,5 @@ +return { + cmd = { 'terraform-ls', 'serve' }, + filetypes = { 'terraform', 'terraform-vars' }, + root_markers = { '.terraform', 'terragrunt.hcl', '.git' }, +} diff --git a/nvim/lsp/yaml_language_server.lua b/nvim/lsp/yaml_language_server.lua deleted file mode 100644 index 0fca5ae..0000000 --- a/nvim/lsp/yaml_language_server.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - cmd = { 'yaml-language-server', '--stdio' }, - filetypes = { 'yaml', 'yml' }, - root_markers = { '.git' }, -} diff --git a/nvim/lsp/yamlls.lua b/nvim/lsp/yamlls.lua new file mode 100644 index 0000000..52f919c --- /dev/null +++ b/nvim/lsp/yamlls.lua @@ -0,0 +1,17 @@ +return { + cmd = { 'yaml-language-server', '--stdio' }, + filetypes = { 'yaml' }, + root_markers = { '.git' }, + settings = { + redhat = { + telemetry = { + enabled = false, + }, + }, + yaml = { + schemaStore = { + enable = false, + }, + }, + }, +} diff --git a/nvim/lua/filetypes/helm.lua b/nvim/lua/filetypes/helm.lua index 916485c..9ef35b9 100644 --- a/nvim/lua/filetypes/helm.lua +++ b/nvim/lua/filetypes/helm.lua @@ -1,13 +1,20 @@ -- Detect Helm template files and assign the 'helm.tmpl' filetype. -- This overrides the built-in '.tpl → smarty' detection when a .tpl file -- is inside a Helm chart's templates/ directory. +-- Detect Helm templates and values files, but only when they belong to a +-- chart. These patterns override Neovim's extension-based filetype detection. +local function in_helm_chart(filetype) + return function(path) + if vim.fs.root(path, 'Chart.yaml') then + return filetype + end + end +end vim.filetype.add({ - filename = { - ['_helpers.tpl'] = 'helm.tmpl', - ['helpers.tpl'] = 'helm.tmpl', - }, pattern = { - ['.*/templates/.*%.tpl$'] = 'helm.tmpl', + ['.*/templates/.*%.tpl$'] = in_helm_chart('helm'), + ['.*/templates/.*%.ya?ml$'] = in_helm_chart('helm'), + [',*/values[^/]*%.ya?ml$'] = in_helm_chart('yaml.helm-values'), }, }) diff --git a/pi/settings.json b/pi/settings.json index 34da64b..e9e7446 100644 --- a/pi/settings.json +++ b/pi/settings.json @@ -1,23 +1,23 @@ { "externalEditor": "nvim", "theme": "catppuccin-frappe", + "defaultThinkingLevel": "medium", {%- if os() == "macos" %} "defaultProvider": "openai", + "defaultModel": "gpt-5.6-sol", "enabledModels": [], - "packages": [], {%- else %} "defaultProvider": "llama.cpp", "defaultModel": "qwen3.6-35b-a3b", - "defaultThinkingLevel": "medium", "enabledModels": [ "ds4/**", "llama.cpp/**", "opencode-go/**" ], +{%- endif %} "packages": [ "https://tangled.org/spencergilbert.dev/pi-pkg" ], -{%- endif %} "showCacheMissNotices": true, "npmCommand": [ "mise", -- 2.51.2