Compare commits
1 Commits
renovate/a
...
2b1f66304e
Author | SHA1 | Date | |
---|---|---|---|
2b1f66304e |
27
Dockerfile
27
Dockerfile
@@ -105,16 +105,16 @@ RUN apt-get update \
|
||||
&& echo 'permit persist :wheel as root' > /etc/doas.conf
|
||||
|
||||
# command line utilities
|
||||
ENV DO_VERSION 28.3.2
|
||||
ENV DO_VERSION 28.1.1
|
||||
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.36.0
|
||||
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.23.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.3
|
||||
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 \
|
||||
@@ -153,6 +153,24 @@ ENV XDG_CACHE_HOME ${HOME}/.cache
|
||||
ENV STARSHIP_CONFIG ${XDG_CONFIG_HOME}/starship/config.toml
|
||||
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
|
||||
ENV MISE_ENV_FILE .env
|
||||
RUN curl https://mise.jdx.dev/install.sh | sh \
|
||||
@@ -210,3 +228,4 @@ RUN git config --global user.email "${GIT_USER_EMAIL}" \
|
||||
&& 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/elixir-ls-setup.sh /usr/local/bin/elixir-ls-setup
|
||||
|
12
Makefile
12
Makefile
@@ -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
|
||||
@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
|
||||
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}'
|
||||
|
@@ -7,78 +7,15 @@
|
||||
"@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"
|
||||
]
|
||||
"vectorcode": {
|
||||
"command": "vectorcode-mcp-server",
|
||||
"args": []
|
||||
}
|
||||
}
|
||||
"nativeMCPServers": []
|
||||
}
|
||||
|
@@ -1,55 +1,58 @@
|
||||
[tools]
|
||||
"aqua:BurntSushi/ripgrep" = "14.1.1"
|
||||
"aqua:CircleCI-Public/circleci-cli" = "0.1.32067"
|
||||
"aqua:FiloSottile/age" = "1.2.1"
|
||||
"aqua:ajeetdsouza/zoxide" = "0.9.8"
|
||||
"aqua:alexellis/k3sup" = "0.13.10"
|
||||
"aqua:astral-sh/uv" = "0.8.3"
|
||||
"aqua:aws/aws-cli" = "2.27.60"
|
||||
"aqua:bitwarden/clients" = "cli-v2025.5.0"
|
||||
"aqua:dagger/dagger" = "0.18.14"
|
||||
"aqua:derailed/k9s" = "0.50.9"
|
||||
"aqua:eksctl-io/eksctl" = "0.212.0"
|
||||
"aqua:evilmartians/lefthook" = "1.12.2"
|
||||
"aqua:eza-community/eza" = "0.23.0"
|
||||
"aqua:github-cli" = "2.76.1"
|
||||
"aqua:go-task/task" = "3.44.1"
|
||||
"aqua:hashicorp/terraform" = "1.12.2"
|
||||
"aqua:helm/helm" = "3.18.4"
|
||||
"aqua:jj-vcs/jj" = "0.31.0"
|
||||
"aqua:junegunn/fzf" = "0.65.0"
|
||||
"aqua:alexellis/k3sup" = "0.13.9"
|
||||
"aqua:astral-sh/uv" = "0.7.8"
|
||||
"aqua:aws/aws-cli" = "2.27.23"
|
||||
"aqua:bitwarden/clients" = "cli-v2025.2.0"
|
||||
"aqua:dagger/dagger" = "0.18.9"
|
||||
"aqua:derailed/k9s" = "0.50.6"
|
||||
"aqua:eksctl-io/eksctl" = "0.208.0"
|
||||
"aqua:evilmartians/lefthook" = "1.11.13"
|
||||
"aqua:eza-community/eza" = "0.21.3"
|
||||
"aqua:github-cli" = "2.73.0"
|
||||
"aqua:go-task/task" = "3.43.3"
|
||||
"aqua:hashicorp/terraform" = "1.12.1"
|
||||
"aqua:helm/helm" = "3.18.0"
|
||||
"aqua:jj-vcs/jj" = "0.29.0"
|
||||
"aqua:junegunn/fzf" = "0.62.0"
|
||||
"aqua:k3d-io/k3d" = "5.8.3"
|
||||
"aqua:kubernetes-sigs/kind" = "0.29.0"
|
||||
"aqua:kubernetes/kubectl" = "1.33.2"
|
||||
"aqua:pnpm/pnpm" = "10.13.1"
|
||||
"aqua:sbstp/kubie" = "0.26.0"
|
||||
"aqua:kubernetes/kubectl" = "1.33.1"
|
||||
"aqua:pnpm/pnpm" = "10.11.0"
|
||||
"aqua:sbstp/kubie" = "0.25.2"
|
||||
"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" }
|
||||
"aqua:tilt-dev/tilt" = "0.34.4"
|
||||
"aqua:xo/usql" = "0.19.24"
|
||||
"go:github.com/bloznelis/typioca" = "3.1.0"
|
||||
"npm:@anthropic-ai/claude-code" = "1.0.4"
|
||||
"pipx:aider-chat" = { version = "0.83.2", uvx_args = "--python 3.12.10 --with google-generativeai" }
|
||||
"pipx:vectorcode" = { version = "0.6.9", uvx_args = "--python 3.13.3", extras = "mcp" }
|
||||
"ubi:Samyak2/toipe" = "0.5.0"
|
||||
"ubi:comtrya/comtrya" = "0.9.2"
|
||||
"ubi:block/goose" = "1.0.24"
|
||||
"ubi:hlsxx/tukai" = "0.2.2"
|
||||
"ubi:jdx/usage" = "2.2.2"
|
||||
"ubi:jdx/usage" = "2.1.1"
|
||||
"ubi:max-niederman/ttyper" = "1.6.0"
|
||||
"ubi:sst/opencode" = "0.3.79"
|
||||
"ubi:supabase/cli" = { version = "2.23.4", exe = "supabase" }
|
||||
"ubi:wagoodman/dive" = "0.13.1"
|
||||
elixir = "1.18.4"
|
||||
erlang = "28.0.2"
|
||||
go = "1.24.5"
|
||||
erlang = "28.0"
|
||||
go = "1.24.3"
|
||||
lua = "5.1.5"
|
||||
luajit = "2.0.5"
|
||||
node = "24.4.1"
|
||||
python = "3.13.5"
|
||||
r = "4.5.1"
|
||||
rust = "1.88.0"
|
||||
node = "22.16.0"
|
||||
poetry = "2.1.3"
|
||||
python = "3.13.4"
|
||||
r = "4.5.0"
|
||||
rust = "1.87.0"
|
||||
yarn = "1.22.22"
|
||||
|
||||
[settings]
|
||||
experimental = true
|
||||
python_compile = true
|
||||
idiomatic_version_file_enable_tools = ["go", "ruby", "python"]
|
||||
|
||||
[env]
|
||||
|
@@ -155,6 +155,36 @@ return {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'Davidyz/VectorCode',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
},
|
||||
version = vim.fn.system { 'mise', 'current', 'pipx:vectorcode' },
|
||||
opts = function()
|
||||
return {
|
||||
async_opts = {
|
||||
debounce = 10,
|
||||
events = { 'BufWritePost', 'InsertEnter', 'BufReadPost' },
|
||||
exclude_this = true,
|
||||
n_query = 1,
|
||||
notify = false,
|
||||
query_cb = require('vectorcode.utils').make_surrounding_lines_cb(-1),
|
||||
run_on_register = false,
|
||||
},
|
||||
async_backend = 'default',
|
||||
exclude_this = true,
|
||||
n_query = 1,
|
||||
notify = true,
|
||||
timeout_ms = 5000,
|
||||
on_setup = {
|
||||
update = false,
|
||||
lsp = false,
|
||||
},
|
||||
sync_log_env_var = false,
|
||||
}
|
||||
end,
|
||||
},
|
||||
{
|
||||
'olimorris/codecompanion.nvim',
|
||||
dependencies = {
|
||||
@@ -184,7 +214,7 @@ return {
|
||||
name = 'gemini_pro',
|
||||
schema = {
|
||||
model = {
|
||||
default = 'gemini-2.5-pro',
|
||||
default = 'gemini-2.5-pro-preview-05-06',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -194,7 +224,7 @@ return {
|
||||
name = 'gemini_flash',
|
||||
schema = {
|
||||
model = {
|
||||
default = 'gemini-2.5-flash',
|
||||
default = 'gemini-2.0-flash',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -289,8 +319,9 @@ return {
|
||||
'claude-sonnet-4-20250514',
|
||||
},
|
||||
gemini = {
|
||||
'gemini-2.5-pro',
|
||||
'gemini-2.5-flash',
|
||||
'gemini-2.5-pro-preview-05-06',
|
||||
'gemini-2.5-flash-preview-05-20',
|
||||
'gemini-2.0-flash',
|
||||
},
|
||||
groq = {
|
||||
'deepseek-r1-distill-llama-70b',
|
||||
@@ -403,42 +434,24 @@ return {
|
||||
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',
|
||||
},
|
||||
vendors = {
|
||||
['gemini-pro'] = {
|
||||
__inherited_from = 'gemini',
|
||||
model = 'gemini-2.5-pro',
|
||||
model = 'gemini-2.5-pro-preview-05-06',
|
||||
timeout = 600000,
|
||||
extra_request_body = { max_tokens = 40960 },
|
||||
max_tokens = 40960,
|
||||
},
|
||||
['gemini-flash'] = {
|
||||
__inherited_from = 'gemini',
|
||||
model = 'gemini-2.5-flash',
|
||||
model = 'gemini-2.0-flash',
|
||||
timeout = 600000,
|
||||
extra_request_body = { max_tokens = 20480 },
|
||||
max_tokens = 20480,
|
||||
},
|
||||
['claude-sonnet-4'] = {
|
||||
__inherited_from = 'claude',
|
||||
model = 'claude-sonnet-4-20250514',
|
||||
timeout = 600000,
|
||||
extra_request_body = { max_tokens = 20480 },
|
||||
max_tokens = 20480,
|
||||
},
|
||||
groq = {
|
||||
__inherited_from = 'openai',
|
||||
@@ -460,51 +473,4 @@ return {
|
||||
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ services:
|
||||
- 'home_supermaven:/home/coder/.supermaven'
|
||||
|
||||
chroma:
|
||||
image: 'ghcr.io/chroma-core/chroma:1.0.15'
|
||||
image: 'ghcr.io/chroma-core/chroma:1.0.10'
|
||||
init: true
|
||||
restart: unless-stopped
|
||||
hostname: chroma
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/init.lua b/init.lua
|
||||
index b98ffc6..22b2196 100644
|
||||
index b98ffc6..8013e25 100644
|
||||
--- a/init.lua
|
||||
+++ b/init.lua
|
||||
@@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
||||
@@ -60,16 +60,7 @@ index b98ffc6..22b2196 100644
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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({
|
||||
@@ -684,6 +693,28 @@ require('lazy').setup({
|
||||
-- ts_ls = {},
|
||||
--
|
||||
|
||||
@@ -82,18 +73,7 @@ index b98ffc6..22b2196 100644
|
||||
+ mixEnv = 'test',
|
||||
+ },
|
||||
+ },
|
||||
+ gopls = {
|
||||
+ filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' },
|
||||
+ settings = {
|
||||
+ gopls = {
|
||||
+ completeUnimported = true,
|
||||
+ usePlaceholders = true,
|
||||
+ analyses = {
|
||||
+ unusedparams = true,
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+ gopls = {},
|
||||
+ harper_ls = {},
|
||||
+ helm_ls = {},
|
||||
+ html = { filetypes = { 'html', 'twig', 'hbs' } },
|
||||
@@ -109,7 +89,7 @@ index b98ffc6..22b2196 100644
|
||||
lua_ls = {
|
||||
-- cmd = { ... },
|
||||
-- filetypes = { ... },
|
||||
@@ -698,6 +740,38 @@ require('lazy').setup({
|
||||
@@ -698,6 +729,32 @@ require('lazy').setup({
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -129,7 +109,7 @@ index b98ffc6..22b2196 100644
|
||||
+ ["https://json.schemastore.org/prettierrc.json"] = ".prettierrc.{yml,yaml}",
|
||||
+ ["https://json.schemastore.org/circleciconfig.json"] = ".circleci/config.{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/tasks"] = "roles/tasks/*.{yml,yaml}",
|
||||
+ ["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}",
|
||||
@@ -139,67 +119,44 @@ index b98ffc6..22b2196 100644
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+ }
|
||||
+
|
||||
+ ---@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
|
||||
@@ -719,20 +793,36 @@ require('lazy').setup({
|
||||
})
|
||||
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
||||
|
||||
- require('mason-lspconfig').setup {
|
||||
- ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer)
|
||||
- automatic_installation = false,
|
||||
- handlers = {
|
||||
- function(server_name)
|
||||
- local server = servers[server_name] or {}
|
||||
- -- This handles overriding only values explicitly passed
|
||||
- -- 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 {})
|
||||
- require('lspconfig')[server_name].setup(server)
|
||||
- end,
|
||||
- },
|
||||
- }
|
||||
+ local extend_server_config = function (server_name)
|
||||
+ local config = {}
|
||||
+
|
||||
+ if server_name == 'pyright' then
|
||||
+ -- overwrite python path for pyright according to the virtualenv manager, be it poetry or system.
|
||||
+ local python_paths = {
|
||||
+ { name = 'system', cmd = { 'which', 'python' }},
|
||||
+ { name = 'poetry', cmd = { 'poetry', 'env', 'info', '--executable' }},
|
||||
+ }
|
||||
+ for _, py_server in ipairs(python_paths) do
|
||||
+ local cmd = vim.system(py_server.cmd, { text = true }):wait()
|
||||
+ if (cmd.code > 0) then goto continue end
|
||||
+ local python_path = string.gsub(cmd.stdout, '\n', '')
|
||||
+ config = { settings = { python = { pythonPath = python_path } } }
|
||||
+ ::continue::
|
||||
+ 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({
|
||||
@@ -729,6 +786,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 {})
|
||||
+ -- overwrite elixirls for older versions of elixir
|
||||
+ -- * elixir 1.11 use version 0.12.0
|
||||
+ -- * elixir 1.12 use verions 0.14.6
|
||||
+ if server_name == 'elixirls' then
|
||||
+ local version = vim.fn.system('mise current elixir') or ''
|
||||
+ local elixir_servers = {
|
||||
+ { version = '^1.11', path = '/elixir-ls/release/v0.12.0/language_server.sh' },
|
||||
+ { version = '^1.12', path = '/elixir-ls/release/v0.14.6/language_server.sh' },
|
||||
+ }
|
||||
+ for _, ex_server in ipairs(elixir_servers) do
|
||||
+ if string.match(version, ex_server.version) == nil then goto continue end
|
||||
+ server = vim.tbl_extend('keep', server, { cmd = { vim.fn.expand('$LOCAL_SRC_HOME') .. ex_server.path } })
|
||||
+ ::continue::
|
||||
+ end
|
||||
+ elseif server_name == 'pyright' then
|
||||
+ local python_paths = {
|
||||
+ { name = 'poetry', cmd = { 'poetry', 'env', 'info', '--executable' }},
|
||||
+ { name = 'system', cmd = { 'which', 'python' }},
|
||||
+ }
|
||||
+ for _, py_server in ipairs(python_paths) do
|
||||
+ local cmd = vim.system(py_server.cmd, { text = true }):wait()
|
||||
+ if (cmd.code > 0) then goto continue end
|
||||
+ local python_path = string.gsub(cmd.stdout, '\n', '')
|
||||
+ server = vim.tbl_extend('keep', server, { settings = { python = { pythonPath = python_path } } })
|
||||
+ ::continue::
|
||||
+ end
|
||||
+ end
|
||||
require('lspconfig')[server_name].setup(server)
|
||||
end,
|
||||
},
|
||||
@@ -809,6 +893,9 @@ require('lazy').setup({
|
||||
opts = {},
|
||||
},
|
||||
'folke/lazydev.nvim',
|
||||
@@ -209,7 +166,7 @@ index b98ffc6..22b2196 100644
|
||||
},
|
||||
--- @module 'blink.cmp'
|
||||
--- @type blink.cmp.Config
|
||||
@@ -854,9 +947,19 @@ require('lazy').setup({
|
||||
@@ -854,9 +941,19 @@ require('lazy').setup({
|
||||
},
|
||||
|
||||
sources = {
|
||||
@@ -230,7 +187,7 @@ index b98ffc6..22b2196 100644
|
||||
},
|
||||
},
|
||||
|
||||
@@ -882,19 +985,39 @@ require('lazy').setup({
|
||||
@@ -882,19 +979,39 @@ require('lazy').setup({
|
||||
--
|
||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
||||
'folke/tokyonight.nvim',
|
||||
@@ -262,21 +219,21 @@ index b98ffc6..22b2196 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.cmd.colorscheme 'lackluster'
|
||||
+ -- 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({
|
||||
@@ -944,7 +1061,39 @@ require('lazy').setup({
|
||||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||
opts = {
|
||||
@@ -317,7 +274,7 @@ index b98ffc6..22b2196 100644
|
||||
-- Autoinstall languages that are not installed
|
||||
auto_install = true,
|
||||
highlight = {
|
||||
@@ -974,17 +1129,17 @@ require('lazy').setup({
|
||||
@@ -974,17 +1123,17 @@ require('lazy').setup({
|
||||
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||
--
|
||||
-- require 'kickstart.plugins.debug',
|
||||
|
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:recommended",
|
||||
"schedule:earlyMondays"
|
||||
]
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:base"
|
||||
]
|
||||
}
|
||||
|
@@ -1,6 +1,14 @@
|
||||
#!/bin/bash
|
||||
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
|
||||
commands=(
|
||||
"ctlptl"
|
||||
|
38
scripts/elixir-ls-setup.sh
Executable file
38
scripts/elixir-ls-setup.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/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
|
||||
if [[ ! -z "$2" ]]; then
|
||||
echo "override erlang to ${2}"
|
||||
sed -i "s/erlang .*/erlang ${2}/g" .tool-versions
|
||||
fi
|
||||
if [[ ! -z "$3" ]]; then
|
||||
echo "override elixir to ${3}"
|
||||
sed -i "s/elixir .*/elixir ${3}/g" .tool-versions
|
||||
fi
|
||||
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 $2 $3
|
Reference in New Issue
Block a user