Add jj/kitty/nvim/opencode/paru/fish/yazi/jjui

This commit is contained in:
2026-02-19 22:27:46 +00:00
parent 774492f279
commit e55197517c
95 changed files with 10407 additions and 0 deletions

25
nvim/files/lsp/biome.lua Normal file
View File

@@ -0,0 +1,25 @@
return {
cmd = { "biome", "lsp-proxy" },
filetypes = {
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"json",
"jsonc",
"astro",
"css",
"graphql",
"vue",
"svelte",
},
root_markers = { "biome.json", "biome.jsonc" },
on_attach = function(client, bufnr)
vim.api.nvim_create_autocmd("BufWritePre", {
buffer = bufnr,
callback = function()
vim.lsp.buf.format({ bufnr = bufnr, id = client.id })
end,
})
end,
}

10
nvim/files/lsp/cssls.lua Normal file
View File

@@ -0,0 +1,10 @@
return {
cmd = { "vscode-css-language-server", "--stdio" },
filetypes = { "css", "scss", "less" },
root_markers = { "package.json", ".git" },
settings = {
css = { validate = true },
scss = { validate = true },
less = { validate = true },
},
}

82
nvim/files/lsp/eslint.lua Normal file
View File

@@ -0,0 +1,82 @@
return {
cmd = { "vscode-eslint-language-server", "--stdio" },
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
"vue",
"svelte",
"astro",
},
root_dir = function(bufnr, on_dir)
local fname = vim.api.nvim_buf_get_name(bufnr)
local root = vim.fs.root(fname, {
".eslintrc",
".eslintrc.js",
".eslintrc.cjs",
".eslintrc.yaml",
".eslintrc.yml",
".eslintrc.json",
"eslint.config.js",
"eslint.config.mjs",
"eslint.config.cjs",
"eslint.config.ts",
"eslint.config.mts",
"eslint.config.cts",
"package.json",
})
-- Disable ESLint if Biome is detected
if root then
local biome_json = vim.fs.joinpath(root, "biome.json")
local biome_jsonc = vim.fs.joinpath(root, "biome.jsonc")
local has_biome = vim.fn.filereadable(biome_json) == 1 or vim.fn.filereadable(biome_jsonc) == 1
if has_biome then
vim.notify("ESLint disabled - Biome detected in " .. root, vim.log.levels.INFO)
on_dir(nil)
return
end
end
on_dir(root)
end,
settings = {
codeAction = {
disableRuleComment = {
enable = true,
location = "separateLine",
},
showDocumentation = {
enable = true,
},
},
codeActionOnSave = {
enable = false,
mode = "all",
},
format = true,
nodePath = "",
onIgnoredFiles = "off",
problems = {
shortenToSingleLine = false,
},
quiet = false,
rulesCustomizations = {},
run = "onType",
useESLintClass = false,
validate = "on",
workingDirectory = {
mode = "location",
},
},
on_attach = function(_, bufnr)
vim.api.nvim_create_autocmd("BufWritePre", {
buffer = bufnr,
command = "EslintFixAll",
})
end,
}

View File

@@ -0,0 +1,5 @@
return {
cmd = { "nc", "localhost", "6005" },
filetypes = { "gd", "gdscript", "gdscript3" },
root_markers = { "project.godot", ".git" },
}

12
nvim/files/lsp/lua_ls.lua Normal file
View File

@@ -0,0 +1,12 @@
return {
cmd = { "lua-language-server" },
filetypes = { "lua" },
root_markers = { ".luarc.json", ".luarc.jsonc", ".git" },
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
},
},
}

View File

@@ -0,0 +1,38 @@
return {
cmd = { "pyright-langserver", "--stdio" },
filetypes = { "python" },
root_markers = { "pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", ".git" },
on_new_config = function(new_config, root_dir)
local resolved_root = vim.fs.normalize(vim.fn.expand(root_dir))
local venv_python = resolved_root .. "/.venv/bin/python"
if vim.uv.fs_stat(venv_python) then
new_config.settings = new_config.settings or {}
new_config.settings.python = new_config.settings.python or {}
new_config.settings.python.pythonPath = venv_python
end
end,
on_init = function(client)
local root_dir = client.config.root_dir
if not root_dir then
return
end
local resolved_root = vim.fs.normalize(vim.fn.expand(root_dir))
local venv_python = resolved_root .. "/.venv/bin/python"
if vim.uv.fs_stat(venv_python) then
client.config.settings = client.config.settings or {}
client.config.settings.python = client.config.settings.python or {}
client.config.settings.python.pythonPath = venv_python
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings })
end
end,
settings = {
python = {
analysis = {
autoSearchPaths = true,
useLibraryCodeForTypes = true,
diagnosticMode = "openFilesOnly",
},
},
},
}

View File

@@ -0,0 +1,5 @@
return {
cmd = { "svelteserver", "--stdio" },
filetypes = { "svelte" },
root_markers = { "svelte.config.js", "svelte.config.mjs", "svelte.config.cjs", "package.json", ".git" },
}

View File

@@ -0,0 +1,52 @@
return {
filetypes = {
"aspnetcorerazor",
"astro",
"astro-markdown",
"blade",
"clojure",
"django-html",
"htmldjango",
"edge",
"eelixir",
"elixir",
"ejs",
"erb",
"eruby",
"gohtml",
"gohtmltmpl",
"haml",
"handlebars",
"hbs",
"html",
"html-eex",
"heex",
"jade",
"leaf",
"liquid",
"markdown",
"mdx",
"mustache",
"njk",
"nunjucks",
"php",
"razor",
"slim",
"twig",
"css",
"less",
"postcss",
"sass",
"scss",
"stylus",
"sugarss",
"javascript",
"javascriptreact",
"reason",
"rescript",
"typescript",
"typescriptreact",
"vue",
"svelte",
},
}

36
nvim/files/lsp/tsgo.lua Normal file
View File

@@ -0,0 +1,36 @@
return {
cmd = { "tsgo", "--lsp", "--stdio" },
filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" },
-- Use .git to find monorepo root so vtsls indexes ALL packages
root_markers = { ".git" },
-- Reuse client across projects for cross-package references
reuse_client = function(client, config)
return client.name == config.name
end,
settings = {
vtsls = {
autoWorkspaceCache = true, -- Helps index the workspace in the background
tsserver = {
maxMemory = 8192, -- Give it 8GB of RAM for large projects
globalPlugins = {
{
name = "typescript-svelte-plugin",
location = vim.fn.stdpath("data")
.. "/mason/packages/svelte-language-server/node_modules/typescript-svelte-plugin",
enableForWorkspaceTypeScriptVersions = true,
},
},
},
},
typescript = {
tsserver = {
maxTsServerMemory = 8192,
maxMemory = 8192, -- Give it 8GB of RAM for large projects
},
},
},
commands = {
-- Suppress "does not support command" notification for organize imports
["_typescript.didOrganizeImports"] = function() end,
},
}

35
nvim/files/lsp/vtsls.lua Normal file
View File

@@ -0,0 +1,35 @@
return {
cmd = { "vtsls", "--stdio" },
filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" },
-- Use .git to find monorepo root so vtsls indexes ALL packages
root_markers = { ".git" },
-- Reuse client across projects for cross-package references
reuse_client = function(client, config)
return client.name == config.name
end,
settings = {
vtsls = {
autoWorkspaceCache = true, -- Helps index the workspace in the background
tsserver = {
maxMemory = 8192, -- Give it 8GB of RAM for large projects
globalPlugins = {
{
name = "typescript-svelte-plugin",
location = vim.fn.stdpath("data")
.. "/mason/packages/svelte-language-server/node_modules/typescript-svelte-plugin",
enableForWorkspaceTypeScriptVersions = true,
},
},
},
},
typescript = {
tsserver = {
maxTsServerMemory = 8192,
},
},
},
commands = {
-- Suppress "does not support command" notification for organize imports
["_typescript.didOrganizeImports"] = function() end,
},
}