diff --git a/Dockerfile b/Dockerfile index 6678267..a01a028 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,6 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt-get update \ && apt-get install -y software-properties-common \ && add-apt-repository ppa:fish-shell/release-3 \ - && add-apt-repository ppa:neovim-ppa/unstable \ && apt-get update \ && apt-get install -y --no-install-recommends \ autoconf \ @@ -70,7 +69,6 @@ RUN apt-get update \ m4 \ make \ ncal \ - neovim \ net-tools \ openjdk-17-jdk \ openssh-client \ @@ -107,17 +105,31 @@ RUN apt-get update \ && echo 'permit persist :wheel as root' > /etc/doas.conf # command line utilities -ENV DO_VERSION 28.0.1 +ENV DO_VERSION 28.0.4 ENV DO_URL https://download.docker.com/linux/static/stable/x86_64/docker-${DO_VERSION}.tgz -ENV DC_VERSION v2.33.1 +ENV DC_VERSION v2.35.0 ENV DC_URL https://github.com/docker/compose/releases/download/${DC_VERSION}/docker-compose-linux-x86_64 -ENV BX_VERSION v0.21.2 +ENV BX_VERSION v0.22.0 ENV BX_URL https://github.com/docker/buildx/releases/download/${BX_VERSION}/buildx-${BX_VERSION}.linux-amd64 +ENV EXERCISM_VERSION 3.5.4 +ENV EXERCISM_FILE exercism-${EXERCISM_VERSION}-linux-x86_64.tar.gz +ENV EXERCISM_URL https://github.com/exercism/cli/releases/download/v${EXERCISM_VERSION}/${EXERCISM_FILE} +ENV NVIM_VERSION v0.11.0 +ENV NVIM_FILE nvim-linux-x86_64.tar.gz +ENV NVIM_URL https://github.com/neovim/neovim/releases/download/${NVIM_VERSION}/${NVIM_FILE} RUN curl -sS https://starship.rs/install.sh | sh -s -- --yes \ && mkdir /tmp/download \ + && echo 'install docker' \ && curl -L ${DO_URL} | tar -zx -C /tmp/download \ && chgrp --recursive docker /tmp/download \ && mv /tmp/download/docker/* /usr/local/bin \ + && echo 'install exercism' \ + && curl -L -XGET ${EXERCISM_URL} | tar -xz -C /tmp/download \ + && mv /tmp/download/exercism /usr/local/bin \ + && echo 'install neovim' \ + && curl -L -XGET ${NVIM_URL} | tar -xz -C /tmp/download \ + && mv /tmp/download/nvim-linux-x86_64 /usr/local/src/nvim \ + && ln -s /usr/local/src/nvim/bin/nvim /usr/local/bin/nvim \ && rm -rf /tmp/download \ && mkdir -p /usr/local/lib/docker/cli-plugins \ && curl -L ${DC_URL} -o /usr/local/lib/docker/cli-plugins/docker-compose \ @@ -182,7 +194,7 @@ RUN fish -c true \ && echo 'alias nh="nvim --listen 0.0.0.0:6666 --headless &> /dev/null"' >> ${XDG_CONFIG_HOME}/fish/config.fish # git configuration -ENV NEOVIM_KICKSTART_VERSION e947649cb0ee5ac3c75593288df04d4f58359106 +ENV NEOVIM_KICKSTART_VERSION d350db2449da40df003c40d440f909d74e2d4e70 COPY ./patch/kickstart.nvim/updates.patch /tmp COPY ./config/nvim/lua/custom/plugins/init.lua /tmp RUN git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME}"/nvim \ diff --git a/config/aider/config.yml b/config/aider/config.yml index 814756a..aae7457 100644 --- a/config/aider/config.yml +++ b/config/aider/config.yml @@ -1,7 +1,7 @@ --- -model: gemini-2.0.flash-001 -weak-model: gemini-2.0.flash-001 -editor-model: claude-3-7-sonnet-20250219 +model: gemini/gemini-2.5-pro-preview-03-25 +weak-model: gemini/gemini-2.0-flash-001 +editor-model: gemini/gemini-2.5-pro-preview-03-25 editor: nvim git: true gitignore: true diff --git a/config/mise/config.toml b/config/mise/config.toml index 5d4a9ee..e75d6b1 100644 --- a/config/mise/config.toml +++ b/config/mise/config.toml @@ -4,36 +4,37 @@ "aqua:FiloSottile/age" = "1.2.1" "aqua:ajeetdsouza/zoxide" = "0.9.7" "aqua:alexellis/k3sup" = "0.13.8" -"aqua:astral-sh/uv" = "0.6.12" -"aqua:aws/aws-cli" = "2.25.9" +"aqua:astral-sh/uv" = "0.6.16" +"aqua:aws/aws-cli" = "2.26.7" "aqua:bitwarden/clients" = "cli-v2025.2.0" -"aqua:dagger/dagger" = "0.18.1" -"aqua:derailed/k9s" = "0.40.10" +"aqua:dagger/dagger" = "0.18.4" +"aqua:derailed/k9s" = "0.50.4" "aqua:eksctl-io/eksctl" = "0.207.0" -"aqua:evilmartians/lefthook" = "1.11.6" -"aqua:eza-community/eza" = "0.21.0" -"aqua:github-cli" = "2.69.0" -"aqua:go-task/task" = "3.42.1" -"aqua:hashicorp/terraform" = "1.11.3" -"aqua:helm/helm" = "3.17.2" -"aqua:junegunn/fzf" = "0.61.0" +"aqua:evilmartians/lefthook" = "1.11.11" +"aqua:eza-community/eza" = "0.21.1" +"aqua:github-cli" = "2.70.0" +"aqua:go-task/task" = "3.43.2" +"aqua:hashicorp/terraform" = "1.11.4" +"aqua:helm/helm" = "3.17.3" +"aqua:junegunn/fzf" = "0.61.3" "aqua:k3d-io/k3d" = "5.8.3" "aqua:kubernetes-sigs/kind" = "0.27.0" "aqua:kubernetes/kubectl" = "1.32.3" -"aqua:sbstp/kubie" = "0.25.1" +"aqua:sbstp/kubie" = "0.25.2" "aqua:sharkdp/bat" = "0.25.0" "aqua:starship/starship" = "1.22.1" "aqua:tilt-dev/ctlptl" = "0.8.40" -"aqua:tilt-dev/tilt" = "0.34.0" -"aqua:xo/usql" = "0.19.19" +"aqua:tilt-dev/tilt" = "0.34.2" +"aqua:xo/usql" = "0.19.21" "go:github.com/bloznelis/typioca" = "3.1.0" -"npm:@anthropic-ai/claude-code" = "0.2.61" -"pipx:aider-chat" = { version = "0.80.2", uvx_args = "--python 3.12.7 --with google-generativeai" } -"pipx:vectorcode" = { version = "0.5.5", uvx_args = "--python 3.13.2" } +"npm:@anthropic-ai/claude-code" = "0.2.78" +"pipx:aider-chat" = { version = "0.82.2", uvx_args = "--python 3.12.7 --with google-generativeai" } +"pipx:vectorcode" = { version = "0.5.6", uvx_args = "--python 3.13.2" } "ubi:Samyak2/toipe" = "0.5.0" "ubi:hlsxx/tukai" = "0.2.2" "ubi:jdx/usage" = "2.0.7" "ubi:max-niederman/ttyper" = "1.6.0" +"ubi:supabase/cli" = { version = "2.22.4", exe = "supabase" } "ubi:wagoodman/dive" = "0.13.1" elixir = "1.18.3" erlang = "27.3.3" @@ -43,7 +44,7 @@ luajit = "2.0.5" node = "22.14.0" poetry = "2.1.2" python = "3.13.3" -r = "4.4.3" +r = "4.5.0" rust = "1.86.0" yarn = "1.22.22" diff --git a/config/nvim/lua/custom/plugins/init.lua b/config/nvim/lua/custom/plugins/init.lua index d624ae4..6bba1f2 100644 --- a/config/nvim/lua/custom/plugins/init.lua +++ b/config/nvim/lua/custom/plugins/init.lua @@ -150,13 +150,26 @@ return { lazy = false, version = false, opts = { - provider = 'claude', - auto_suggestion_provider = 'claude', + provider = 'gemini_pro', + auto_suggestion_provider = 'gemini_flash', claude = { - endpoint = 'https://api.anthropic.com', model = 'claude-3-7-sonnet-20250219', temperature = 0, - max_tokens = 4096, + max_tokens = 20480, + }, + vendors = { + gemini_pro = { + __inherited_from = 'gemini', + model = 'gemini-2.5-pro-exp-03-25', + temperature = 0.25, + max_tokens = 204800, + }, + gemini_flash = { + __inherited_from = 'gemini', + model = 'gemini-2.0-flash', + temperature = 0.25, + max_tokens = 20480, + }, }, behaviour = { auto_suggestions = false, @@ -236,10 +249,12 @@ return { }, build = 'make', dependencies = { + 'nvim-treesitter/nvim-treesitter', 'stevearc/dressing.nvim', 'nvim-lua/plenary.nvim', 'MunifTanjim/nui.nvim', 'hrsh7th/nvim-cmp', + 'nvim-telescope/telescope.nvim', 'nvim-tree/nvim-web-devicons', { 'HakonHarnes/img-clip.nvim', diff --git a/patch/kickstart.nvim/updates.patch b/patch/kickstart.nvim/updates.patch index abaeac5..cfa82ce 100644 --- a/patch/kickstart.nvim/updates.patch +++ b/patch/kickstart.nvim/updates.patch @@ -1,5 +1,5 @@ diff --git a/init.lua b/init.lua -index cbf9ff6..0205207 100644 +index 776c687..040cf83 100644 --- a/init.lua +++ b/init.lua @@ -91,7 +91,7 @@ vim.g.mapleader = ' ' @@ -39,7 +39,18 @@ index cbf9ff6..0205207 100644 -- [[ Basic Keymaps ]] -- See `:help vim.keymap.set()` -@@ -682,6 +690,27 @@ require('lazy').setup({ +@@ -632,7 +640,9 @@ require('lazy').setup({ + [vim.diagnostic.severity.HINT] = '󰌶 ', + }, + } or {}, +- virtual_text = { ++ virtual_text = false, ++ -- Display multiline diagnostics on virtual lines ++ virtual_lines = { + source = 'if_many', + spacing = 2, + format = function(diagnostic) +@@ -676,6 +686,28 @@ require('lazy').setup({ -- ts_ls = {}, -- @@ -53,6 +64,7 @@ index cbf9ff6..0205207 100644 + }, + }, + gopls = {}, ++ harper_ls = {}, + helm_ls = {}, + html = { filetypes = { 'html', 'twig', 'hbs' } }, + jsonls = { @@ -67,7 +79,7 @@ index cbf9ff6..0205207 100644 lua_ls = { -- cmd = { ... }, -- filetypes = { ... }, -@@ -696,6 +725,32 @@ require('lazy').setup({ +@@ -690,6 +722,32 @@ require('lazy').setup({ }, }, }, @@ -93,14 +105,14 @@ index cbf9ff6..0205207 100644 + ["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}", + ["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "*docker-compose*.{yml,yaml}", + -- kubernetes = "*.{yml,yaml}", -+ } -+ } -+ } -+ } ++ }, ++ }, ++ }, ++ }, } -- Ensure the servers and tools above are installed -@@ -727,6 +782,33 @@ require('lazy').setup({ +@@ -721,6 +779,33 @@ 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 {}) @@ -134,15 +146,33 @@ index cbf9ff6..0205207 100644 require('lspconfig')[server_name].setup(server) end, }, -@@ -884,6 +966,7 @@ require('lazy').setup({ - -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it - group_index = 0, - }, -+ { name = 'supermavem' }, - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - { name = 'path' }, -@@ -899,19 +982,37 @@ require('lazy').setup({ +@@ -801,6 +886,8 @@ require('lazy').setup({ + opts = {}, + }, + 'folke/lazydev.nvim', ++ 'saghen/blink.compat', ++ 'supermaven-inc/supermaven-nvim', + }, + --- @module 'blink.cmp' + --- @type blink.cmp.Config +@@ -846,9 +933,15 @@ require('lazy').setup({ + }, + + sources = { +- default = { 'lsp', 'path', 'snippets', 'lazydev' }, ++ default = { 'lsp', 'path', 'snippets', 'lazydev', 'supermaven' }, + providers = { + lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, ++ supermaven = { ++ name = 'supermanve', ++ module = 'blink.compat.source', ++ score_offset = 100, ++ async = true, ++ }, + }, + }, + +@@ -874,19 +967,39 @@ require('lazy').setup({ -- -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`. 'folke/tokyonight.nvim', @@ -151,6 +181,7 @@ index cbf9ff6..0205207 100644 + 'wnkz/monoglow.nvim', + 'rjshkhr/shadow.nvim', + 'sainnhe/gruvbox-material', ++ 'slugbyte/lackluster.nvim', + }, priority = 1000, -- Make sure to load this before all the other start plugins. config = function() @@ -173,20 +204,21 @@ index cbf9ff6..0205207 100644 + -- For monoglow the following variants area available: + -- 'monoglow-z', 'monoglow-lack', or 'monoglow-void'. + -- gruvbox-material configuration based on https://github.com/gonstoll/dotfiles/blob/2d7ec07bd475c73e7ba1a48b27a2a85315bfd2d1/.config/nvim/lua/plugins/colorscheme/gruvbox.lua#L5-L13 -+ vim.g.gruvbox_material_better_performance = 1 -+ vim.g.gruvbox_material_foreground = 'material' -+ vim.g.gruvbox_material_background = 'medium' -+ vim.g.gruvbox_material_ui_contrast = 'low' -+ vim.g.gruvbox_material_float_style = 'dim' -+ vim.g.gruvbox_material_enable_italic = 0 -+ vim.g.gruvbox_material_disable_italic_comment = 1 -+ vim.g.gruvbox_material_cursor = 'red' -+ vim.g.gruvbox_material_disable_terminal_colors = 1 -+ vim.cmd.colorscheme 'gruvbox-material' ++ -- vim.g.gruvbox_material_better_performance = 1 ++ -- vim.g.gruvbox_material_foreground = 'material' ++ -- vim.g.gruvbox_material_background = 'medium' ++ -- vim.g.gruvbox_material_ui_contrast = 'low' ++ -- vim.g.gruvbox_material_float_style = 'dim' ++ -- vim.g.gruvbox_material_enable_italic = 0 ++ -- vim.g.gruvbox_material_disable_italic_comment = 1 ++ -- vim.g.gruvbox_material_cursor = 'red' ++ -- vim.g.gruvbox_material_disable_terminal_colors = 1 ++ -- vim.cmd.colorscheme 'gruvbox-material' ++ vim.cmd.colorscheme 'lackluster' end, }, -@@ -961,7 +1062,39 @@ require('lazy').setup({ +@@ -936,7 +1049,39 @@ require('lazy').setup({ main = 'nvim-treesitter.configs', -- Sets main module to use for opts -- [[ Configure Treesitter ]] See `:help nvim-treesitter` opts = { @@ -227,7 +259,7 @@ index cbf9ff6..0205207 100644 -- Autoinstall languages that are not installed auto_install = true, highlight = { -@@ -991,17 +1124,17 @@ require('lazy').setup({ +@@ -966,17 +1111,17 @@ require('lazy').setup({ -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- -- require 'kickstart.plugins.debug', diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index 0bb7f7c..df67449 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -13,6 +13,7 @@ fi commands=( "ctlptl" "eksctl" + "exercism" "helm" "k3d" "k9s" @@ -20,6 +21,7 @@ commands=( "kubectl" "lefthook" "mise" + "supabase" ) echo "create completion for ${commands[@]}" for cmd in ${commands[@]}; do