feat: upgrade runtimes and neovim config (#216)

# Runtime

<details>
<summary><h2>Upgrades</h2></summary>

* `docker` from 28.0.1 to 28.0.4
* `docker compose` from 2.33.1 to 2.35.0
* `docker buildx` from 0.21.2 to 0.22.0
* `aqua:astral-sh/uv` from 0.6.12 to 0.6.16
* `aqua:aws/aws-cli` from 2.25.9 to 2.26.7
* `aqua:dagger/dagger` from 0.18.1 to 0.18.4
* `aqua:derailed/k9s` from 0.40.10 to 0.50.4
* `aqua:evilmartians/lefthook` from 1.11.11 to 1.11.6
* `aqua:eza-community/eza` from 0.21.0 to 0.21.1
* `aqua:github-cli` from 2.69.0 to 2.70.0
* `aqua:go-task/task` from 3.42.1 to 3.43.2
* `aqua:hashicorp/terraform` from 1.11.3 to 1.11.4
* `aqua:helm/helm` from 3.17.2 to 3.17.3
* `aqua:junegunn/fzf` from 0.61.0 to 0.61.3
* `aqua:sbstp/kubie` from 0.25.1 to 0.25.2
* `aqua:tilt-dev/tilt` from 0.34.0 to 0.34.2
* `aqua:xo/usql` from 0.19.19 to 0.19.21
* `npm:@anthropic-ai/claude-code` from 0.2.61 to 0.2.78
* `pipx:aider-chat` from 0.80.2 to 0.82.2
* `pipx:vectorcode` from 0.5.5 to 0.5.6
* `r` from 4.4.3 to 4.5.0
</details>

<details>
<summary><h2>Additions</h2></summary>

* `exercism`
* `neovim`
  * move from `ppa` to release package
* `supabase`
</details>

# Others

<details>
<summary><h2><code>neovim</code></h2></summary>

* Upgrade to latest [commit in `master`](d350db2449)
* Add `harper.ls` to check on writing
* Use [`virtual_lines`](https://neovim.io/doc/user/diagnostic.html#vim.diagnostic.Opts.VirtualLines) on [`vim.diagnostic`](https://neovim.io/doc/user/diagnostic.html#vim.diagnostic.Opts)
* Configure `supermaven` as a source in `blink.cmp`
* Use `lackluster` as colorscheme
* Configure `gemini` ai models in `avante`
</details>

<details>
<summary><h2>Autocompletion</h2></summary>

* `exercism`
* `supabase`
</details>

<details>
<summary><h2><code>aider</code></h2></summary>

* Configure `gemini`
</details>

Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #216
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
This commit is contained in:
João Paulo Dubas 2025-04-24 11:43:39 +00:00 committed by João Paulo Dubas
parent f20ec96f4b
commit 016271c3be
6 changed files with 122 additions and 60 deletions

View File

@ -17,7 +17,6 @@ ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y software-properties-common \ && apt-get install -y software-properties-common \
&& add-apt-repository ppa:fish-shell/release-3 \ && add-apt-repository ppa:fish-shell/release-3 \
&& add-apt-repository ppa:neovim-ppa/unstable \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
@ -70,7 +69,6 @@ RUN apt-get update \
m4 \ m4 \
make \ make \
ncal \ ncal \
neovim \
net-tools \ net-tools \
openjdk-17-jdk \ openjdk-17-jdk \
openssh-client \ openssh-client \
@ -107,17 +105,31 @@ RUN apt-get update \
&& echo 'permit persist :wheel as root' > /etc/doas.conf && echo 'permit persist :wheel as root' > /etc/doas.conf
# command line utilities # 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 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 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 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 \ RUN curl -sS https://starship.rs/install.sh | sh -s -- --yes \
&& mkdir /tmp/download \ && mkdir /tmp/download \
&& echo 'install docker' \
&& curl -L ${DO_URL} | tar -zx -C /tmp/download \ && curl -L ${DO_URL} | tar -zx -C /tmp/download \
&& chgrp --recursive docker /tmp/download \ && chgrp --recursive docker /tmp/download \
&& mv /tmp/download/docker/* /usr/local/bin \ && 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 \ && rm -rf /tmp/download \
&& mkdir -p /usr/local/lib/docker/cli-plugins \ && mkdir -p /usr/local/lib/docker/cli-plugins \
&& curl -L ${DC_URL} -o /usr/local/lib/docker/cli-plugins/docker-compose \ && 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 && echo 'alias nh="nvim --listen 0.0.0.0:6666 --headless &> /dev/null"' >> ${XDG_CONFIG_HOME}/fish/config.fish
# git configuration # git configuration
ENV NEOVIM_KICKSTART_VERSION e947649cb0ee5ac3c75593288df04d4f58359106 ENV NEOVIM_KICKSTART_VERSION d350db2449da40df003c40d440f909d74e2d4e70
COPY ./patch/kickstart.nvim/updates.patch /tmp COPY ./patch/kickstart.nvim/updates.patch /tmp
COPY ./config/nvim/lua/custom/plugins/init.lua /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 \ RUN git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME}"/nvim \

View File

@ -1,7 +1,7 @@
--- ---
model: gemini-2.0.flash-001 model: gemini/gemini-2.5-pro-preview-03-25
weak-model: gemini-2.0.flash-001 weak-model: gemini/gemini-2.0-flash-001
editor-model: claude-3-7-sonnet-20250219 editor-model: gemini/gemini-2.5-pro-preview-03-25
editor: nvim editor: nvim
git: true git: true
gitignore: true gitignore: true

View File

@ -4,36 +4,37 @@
"aqua:FiloSottile/age" = "1.2.1" "aqua:FiloSottile/age" = "1.2.1"
"aqua:ajeetdsouza/zoxide" = "0.9.7" "aqua:ajeetdsouza/zoxide" = "0.9.7"
"aqua:alexellis/k3sup" = "0.13.8" "aqua:alexellis/k3sup" = "0.13.8"
"aqua:astral-sh/uv" = "0.6.12" "aqua:astral-sh/uv" = "0.6.16"
"aqua:aws/aws-cli" = "2.25.9" "aqua:aws/aws-cli" = "2.26.7"
"aqua:bitwarden/clients" = "cli-v2025.2.0" "aqua:bitwarden/clients" = "cli-v2025.2.0"
"aqua:dagger/dagger" = "0.18.1" "aqua:dagger/dagger" = "0.18.4"
"aqua:derailed/k9s" = "0.40.10" "aqua:derailed/k9s" = "0.50.4"
"aqua:eksctl-io/eksctl" = "0.207.0" "aqua:eksctl-io/eksctl" = "0.207.0"
"aqua:evilmartians/lefthook" = "1.11.6" "aqua:evilmartians/lefthook" = "1.11.11"
"aqua:eza-community/eza" = "0.21.0" "aqua:eza-community/eza" = "0.21.1"
"aqua:github-cli" = "2.69.0" "aqua:github-cli" = "2.70.0"
"aqua:go-task/task" = "3.42.1" "aqua:go-task/task" = "3.43.2"
"aqua:hashicorp/terraform" = "1.11.3" "aqua:hashicorp/terraform" = "1.11.4"
"aqua:helm/helm" = "3.17.2" "aqua:helm/helm" = "3.17.3"
"aqua:junegunn/fzf" = "0.61.0" "aqua:junegunn/fzf" = "0.61.3"
"aqua:k3d-io/k3d" = "5.8.3" "aqua:k3d-io/k3d" = "5.8.3"
"aqua:kubernetes-sigs/kind" = "0.27.0" "aqua:kubernetes-sigs/kind" = "0.27.0"
"aqua:kubernetes/kubectl" = "1.32.3" "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:sharkdp/bat" = "0.25.0"
"aqua:starship/starship" = "1.22.1" "aqua:starship/starship" = "1.22.1"
"aqua:tilt-dev/ctlptl" = "0.8.40" "aqua:tilt-dev/ctlptl" = "0.8.40"
"aqua:tilt-dev/tilt" = "0.34.0" "aqua:tilt-dev/tilt" = "0.34.2"
"aqua:xo/usql" = "0.19.19" "aqua:xo/usql" = "0.19.21"
"go:github.com/bloznelis/typioca" = "3.1.0" "go:github.com/bloznelis/typioca" = "3.1.0"
"npm:@anthropic-ai/claude-code" = "0.2.61" "npm:@anthropic-ai/claude-code" = "0.2.78"
"pipx:aider-chat" = { version = "0.80.2", uvx_args = "--python 3.12.7 --with google-generativeai" } "pipx:aider-chat" = { version = "0.82.2", uvx_args = "--python 3.12.7 --with google-generativeai" }
"pipx:vectorcode" = { version = "0.5.5", uvx_args = "--python 3.13.2" } "pipx:vectorcode" = { version = "0.5.6", uvx_args = "--python 3.13.2" }
"ubi:Samyak2/toipe" = "0.5.0" "ubi:Samyak2/toipe" = "0.5.0"
"ubi:hlsxx/tukai" = "0.2.2" "ubi:hlsxx/tukai" = "0.2.2"
"ubi:jdx/usage" = "2.0.7" "ubi:jdx/usage" = "2.0.7"
"ubi:max-niederman/ttyper" = "1.6.0" "ubi:max-niederman/ttyper" = "1.6.0"
"ubi:supabase/cli" = { version = "2.22.4", exe = "supabase" }
"ubi:wagoodman/dive" = "0.13.1" "ubi:wagoodman/dive" = "0.13.1"
elixir = "1.18.3" elixir = "1.18.3"
erlang = "27.3.3" erlang = "27.3.3"
@ -43,7 +44,7 @@ luajit = "2.0.5"
node = "22.14.0" node = "22.14.0"
poetry = "2.1.2" poetry = "2.1.2"
python = "3.13.3" python = "3.13.3"
r = "4.4.3" r = "4.5.0"
rust = "1.86.0" rust = "1.86.0"
yarn = "1.22.22" yarn = "1.22.22"

View File

@ -150,13 +150,26 @@ return {
lazy = false, lazy = false,
version = false, version = false,
opts = { opts = {
provider = 'claude', provider = 'gemini_pro',
auto_suggestion_provider = 'claude', auto_suggestion_provider = 'gemini_flash',
claude = { claude = {
endpoint = 'https://api.anthropic.com',
model = 'claude-3-7-sonnet-20250219', model = 'claude-3-7-sonnet-20250219',
temperature = 0, 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 = { behaviour = {
auto_suggestions = false, auto_suggestions = false,
@ -236,10 +249,12 @@ return {
}, },
build = 'make', build = 'make',
dependencies = { dependencies = {
'nvim-treesitter/nvim-treesitter',
'stevearc/dressing.nvim', 'stevearc/dressing.nvim',
'nvim-lua/plenary.nvim', 'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim', 'MunifTanjim/nui.nvim',
'hrsh7th/nvim-cmp', 'hrsh7th/nvim-cmp',
'nvim-telescope/telescope.nvim',
'nvim-tree/nvim-web-devicons', 'nvim-tree/nvim-web-devicons',
{ {
'HakonHarnes/img-clip.nvim', 'HakonHarnes/img-clip.nvim',

View File

@ -1,5 +1,5 @@
diff --git a/init.lua b/init.lua diff --git a/init.lua b/init.lua
index cbf9ff6..0205207 100644 index 776c687..040cf83 100644
--- a/init.lua --- a/init.lua
+++ b/init.lua +++ b/init.lua
@@ -91,7 +91,7 @@ vim.g.mapleader = ' ' @@ -91,7 +91,7 @@ vim.g.mapleader = ' '
@ -39,7 +39,18 @@ index cbf9ff6..0205207 100644
-- [[ Basic Keymaps ]] -- [[ Basic Keymaps ]]
-- See `:help vim.keymap.set()` -- 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 = {}, -- ts_ls = {},
-- --
@ -53,6 +64,7 @@ index cbf9ff6..0205207 100644
+ }, + },
+ }, + },
+ gopls = {}, + gopls = {},
+ harper_ls = {},
+ helm_ls = {}, + helm_ls = {},
+ html = { filetypes = { 'html', 'twig', 'hbs' } }, + html = { filetypes = { 'html', 'twig', 'hbs' } },
+ jsonls = { + jsonls = {
@ -67,7 +79,7 @@ index cbf9ff6..0205207 100644
lua_ls = { lua_ls = {
-- cmd = { ... }, -- cmd = { ... },
-- filetypes = { ... }, -- 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/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}", + ["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "*docker-compose*.{yml,yaml}",
+ -- kubernetes = "*.{yml,yaml}", + -- kubernetes = "*.{yml,yaml}",
+ } + },
+ } + },
+ } + },
+ } + },
} }
-- Ensure the servers and tools above are installed -- 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 -- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls) -- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) 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) require('lspconfig')[server_name].setup(server)
end, end,
}, },
@@ -884,6 +966,7 @@ require('lazy').setup({ @@ -801,6 +886,8 @@ require('lazy').setup({
-- set group index to 0 to skip loading LuaLS completions as lazydev recommends it opts = {},
group_index = 0, },
}, 'folke/lazydev.nvim',
+ { name = 'supermavem' }, + 'saghen/blink.compat',
{ name = 'nvim_lsp' }, + 'supermaven-inc/supermaven-nvim',
{ name = 'luasnip' }, },
{ name = 'path' }, --- @module 'blink.cmp'
@@ -899,19 +982,37 @@ require('lazy').setup({ --- @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`. -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
'folke/tokyonight.nvim', 'folke/tokyonight.nvim',
@ -151,6 +181,7 @@ index cbf9ff6..0205207 100644
+ 'wnkz/monoglow.nvim', + 'wnkz/monoglow.nvim',
+ 'rjshkhr/shadow.nvim', + 'rjshkhr/shadow.nvim',
+ 'sainnhe/gruvbox-material', + 'sainnhe/gruvbox-material',
+ 'slugbyte/lackluster.nvim',
+ }, + },
priority = 1000, -- Make sure to load this before all the other start plugins. priority = 1000, -- Make sure to load this before all the other start plugins.
config = function() config = function()
@ -173,20 +204,21 @@ index cbf9ff6..0205207 100644
+ -- For monoglow the following variants area available: + -- For monoglow the following variants area available:
+ -- 'monoglow-z', 'monoglow-lack', or 'monoglow-void'. + -- '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 + -- 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_better_performance = 1
+ vim.g.gruvbox_material_foreground = 'material' + -- vim.g.gruvbox_material_foreground = 'material'
+ vim.g.gruvbox_material_background = 'medium' + -- vim.g.gruvbox_material_background = 'medium'
+ vim.g.gruvbox_material_ui_contrast = 'low' + -- vim.g.gruvbox_material_ui_contrast = 'low'
+ vim.g.gruvbox_material_float_style = 'dim' + -- vim.g.gruvbox_material_float_style = 'dim'
+ vim.g.gruvbox_material_enable_italic = 0 + -- vim.g.gruvbox_material_enable_italic = 0
+ vim.g.gruvbox_material_disable_italic_comment = 1 + -- vim.g.gruvbox_material_disable_italic_comment = 1
+ vim.g.gruvbox_material_cursor = 'red' + -- vim.g.gruvbox_material_cursor = 'red'
+ vim.g.gruvbox_material_disable_terminal_colors = 1 + -- vim.g.gruvbox_material_disable_terminal_colors = 1
+ vim.cmd.colorscheme 'gruvbox-material' + -- vim.cmd.colorscheme 'gruvbox-material'
+ vim.cmd.colorscheme 'lackluster'
end, 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 main = 'nvim-treesitter.configs', -- Sets main module to use for opts
-- [[ Configure Treesitter ]] See `:help nvim-treesitter` -- [[ Configure Treesitter ]] See `:help nvim-treesitter`
opts = { opts = {
@ -227,7 +259,7 @@ index cbf9ff6..0205207 100644
-- Autoinstall languages that are not installed -- Autoinstall languages that are not installed
auto_install = true, auto_install = true,
highlight = { 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). -- Uncomment any of the lines below to enable them (you will need to restart nvim).
-- --
-- require 'kickstart.plugins.debug', -- require 'kickstart.plugins.debug',

View File

@ -13,6 +13,7 @@ fi
commands=( commands=(
"ctlptl" "ctlptl"
"eksctl" "eksctl"
"exercism"
"helm" "helm"
"k3d" "k3d"
"k9s" "k9s"
@ -20,6 +21,7 @@ commands=(
"kubectl" "kubectl"
"lefthook" "lefthook"
"mise" "mise"
"supabase"
) )
echo "create completion for ${commands[@]}" echo "create completion for ${commands[@]}"
for cmd in ${commands[@]}; do for cmd in ${commands[@]}; do