Add jj/kitty/nvim/opencode/paru/fish/yazi/jjui
This commit is contained in:
25
nvim/files/lsp/biome.lua
Normal file
25
nvim/files/lsp/biome.lua
Normal 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
10
nvim/files/lsp/cssls.lua
Normal 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
82
nvim/files/lsp/eslint.lua
Normal 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,
|
||||
}
|
||||
5
nvim/files/lsp/gdscript.lua
Normal file
5
nvim/files/lsp/gdscript.lua
Normal 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
12
nvim/files/lsp/lua_ls.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
cmd = { "lua-language-server" },
|
||||
filetypes = { "lua" },
|
||||
root_markers = { ".luarc.json", ".luarc.jsonc", ".git" },
|
||||
settings = {
|
||||
Lua = {
|
||||
completion = {
|
||||
callSnippet = "Replace",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
38
nvim/files/lsp/pyright.lua
Normal file
38
nvim/files/lsp/pyright.lua
Normal 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",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
5
nvim/files/lsp/svelte.lua
Normal file
5
nvim/files/lsp/svelte.lua
Normal 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" },
|
||||
}
|
||||
52
nvim/files/lsp/tailwindcss.lua
Normal file
52
nvim/files/lsp/tailwindcss.lua
Normal 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
36
nvim/files/lsp/tsgo.lua
Normal 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
35
nvim/files/lsp/vtsls.lua
Normal 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,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user