1 Commits

Author SHA1 Message Date
8565609714 chore(deps): update dependency awscli to v2.18.0 2024-10-04 19:10:18 +00:00
18 changed files with 253 additions and 912 deletions

View File

@@ -1,28 +0,0 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[Makefile]
indent_style = tab
indent_size = 4
[*.lua]
indent_style = space
indent_size = 2
quote_style = single
[*.md]
trim_trailing_whitespace = false
max_line_length = 80
[*.sh]
indent_style = tab
indent_size = 4
[*.yml]
indent_style = space
indent_size = 2

View File

@@ -17,6 +17,7 @@ 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 \
@@ -68,7 +69,7 @@ RUN apt-get update \
locales \ locales \
m4 \ m4 \
make \ make \
ncal \ neovim \
net-tools \ net-tools \
openjdk-17-jdk \ openjdk-17-jdk \
openssh-client \ openssh-client \
@@ -85,7 +86,6 @@ RUN apt-get update \
uuid-dev \ uuid-dev \
wget \ wget \
xorg-dev \ xorg-dev \
xsel \
xsltproc \ xsltproc \
xz-utils \ xz-utils \
zlib1g-dev \ zlib1g-dev \
@@ -96,7 +96,7 @@ RUN apt-get update \
&& useradd \ && useradd \
--uid ${USER_UID} \ --uid ${USER_UID} \
--gid coder \ --gid coder \
--groups docker,wheel,sudo \ --groups docker,wheel \
--shell $(which fish) \ --shell $(which fish) \
--home-dir /home/coder \ --home-dir /home/coder \
--create-home \ --create-home \
@@ -105,31 +105,17 @@ 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.3.2 ENV DO_VERSION 27.3.1
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.38.2 ENV DC_VERSION v2.29.7
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.25.0 ENV BX_VERSION v0.17.1
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.3
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 \
@@ -153,6 +139,24 @@ ENV XDG_CACHE_HOME ${HOME}/.cache
ENV STARSHIP_CONFIG ${XDG_CONFIG_HOME}/starship/config.toml ENV STARSHIP_CONFIG ${XDG_CONFIG_HOME}/starship/config.toml
ENV PATH ${LOCAL_BIN_HOME}:$PATH ENV PATH ${LOCAL_BIN_HOME}:$PATH
# NOTE (jpd): the section below exists mainly to handle a project running elixir 1.11.
# It allows the usage of openssl 1.1 and a compatible elixir-ls.
# configure openssl 1.1
# this is needed to compile older erlang versions
# example: KERL_CONFIGURE_OPTIONS="-with-ssl=$HOME/.local/lib/ssl" mise install
RUN mkdir -p ${HOME}/.local/src \
&& cd ${HOME}/.local/src \
&& curl -L https://www.openssl.org/source/openssl-1.1.1m.tar.gz | tar -xz \
&& cd openssl-1.1.1m \
&& ./config --prefix=${HOME}/.local/lib/ssl --openssldir=${HOME}/.local/lib/ssl shared zlib \
&& make \
# && make test \
&& make install
# fetch elixir-ls to install custom releases
RUN git clone https://github.com/elixir-lsp/elixir-ls.git ${LOCAL_SRC_HOME}/elixir-ls
# command line utilities # command line utilities
ENV MISE_ENV_FILE .env ENV MISE_ENV_FILE .env
RUN curl https://mise.jdx.dev/install.sh | sh \ RUN curl https://mise.jdx.dev/install.sh | sh \
@@ -176,23 +180,52 @@ 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 3338d3920620861f8313a2745fd5d2be39f39534
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 \
&& cd ${XDG_CONFIG_HOME}/nvim \ && cd ${XDG_CONFIG_HOME}/nvim \
&& git reset --hard ${NEOVIM_KICKSTART_VERSION} \ && git reset --hard 7201dc480134f41dd1be1f8f9b8f8470aac82a3b \
&& git apply /tmp/updates.patch \ && git apply /tmp/updates.patch \
&& cp /tmp/init.lua ${XDG_CONFIG_HOME}/nvim/lua/custom/plugins \ && cp /tmp/init.lua ${XDG_CONFIG_HOME}/nvim/lua/custom/plugins \
&& nvim --headless "+Lazy! sync" +qa && nvim --headless "+Lazy! sync" +qa
# install mise plugins # install rtx plugins
RUN ${LOCAL_BIN_HOME}/mise plugins install --force --yes \ RUN ${LOCAL_BIN_HOME}/mise plugins install --force --yes \
age \
awscli \
bat \
bitwarden \
circleci-cli \
ctlptl \
dagger \
eksctl \
elixir \
erlang \
eza \
fzf \
helm \
k3d \
k3sup \
k9s \
kind \
kubectl \
kubie \
lefthook \
lua \ lua \
luajit \ luajit \
poetry \ poetry \
r \ r \
yarn ripgrep \
rust \
starship \
task \
terraform \
tilt \
tmux \
usage \
usql \
yarn \
zoxide
# configure git # configure git
ARG GIT_USER_EMAIL ARG GIT_USER_EMAIL
@@ -210,3 +243,4 @@ RUN git config --global user.email "${GIT_USER_EMAIL}" \
&& git config --global includeIf."gitdir:/opt/work/".path ${XDG_CONFIG_HOME}/git/work && git config --global includeIf."gitdir:/opt/work/".path ${XDG_CONFIG_HOME}/git/work
COPY ./scripts/docker-entrypoint.sh /usr/local/bin/docker-entrypoint COPY ./scripts/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
COPY ./scripts/elixir-ls-setup.sh /usr/local/bin/elixir-ls-setup

View File

@@ -16,18 +16,6 @@ patch_init_lua: ## create a patch file with the changes made in kickstart's init
patch_init_lua_dry_run: ## show the changes made in kickstart's init.lua file patch_init_lua_dry_run: ## show the changes made in kickstart's init.lua file
@cd $(neovim_config_dir) && git diff --patch init.lua @cd $(neovim_config_dir) && git diff --patch init.lua
.PHONY: diff_mcphub_config
diff_mcphub_config: ## compare host's mcphub config with repository's config
@nvim -d ~/.config/mcphub/servers.json ./config/mcphub/servers.json
.PHONY: diff_mise_config
diff_mise_config: ## compare host's mise config with repository's config
@nvim -d ~/.config/mise/config.toml ./config/mise/config.toml
.PHONY: diff_custom_neovim_config
diff_custom_neovim_config: ## compare host's custom neovim config with repository's config
@nvim -d ~/.config/nvim/lua/custom/plugins/init.lua ./config/nvim/lua/custom/plugins/init.lua
.PHONY: help .PHONY: help
help: ## show help message help: ## show help message
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

View File

@@ -1,13 +0,0 @@
---
reasoning-effort: medium
thinking-tokens: 8k
model: gemini/gemini-2.5-pro-preview-05-06
weak-model: gemini/gemini-2.0-flash-001
editor-model: gemini/gemini-2.5-pro-preview-05-06
editor: nvim
git: true
gitignore: true
auto-commits: false
read:
- CONVENTIONS.md
- CLAUDE.md

View File

@@ -1,43 +0,0 @@
ANTHROPIC_HOST: https://api.anthropic.com
GOOSE_PROVIDER: google
GOOSE_MODEL: gemini-2.5-pro-preview-05-06
extensions:
computercontroller:
bundled: true
display_name: Computer Controller
enabled: true
name: computercontroller
timeout: 600
type: builtin
context7:
args:
- dlx
- '@upstash/context7-mcp@latest'
bundled: null
cmd: pnpm
description: null
enabled: true
env_keys: []
envs: {}
name: context7
timeout: 600
type: stdio
developer:
bundled: true
display_name: Developer Tools
enabled: true
name: developer
timeout: 600
type: builtin
git:
args:
- mcp-server-git
bundled: null
cmd: uvx
description: null
enabled: true
env_keys: []
envs: {}
name: git
timeout: 600
type: stdio

View File

@@ -1,84 +0,0 @@
{
"mcpServers": {
"context7": {
"command": "pnpm",
"args": [
"dlx",
"@upstash/context7-mcp@latest"
]
},
"fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
]
},
"filesystem": {
"command": "pnpm",
"args": [
"dlx",
"@modelcontextprotocol/server-filesystem@latest",
"/opt/personal",
"/opt/work"
]
},
"git": {
"command": "uvx",
"args": [
"mcp-server-git"
]
},
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GH_TOKEN}"
}
},
"memory": {
"command": "pnpm",
"args": [
"dlx",
"@modelcontextprotocol/server-memory@latest"
]
},
"memory-bank": {
"command": "pnpm",
"args": [
"dlx",
"@allpepper/memory-bank-mcp@latest"
]
},
"sequential-thinking": {
"command": "pnpm",
"args": [
"dlx",
"@modelcontextprotocol/server-sequential-thinking@latest"
]
},
"serena": {
"command": "uvx",
"arg": [
"--from",
"git+https://github.com/oraios/serena",
"serena-mcp-server",
"--transport",
"stdio",
"--enable-web-dashboard",
"False",
"--enable-gui-log-window",
"False",
"--tool-timeout",
"30"
]
}
}
"nativeMCPServers": []
}

View File

@@ -1,55 +1,43 @@
[tools] [tools]
"aqua:BurntSushi/ripgrep" = "14.1.1" age = "1.2.0"
"aqua:FiloSottile/age" = "1.2.1" awscli = "2.18.0"
"aqua:ajeetdsouza/zoxide" = "0.9.8" bat = "0.24.0"
"aqua:alexellis/k3sup" = "0.13.10" bitwarden = "2024.7.2"
"aqua:astral-sh/uv" = "0.8.4" circleci-cli = "0.1.30549"
"aqua:aws/aws-cli" = "2.27.60" ctlptl = "0.8.31"
"aqua:bitwarden/clients" = "cli-v2025.5.0" dagger = "0.12.5"
"aqua:dagger/dagger" = "0.18.14" eksctl = "0.188.0"
"aqua:derailed/k9s" = "0.50.9" elixir = "1.17.3"
"aqua:eksctl-io/eksctl" = "0.211.0" erlang = "27.1.1"
"aqua:evilmartians/lefthook" = "1.12.2" eza = "0.19.0"
"aqua:eza-community/eza" = "0.23.0" fzf = "0.53.0"
"aqua:github-cli" = "2.76.1" go = "1.23.2"
"aqua:go-task/task" = "3.44.1" helm = "3.16.1"
"aqua:hashicorp/terraform" = "1.12.2" k3d = "5.7.3"
"aqua:helm/helm" = "3.18.4" k3sup = "0.13.7"
"aqua:jj-vcs/jj" = "0.31.0" k9s = "0.32.5"
"aqua:junegunn/fzf" = "0.65.0" kind = "0.24.0"
"aqua:k3d-io/k3d" = "5.8.3" kubectl = "1.31.1"
"aqua:kubernetes-sigs/kind" = "0.29.0" kubie = "0.23.1"
"aqua:kubernetes/kubectl" = "1.33.2" lefthook = "1.7.13"
"aqua:pnpm/pnpm" = "10.13.1"
"aqua:sbstp/kubie" = "0.26.0"
"aqua:sharkdp/bat" = "0.25.0"
"aqua:starship/starship" = "1.23.0"
"aqua:tilt-dev/ctlptl" = "0.8.42"
"aqua:tilt-dev/tilt" = "0.35.0"
"npm:@anthropic-ai/claude-code" = "1.0.61"
"npm:@google/gemini-cli" = "0.1.14"
"pipx:aider-chat" = { version = "0.85.2", uvx_args = "--python 3.12.10 --with google-generativeai" }
"pipx:httpie" = { version = "3.2.4", uvx_args = "--python 3.13.3" }
"ubi:Samyak2/toipe" = "0.5.0"
"ubi:comtrya/comtrya" = "0.9.2"
"ubi:hlsxx/tukai" = "0.2.2"
"ubi:jdx/usage" = "2.2.2"
"ubi:max-niederman/ttyper" = "1.6.0"
"ubi:sst/opencode" = "0.3.79"
"ubi:wagoodman/dive" = "0.13.1"
elixir = "1.18.4"
erlang = "28.0.2"
go = "1.24.5"
lua = "5.1.5" lua = "5.1.5"
luajit = "2.0.5" luajit = "2.0.5--2.4.4"
node = "24.4.1" node = "22.9.0"
python = "3.13.5" poetry = "1.8.3"
r = "4.5.1" python = "3.12.7"
rust = "1.88.0" r = "4.4.1"
ripgrep = "14.1.0"
rust = "1.81.0"
starship = "1.20.1"
task = "3.38.0"
terraform = "1.9.6"
tilt = "0.33.19"
tmux = "3.4"
usage = "0.3.0"
usql = "0.19.3"
yarn = "1.22.22"
zoxide = "0.9.4"
[settings] [settings]
experimental = true experimental = true
python_compile = true python_compile = true
idiomatic_version_file_enable_tools = ["go", "ruby", "python"]
[env]

View File

@@ -105,406 +105,43 @@ return {
config = true, config = true,
}, },
{ {
'jpalardy/vim-slime', 'EvWilson/slimux.nvim',
init = function() lazy = true,
vim.g.slime_target = 'tmux'
vim.g.slime_no_mappings = true
end,
keys = {
{ '<leader>xr', '<Plug>SlimeMotionSend', mode = 'n', desc = 'Slime send motion' },
{ '<leader>xz', ":<C-u>'<,'>SlimeSend<CR>", mode = 'v', desc = 'Slime send currently highlighted text' },
{ '<leader>xz', '<Plug>SlimeLineSend', mode = 'n', desc = 'Slime send line' },
{ '<leader>xc', '<Plug>SlimeConfig', mode = 'n', desc = 'Slime configuration' },
},
config = function()
vim.g.slime_input_pid = false
vim.g.slime_suggest_default = true
vim.g.slime_menu_config = false
vim.g.slime_neovim_ignore_unlisted = false
vim.g.slime_bracketed_paste = true
end,
},
{
'ravitemer/mcphub.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
},
cmd = 'MCPHub',
build = 'bundled_build.lua',
opts = {
port = 37373,
config = vim.fn.expand '~/.config/mcphub/servers.json',
native_servers = {},
auto_approve = true,
auto_toggle_mcp_servers = true,
extensions = {},
ui = {
window = {
width = 0.8,
height = 0.8,
relative = 'editor',
zindex = 50,
border = 'rounded',
},
wo = {},
},
use_bundled_binary = true,
log = {
level = vim.log.levels.WARN,
prefix = '[MCPHub]',
},
},
},
{
'olimorris/codecompanion.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
{
'MeanderingProgrammer/render-markdown.nvim',
opts = {
file_types = { 'markdown', 'codecompanion' },
},
ft = { 'markdown', 'codecompanion' },
},
},
opts = function() opts = function()
local status_ok, slimux = pcall(require, 'slimux')
if not status_ok then
return {}
end
return { return {
display = { target_socket = slimux.get_tmux_socket(),
action_palette = { target_pane = string.format('%s.1', slimux.get_tmux_window()),
width = 95, }
height = 15, end,
prompt = 'Prompt', keys = function()
provide = 'telescope', local status_ok, which_key = pcall(require, 'which-key')
}, if status_ok then
which_key.add {
{ '<leader>m', group = 'Toggle ter[m]inal' },
}
end
local slimux_status_ok, slimux = pcall(require, 'slimux')
if not slimux_status_ok then
return {}
end
return {
{
'<leader>xr',
slimux.send_highlighted_text,
mode = 'v',
desc = 'Send currently highlighted text to configured tmux pane',
}, },
adapters = { {
gemini_pro = function() '<leader>r',
return require('codecompanion.adapters').extend('gemini', { slimux.send_paragraph_text,
name = 'gemini_pro', mode = 'n',
schema = { desc = 'Send paragraph under cursor to configured tmux pane',
model = {
default = 'gemini-2.5-pro',
},
},
})
end,
gemini_flash = function()
return require('codecompanion.adapters').extend('gemini', {
name = 'gemini_flash',
schema = {
model = {
default = 'gemini-2.5-flash',
},
},
})
end,
},
extensions = {
vectorcode = {
opts = {
add_tool = true,
add_slash_command = true,
tool_opts = {},
},
},
mcphub = {
callback = 'mcphub.extensions.codecompanion',
opts = {
make_slash_commands = true,
make_vars = true,
show_result_in_chat = true,
},
},
},
strategies = {
chat = { adapter = 'gemini_pro' },
inline = { adapter = 'gemini_flash' },
}, },
} }
end, end,
keys = {
{
'<leader>aa',
'<cmd>CodeCompanionActions<cr>',
mode = { 'n', 'v' },
desc = 'CodeCompaion actions',
noremap = true,
silent = true,
},
{
'<leader>at',
'<cmd>CodeCompanionChat Toggle<cr>',
mode = { 'n', 'v' },
desc = 'CodeCompanion toggle chat',
noremap = true,
silent = true,
},
{
'ga',
'<cmd>CodeCompanionChat add<cr>',
mode = 'v',
desc = 'CodeCompanion add to chat',
noremap = true,
silent = true,
},
},
},
{
'supermaven-inc/supermaven-nvim',
opts = {
keymaps = {
accept_suggestion = '<Tab>',
clear_suggestion = '<C-]>',
accept_word = '<C-j>',
},
},
},
{
'azorng/goose.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
{
'MeanderingProgrammer/render-markdown.nvim',
opts = {
file_types = { 'markdown', 'goose' },
anti_conceal = { enabled = false },
},
},
},
opts = {
prefered_picker = 'telescope',
default_global_keymaps = false,
ui = {
window_widht = 0.3,
input_height = 0.2,
fullscreen = false,
layout = 'right',
floating_height = 0.9,
display_model = true,
display_goose_mode = true,
},
providers = {
anthropic = {
'claude-sonnet-4-20250514',
},
gemini = {
'gemini-2.5-pro',
'gemini-2.5-flash',
},
groq = {
'deepseek-r1-distill-llama-70b',
'qwen-qwq-32b',
},
},
},
keys = {
{ '<leader>gg', '<cmd>Goose<cr>', mode = 'n', desc = 'Toggle goose' },
{ '<leader>gi', '<cmd>GooseOpenInput<cr>', mode = 'n', desc = 'Open goose input' },
{ '<leader>gI', '<cmd>GooseOpenInputNewSession<cr>', mode = 'n', desc = 'Open goose input in new session' },
{ '<leader>go', '<cmd>GooseOpenOutput<cr>', mode = 'n', desc = 'Open goose output' },
{ '<leader>gt', '<cmd>GooseToggleFocus<cr>', mode = 'n', desc = 'Toggle focus between goose and last window' },
{ '<leader>gq', '<cmd>GooseClose<cr>', mode = 'n', desc = 'Close goose' },
{ '<leader>gf', '<cmd>GooseToggleFullscreen<cr>', mode = 'n', desc = 'Toggle goose fullscreen' },
{ '<leader>gsn', '<cmd>GooseSelectSession<cr>', mode = 'n', desc = 'Select and load a goose session' },
-- { '<leader>gmc', '<cmd>GooseModeChat<cr>', mode = 'n', desc = 'Set goose mode to `chat`' },
-- { '<leader>gma', '<cmd>GooseModeAuto<cr>', mode = 'n', desc = 'Set goose mode to `auto`' },
{ '<leader>gp', '<cmd>GooseConfigureProvider<cr>', mode = 'n', desc = 'Quick provider and model switch from predefined list' },
{ '<leader>gd', '<cmd>GooseDiff<cr>', mode = 'n', desc = 'Opens a diff tab of a modified file since the last goose prompt' },
{ '<leader>g]', '<cmd>GooseDiffNext<cr>', mode = 'n', desc = 'Navigate to next file diff' },
{ '<leader>g[', '<cmd>GooseDiffPrev<cr>', mode = 'n', desc = 'Navigate to previous file diff' },
{ '<leader>gc', '<cmd>GooseDiffClose<cr>', mode = 'n', desc = 'Close diff view tab and return to normal editing' },
{ '<leader>gra', '<cmd>GooseDiffRevertAll<cr>', mode = 'n', desc = 'Revert all file changes since the last goose prompt' },
{ '<leader>grt', '<cmd>GooseDiffRevertThis<cr>', mode = 'n', desc = 'Revert current file changes since the last goose prompt' },
},
},
{
'yetone/avante.nvim',
build = 'make',
event = 'VeryLazy',
version = false,
dependencies = {
'nvim-treesitter/nvim-treesitter',
'stevearc/dressing.nvim',
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-telescope/telescope.nvim',
'nvim-tree/nvim-web-devicons',
{
-- 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,
},
},
},
{
'MeanderingProgrammer/render-markdown.nvim',
opts = {
file_types = { 'markdown', 'Avante' },
},
ft = { 'markdown', 'Avante' },
},
},
opts = {
mappings = {
ask = '<leader>ua',
edit = '<leader>ue',
refresh = '<leader>ur',
diff = {
ours = 'co',
theirs = 'ct',
all_theirs = 'ca',
both = 'cb',
cursor = 'cc',
next = ']x',
prev = '[x',
},
suggestion = {
accept = '<M-l>',
next = '<M-]>',
prev = '<M-[>',
dismiss = '<C-]>',
},
jump = {
next = ']]',
prev = '[[',
},
submit = {
normal = '<CR>',
insert = '<C-s>',
},
sidebar = {
apply_all = 'A',
apply_cursor = 'a',
switch_windows = '<Tab>',
reverse_switch_windows = '<S-Tab>',
},
},
-- The custom_tools type supports both a list and a function that returns a list. Using a function here prevents requiring mcphub before it's loaded
custom_tools = function()
return {
require('mcphub.extensions.avante').mcp_tool(),
}
end,
hints = { enabled = true },
provider = 'gemini-pro',
-- The system_prompt type supports both a string and a function that returns a string. Using a function here allows dynamically updating the prompt with `mcphub`
system_prompt = function()
local hub = require('mcphub').get_hub_instance()
return hub and hub:get_active_servers_prompt() or ''
end,
providers = {
['deepseek-r1-local'] = {
__inherited_from = 'ollama',
api_key_name = '',
endpoint = 'http://172.30.64.1:10000',
model = 'deepseek-r1:14b',
},
['gemma3-local'] = {
__inherited_from = 'ollama',
api_key_name = '',
endpoint = 'http://172.30.64.1:10000',
model = 'gemma3:12b',
},
['qwen3-local'] = {
__inherited_from = 'ollama',
api_key_name = '',
endpoint = 'http://172.30.64.1:10000',
model = 'qwen3:14b',
},
['gemini-pro'] = {
__inherited_from = 'gemini',
model = 'gemini-2.5-pro',
timeout = 600000,
extra_request_body = { max_tokens = 40960 },
},
['gemini-flash'] = {
__inherited_from = 'gemini',
model = 'gemini-2.5-flash',
timeout = 600000,
extra_request_body = { max_tokens = 20480 },
},
['claude-sonnet-4'] = {
__inherited_from = 'claude',
model = 'claude-sonnet-4-20250514',
timeout = 600000,
extra_request_body = { max_tokens = 20480 },
},
groq = {
__inherited_from = 'openai',
api_key_name = 'GROQ_API_KEY',
endpoint = 'https://api.groq.com/openai/v1/',
model = 'deepseek-r1-distill-llama-70b',
},
},
},
},
{
'sphamba/smear-cursor.nvim',
opts = {
cursor_color = '#ff8800',
gamma = 1,
hide_target_hack = true,
stiffness = 0.3,
trailing_exponent = 10,
trailing_stiffness = 0.1,
},
},
{
'greggh/claude-code.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
},
opts = {
window = {
split_ratio = 0.5,
position = 'botright',
enter_insert = true,
hide_numbers = true,
hide_signcolumn = true,
},
refresh = {
enable = true,
updatetime = 100,
timer_interval = 1000,
show_notifications = true,
},
git = {
use_git_root = true,
},
shell = {
separator = '&&',
pushd_cmd = 'pushd',
popd_cmd = 'popd',
},
command = 'claude',
command_variants = {
continue = '--continue', -- Resume the most recent conversation
resume = '--resume', -- Display an interactive conversation picker
verbose = '--verbose', -- Enable verbose logging with full turn-by-turn output
},
keymaps = {
toggle = {
normal = '<C-_>',
terminal = '<C-_>',
variants = {
continue = '<leader>cC',
verbose = '<leader>cV',
},
},
window_navigation = true,
scrolling = true,
},
},
}, },
} }

View File

@@ -40,6 +40,7 @@ set -s escape-time 0
# Status bar styling and content # Status bar styling and content
set -g status-bg black set -g status-bg black
set -g status-fg white set -g status-fg white
# set -g status-left "#$"
# Don't prompt to kill panes/windows # Don't prompt to kill panes/windows
bind-key x kill-pane bind-key x kill-pane
@@ -65,10 +66,8 @@ set -g history-limit 50000
# list plugins # list plugins
set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'fabioluciano/tmux-tokyo-night' set -g @plugin 'fabioluciano/tmux-tokyo-night'
set -g @plugin 'Morantron/tmux-fingers'
set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tmux-yank'
# tokyo night configuration
set -g @theme_plugins 'datetime'
# load/install plugins # load/install plugins
run '~/.config/tmux/plugins/tpm/tpm' run '~/.config/tmux/plugins/tpm/tpm'

View File

@@ -1,14 +0,0 @@
---
session_name: rpi
start_directory: /opt/personal
windows:
- window_name: rpi
focus: true
layout: tiled
start_directory: labs
panes:
- focus: true
shell_command: ssh rpi00
- shell_command: ssh rpi01
- shell_command: ssh rpi02
- shell_command: ssh rpi03

View File

@@ -8,3 +8,21 @@ windows:
panes: panes:
- focus: true - focus: true
- pane - pane
- window_name: support
layout: even-vertical
start_directory: support
panes:
- shell_command:
- docker compose exec pgcli bash
- pane
- window_name: local
layout: even-vertical
start_directory: local
panes:
- pane
- pane
- window_name: remote
layout: even-vertical
panes:
- pane
- pane

View File

@@ -1,4 +0,0 @@
{
"host": "chroma",
"port": "8000"
}

View File

@@ -1,56 +1,28 @@
--- ---
services: services:
nvim: nvim:
build: build: .
context: .
args:
GIT_USER_EMAIL: ${NVIM_GIT_USER_EMAIL:-nobody@example.com}
GIT_USER_NAME: ${NVIM_GIT_USER_NAME:-noboby}
image: 'joaodubas/nvim:${NVIM_TAG:-latest}' image: 'joaodubas/nvim:${NVIM_TAG:-latest}'
init: true init: true
restart: unless-stopped restart: unless-stopped
hostname: local hostname: local
pull_policy: never
entrypoint: sleep entrypoint: sleep
command: infinity command: infinity
environment:
GH_TOKEN: &github_token ${NVIM_GH_TOKEN:-no-token}
GITHUB_TOKEN: *github_token
COMPOSE_BAKE: 'true'
volumes: volumes:
- './config/atuin:/home/coder/.config/atuin' - './config/atuin:/home/coder/.config/atuin'
- './config/git:/home/coder/.config/git' - './config/git:/home/coder/.config/git'
- './config/goose:/home/coder/.config/goose'
- './config/mcphub:/home/coder/.config/mcphub'
- './config/mise:/home/coder/.config/mise' - './config/mise:/home/coder/.config/mise'
- './config/nvim/lua/custom:/home/coder/.config/nvim/lua/custom' - './config/nvim/lua/custom:/home/coder/.config/nvim/lua/custom'
- './config/starship:/home/coder/.config/starship' - './config/starship:/home/coder/.config/starship'
- './config/tmux:/home/coder/.config/tmux' - './config/tmux:/home/coder/.config/tmux'
- './config/tmuxp:/home/coder/.config/tmuxp' - './config/tmuxp:/home/coder/.config/tmuxp'
- './config/vectorcode:/home/coder/.config/vectorcode'
- 'home_cache:/home/coder/.cache' - 'home_cache:/home/coder/.cache'
- 'home_local_share:/home/coder/.local/share' - 'home_local_share:/home/coder/.local/share'
- 'home_local_state:/home/coder/.local/state' - 'home_local_state:/home/coder/.local/state'
- 'home_plugins_tmux:/home/coder/.config/tmux/plugins' - 'home_plugins_tmux:/home/coder/.config/tmux/plugins'
- 'home_supermaven:/home/coder/.supermaven'
chroma:
image: 'ghcr.io/chroma-core/chroma:1.0.15'
init: true
restart: unless-stopped
hostname: chroma
environment:
IS_PERSISTENT: 'true'
PERSISTENT_DIRECTORY: /data
volumes:
- 'chroma_data:/data'
ports:
- '${IDE_CHROMA_PORT:-18000:8000}'
volumes: volumes:
home_cache: {} home_cache: {}
home_local_share: {} home_local_share: {}
home_local_state: {} home_local_state: {}
home_plugins_tmux: {} home_plugins_tmux: {}
home_supermaven: {}
chroma_data: {}

View File

@@ -1,5 +1,5 @@
diff --git a/init.lua b/init.lua diff --git a/init.lua b/init.lua
index b98ffc6..22b2196 100644 index ea86b79..93250ab 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 = ' '
@@ -10,23 +10,23 @@ index b98ffc6..22b2196 100644
+vim.g.have_nerd_font = true +vim.g.have_nerd_font = true
-- [[ Setting options ]] -- [[ Setting options ]]
-- See `:help vim.o` -- See `:help vim.opt`
@@ -102,10 +102,10 @@ vim.g.have_nerd_font = false @@ -102,10 +102,10 @@ vim.g.have_nerd_font = false
vim.o.number = true vim.opt.number = true
-- You can also add relative line numbers, to help with jumping. -- You can also add relative line numbers, to help with jumping.
-- Experiment for yourself to see if you like it! -- Experiment for yourself to see if you like it!
--- vim.o.relativenumber = true --- vim.opt.relativenumber = true
+vim.o.relativenumber = true +vim.opt.relativenumber = true
-- Enable mouse mode, can be useful for resizing splits for example! -- Enable mouse mode, can be useful for resizing splits for example!
-vim.o.mouse = 'a' -vim.opt.mouse = 'a'
+vim.o.mouse = '' +vim.opt.mouse = ''
-- Don't show the mode, since it's already in the status line -- Don't show the mode, since it's already in the status line
vim.o.showmode = false vim.opt.showmode = false
@@ -166,6 +166,14 @@ vim.o.scrolloff = 10 @@ -157,6 +157,14 @@ vim.opt.cursorline = true
-- See `:help 'confirm'` -- Minimal number of screen lines to keep above and below the cursor.
vim.o.confirm = true vim.opt.scrolloff = 10
+-- Set foldmethod +-- Set foldmethod
+-- See `:help foldmethod` +-- See `:help foldmethod`
@@ -39,37 +39,7 @@ index b98ffc6..22b2196 100644
-- [[ Basic Keymaps ]] -- [[ Basic Keymaps ]]
-- See `:help vim.keymap.set()` -- See `:help vim.keymap.set()`
@@ -640,9 +648,9 @@ require('lazy').setup({ @@ -618,6 +626,28 @@ require('lazy').setup({
[vim.diagnostic.severity.HINT] = '󰌶 ',
},
} or {},
- virtual_text = {
- source = 'if_many',
- spacing = 2,
+ virtual_text = false,
+ -- Display multiline diagnostics on virtual lines
+ virtual_lines = {
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
@@ -652,6 +660,7 @@ require('lazy').setup({
}
return diagnostic_message[diagnostic.severity]
end,
+ current_line = true,
},
}
@@ -659,7 +668,7 @@ require('lazy').setup({
-- By default, Neovim doesn't support everything that is in the LSP specification.
-- When you add blink.cmp, luasnip, etc. Neovim now has *more* capabilities.
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
- local capabilities = require('blink.cmp').get_lsp_capabilities()
+ -- local capabilities = require('blink.cmp').get_lsp_capabilities()
-- Enable the following language servers
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
@@ -684,6 +693,39 @@ require('lazy').setup({
-- ts_ls = {}, -- ts_ls = {},
-- --
@@ -82,21 +52,10 @@ index b98ffc6..22b2196 100644
+ mixEnv = 'test', + mixEnv = 'test',
+ }, + },
+ }, + },
+ gopls = { + gopls = {},
+ filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' },
+ settings = {
+ gopls = {
+ completeUnimported = true,
+ usePlaceholders = true,
+ analyses = {
+ unusedparams = true,
+ },
+ },
+ },
+ },
+ harper_ls = {},
+ helm_ls = {}, + helm_ls = {},
+ html = { filetypes = { 'html', 'twig', 'hbs' } }, + html = { filetypes = { 'html', 'twig', 'hbs' } },
+ htmx = {},
+ jsonls = { + jsonls = {
+ settings = { + settings = {
+ json = { + json = {
@@ -107,13 +66,14 @@ index b98ffc6..22b2196 100644
+ }, + },
+ }, + },
lua_ls = { lua_ls = {
-- cmd = { ... }, -- cmd = {...},
-- filetypes = { ... }, -- filetypes = { ...},
@@ -698,6 +740,38 @@ require('lazy').setup({ @@ -632,6 +662,33 @@ require('lazy').setup({
}, },
}, },
}, },
+ pyright = {}, + pyright = {},
+ r_language_server = {},
+ templ = {}, + templ = {},
+ terraformls = {}, + terraformls = {},
+ ts_ls = {}, + ts_ls = {},
@@ -129,154 +89,54 @@ index b98ffc6..22b2196 100644
+ ["https://json.schemastore.org/prettierrc.json"] = ".prettierrc.{yml,yaml}", + ["https://json.schemastore.org/prettierrc.json"] = ".prettierrc.{yml,yaml}",
+ ["https://json.schemastore.org/circleciconfig.json"] = ".circleci/config.{yml,yaml}", + ["https://json.schemastore.org/circleciconfig.json"] = ".circleci/config.{yml,yaml}",
+ ["https://json.schemastore.org/dependabot-v2"] = ".github/dependabot.{yml,yaml}", + ["https://json.schemastore.org/dependabot-v2"] = ".github/dependabot.{yml,yaml}",
+ ["https://spec.openapis.org/oas/3.1/schema/2022-10-07"] = "*api*.{yml,yaml}", + ["https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"] = "*api*.{yml,yaml}",
+ ["https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/playbook"] = "*play*.{yml,yaml}", + ["https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/playbook"] = "*play*.{yml,yaml}",
+ ["https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/tasks"] = "roles/tasks/*.{yml,yaml}", + ["https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/tasks"] = "roles/tasks/*.{yml,yaml}",
+ ["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}",
+ }, + }
+ }, + }
+ }, + }
+ }, + }
+ }
+
+ ---@type MasonLspconfigSettings
+ ---@diagnostic disable-next-line: missing-fields
+ require('mason-lspconfig').setup {
+ automatic_enable = vim.tbl_keys(servers or {}),
} }
-- Ensure the servers and tools above are installed -- Ensure the servers and tools above are installed
@@ -719,20 +793,36 @@ require('lazy').setup({ @@ -658,6 +715,33 @@ require('lazy').setup({
}) -- by the server configuration above. Useful when disabling
require('mason-tool-installer').setup { ensure_installed = ensure_installed } -- 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('mason-lspconfig').setup { + -- overwrite elixirls for older versions of elixir
- ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) + -- * elixir 1.11 use version 0.12.0
- automatic_installation = false, + -- * elixir 1.12 use verions 0.14.6
- handlers = { + if server_name == 'elixirls' then
- function(server_name) + local version = vim.fn.system('mise current elixir') or ''
- local server = servers[server_name] or {} + local elixir_servers = {
- -- This handles overriding only values explicitly passed + { version = '^1.11', path = '/elixir-ls/release/v0.12.0/language_server.sh' },
- -- by the server configuration above. Useful when disabling + { version = '^1.12', path = '/elixir-ls/release/v0.14.6/language_server.sh' },
- -- certain features of an LSP (for example, turning off formatting for ts_ls) + }
- server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) + for _, ex_server in ipairs(elixir_servers) do
- require('lspconfig')[server_name].setup(server) + if string.match(version, ex_server.version) == nil then goto continue end
- end, + server = vim.tbl_extend('keep', server, { cmd = { vim.fn.expand('$LOCAL_SRC_HOME') .. ex_server.path } })
- }, + ::continue::
- } + end
+ local extend_server_config = function (server_name) + elseif server_name == 'pyright' then
+ local config = {} + local python_paths = {
+ + { name = 'poetry', cmd = { 'poetry', 'env', 'info', '--executable' }},
+ if server_name == 'pyright' then + { name = 'system', cmd = { 'which', 'python' }},
+ -- overwrite python path for pyright according to the virtualenv manager, be it poetry or system. + }
+ local python_paths = { + for _, py_server in ipairs(python_paths) do
+ { name = 'system', cmd = { 'which', 'python' }}, + local cmd = vim.system(py_server.cmd, { text = true }):wait()
+ { name = 'poetry', cmd = { 'poetry', 'env', 'info', '--executable' }}, + if (cmd.code > 0) then goto continue end
+ } + local python_path = string.gsub(cmd.stdout, '\n', '')
+ for _, py_server in ipairs(python_paths) do + server = vim.tbl_extend('keep', server, { settings = { python = { pythonPath = python_path } } })
+ local cmd = vim.system(py_server.cmd, { text = true }):wait() + ::continue::
+ if (cmd.code > 0) then goto continue end + end
+ local python_path = string.gsub(cmd.stdout, '\n', '') + end
+ config = { settings = { python = { pythonPath = python_path } } } require('lspconfig')[server_name].setup(server)
+ ::continue:: end,
+ end
+ end
+
+ return config
+ end
+
+ -- Installed LSPs are configured and enabled automatically with mason-lspconfig
+ -- The loop below is for overriding the default configuration of LSPs with the ones in the servers table
+ for server_name, config in pairs(servers) do
+ config = vim.tbl_extend('keep', config, extend_server_config(server_name))
+ vim.lsp.config(server_name, config)
+ end
+
+ -- NOTE: Some servers may require an old setup until they are updated. For the full list refer here: https://github.com/neovim/nvim-lspconfig/issues/3705
+ -- These servers will have to be manually set up with require("lspconfig").server_name.setup{}
end,
},
@@ -809,6 +899,9 @@ require('lazy').setup({
opts = {},
},
'folke/lazydev.nvim',
+ 'saghen/blink.compat',
+ 'supermaven-inc/supermaven-nvim',
+ 'Kaiser-Yang/blink-cmp-avante',
},
--- @module 'blink.cmp'
--- @type blink.cmp.Config
@@ -854,9 +947,19 @@ require('lazy').setup({
},
sources = {
- default = { 'lsp', 'path', 'snippets', 'lazydev' },
+ default = { 'avante', 'lsp', 'path', 'snippets', 'lazydev', 'supermaven' },
providers = {
lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 },
+ avante = {
+ name = 'avante',
+ module = 'blink-cmp-avante',
+ },
+ supermaven = {
+ name = 'supermanve',
+ module = 'blink.compat.source',
+ score_offset = 100,
+ async = true,
+ },
}, },
}, @@ -888,7 +972,39 @@ require('lazy').setup({
@@ -882,19 +985,39 @@ require('lazy').setup({
--
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
'folke/tokyonight.nvim',
+ dependencies = {
+ 'drewxs/ash.nvim',
+ '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()
---@diagnostic disable-next-line: missing-fields
- require('tokyonight').setup {
- styles = {
- comments = { italic = false }, -- Disable italics in comments
- },
- }
+ -- require('tokyonight').setup {
+ -- styles = {
+ -- comments = { italic = false }, -- Disable italics in comments
+ -- },
+ -- }
-- 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'
+ -- 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.cmd.colorscheme 'lackluster'
end,
},
@@ -944,7 +1067,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 = {
@@ -317,7 +177,7 @@ index b98ffc6..22b2196 100644
-- Autoinstall languages that are not installed -- Autoinstall languages that are not installed
auto_install = true, auto_install = true,
highlight = { highlight = {
@@ -974,17 +1129,17 @@ require('lazy').setup({ @@ -918,18 +1034,18 @@ 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',
@@ -333,8 +193,9 @@ index b98ffc6..22b2196 100644
-- This is the easiest way to modularize your config. -- 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. -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
-- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
- -- { import = 'custom.plugins' }, - -- { import = 'custom.plugins' },
+ { import = 'custom.plugins' }, + { import = 'custom.plugins' },
-- }, {
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` ui = {
-- Or use telescope! -- If you are using a Nerd Font: set icons to an empty table which will use the

View File

@@ -1,7 +1,6 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [ "extends": [
"config:recommended", "config:base"
"schedule:earlyMondays" ]
]
} }

View File

@@ -23,7 +23,7 @@ resetOutput()
# $red $green and $blue are integers # $red $green and $blue are integers
# ranging between 0 and 255 inclusive # ranging between 0 and 255 inclusive
rainbowColor() rainbowColor()
{ {
let h=$1/43 let h=$1/43
let f=$1-43*$h let f=$1-43*$h
let t=$f*255/43 let t=$f*255/43

View File

@@ -1,11 +1,18 @@
#!/bin/bash #!/bin/bash
set -e set -e
# NOTE: (jpd) setup elixir-ls for older versions of elixir
if [ ! -d ${LOCAL_SRC_HOME}/elixir-ls/release ]; then
echo "setup elixir ls version 0.12.0"
/usr/local/bin/elixir-ls-setup v0.12.0
echo "setup elixir ls version 0.14.6"
/usr/local/bin/elixir-ls-setup v0.14.6
fi
# NOTE: (jpd) create auto-completion # NOTE: (jpd) create auto-completion
commands=( commands=(
"ctlptl" "ctlptl"
"eksctl" "eksctl"
"exercism"
"helm" "helm"
"k3d" "k3d"
"k9s" "k9s"
@@ -13,7 +20,6 @@ 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
@@ -24,9 +30,4 @@ for cmd in ${commands[@]}; do
fi fi
done done
if [ ! -f ${XDG_CONFIG_HOME}/fish/completions/comtrya.fish ]; then
echo "setup comtrya completion"
$(echo comtrya gen-completions fish) > ${XDG_CONFIG_HOME}/fish/completions/comtrya.fish
fi
exec "$@" exec "$@"

30
scripts/elixir-ls-setup.sh Executable file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -e
function setup() {
local elixir_ls_home=${LOCAL_SRC_HOME}/elixir-ls
local elixir_ls_release=${elixir_ls_home}/release
echo "elixir-ls repo"
cd ${elixir_ls_home}
echo "checkout versions ${1}"
git checkout tags/${1}
echo "set erlang/elixir versions"
cp .release-tool-versions .tool-versions
local current_erlang=$(mise current erlang)
local current_elixir=$(mise current elixir)
echo "using erlang ${current_erlang} / elixir ${current_elixir}"
echo "install erlang/elixir runtimes"
KERL_CONFIGURE_OPTIONS="-with-ssl=${HOME}/.local/lib/ssl" mise install
echo "install elixir-ls deps"
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "mix do local.rebar --force, local.hex --force, deps.get, deps.compile"
echo "compile and release elixir-ls"
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "MIX_ENV=prod mix compile"
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "MIX_ENV=prod mix elixir_ls.release -o ${elixir_ls_release}/${1}"
echo "remove local .tool-versions"
cp .tool-versions ${elixir_ls_release}/${1}
rm .tool-versions
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "mix do deps.clean --all, clean"
git checkout master
}
setup $1