392 lines
7.8 KiB
Lua
392 lines
7.8 KiB
Lua
-- A list of all languages for which I have support for any of:
|
|
-- an LSP (lsp)
|
|
-- Treesitter (ts)
|
|
-- linting (lint)
|
|
-- formatting (format)
|
|
--
|
|
-- with their respective names used by lspconfig, nvim-treesitter, nvim-lint and conform.
|
|
--
|
|
|
|
local nushell = { lsp = { nushell = {} }, ts = { "nu" } }
|
|
if vim.fn.executable("nufmt") == 1 then
|
|
nushell.format = { nu = { "nufmt" } }
|
|
end
|
|
|
|
-- FIXME: This does not work for populating LSP config,
|
|
-- never gets set MASON env var. Executing too early?
|
|
local function mason_dir()
|
|
local dir = vim.fn.getenv("MASON")
|
|
if dir ~= vim.NIL then
|
|
return dir
|
|
end
|
|
return vim.fn.getenv("HOME") .. "/.local/share/nvim/mason"
|
|
end
|
|
|
|
local languages = {
|
|
arduino = { lsp = { arduino_language_server = {} }, ts = { "arduino" } },
|
|
awk = { ts = { "awk" }, format = { awk = { "gawk" } } },
|
|
astro = {
|
|
lsp = { astro = {} },
|
|
ts = { "astro" },
|
|
lint = { astro = { "eslint_d" } },
|
|
format = { astro = {
|
|
"prettier",
|
|
} },
|
|
},
|
|
bash = {
|
|
lsp = { bashls = {} },
|
|
ts = { "bash" },
|
|
lint = { bash = { "shellcheck" } },
|
|
format = { bash = { "shellharden", "shfmt" } },
|
|
},
|
|
beancount = { lsp = { beancount = {} }, ts = { "beancount" }, format = { beancount = { "bean-format" } } },
|
|
bibtex = { ts = { "bibtex" }, format = { bib = { "bibtex-tidy" } } },
|
|
c = { lsp = { clangd = {} }, ts = { "c" } },
|
|
css = { lsp = { cssls = {} }, ts = { "css" }, format = { css = { "prettier", "rustywind" } } },
|
|
csv = { ts = { "csv" } },
|
|
d = { lsp = { serve_d = {} }, ts = { "d" } },
|
|
dart = { ts = { "dart" } },
|
|
dhall = { ts = { "dhall" } },
|
|
diff = { ts = { "diff" } },
|
|
djot = { ts = { "djot" } },
|
|
docker_compose = { lsp = { docker_compose_language_service = {} } },
|
|
docker = { lsp = { dockerls = {} }, ts = { "dockerfile" } },
|
|
dot = { ts = { "dot" } },
|
|
emmet = { lsp = { emmet_ls = {} } },
|
|
javascript = {
|
|
lsp = { eslint = {} },
|
|
ts = { "javascript" },
|
|
lint = { javascript = { "eslint_d" }, javascriptreact = { "eslint_d" } },
|
|
format = { javascript = { "prettier" }, javascriptreact = { "prettier" } },
|
|
},
|
|
git = { ts = { "git_config", "git_rebase", "gitattributes", "gitcommit", "gitignore" } },
|
|
go = { lsp = { gopls = {} }, ts = { "go" }, lint = { go = { "revive" } }, format = { go = { "gofumpt" } } },
|
|
graphql = { format = { graphql = { "prettier" } } },
|
|
html = { format = { html = { "prettier", "rustywind" } } },
|
|
julia = { lsp = { julials = {} }, ts = { "julia" } },
|
|
json = {
|
|
lsp = { jsonls = {} },
|
|
ts = { "hjson", "json", "json5", "jsonc", "jsonnet" },
|
|
format = { json = { "jq" } },
|
|
},
|
|
latex = {
|
|
-- TODO: May need to switch to ltex_plus at some point since ltex is unmaintained
|
|
lsp = { ltex = { autostart = false }, texlab = {} },
|
|
ts = { "latex" },
|
|
},
|
|
lua = {
|
|
lsp = {
|
|
lua_ls = {
|
|
settings = {
|
|
Lua = {
|
|
diagnostics = { globals = { "vim" } },
|
|
telemetry = { enable = false },
|
|
hint = { enable = true, setType = true },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
ts = { "fennel", "luadoc", "luap", "luau" },
|
|
format = { lua = { "stylua" } },
|
|
},
|
|
markdown = {
|
|
lsp = { marksman = {} },
|
|
ts = { "markdown", "markdown_inline" },
|
|
lint = { markdown = { "markdownlint" } },
|
|
format = { markdown = { "prettier", "injected" } },
|
|
},
|
|
nim = { lsp = { nim_langserver = {} }, ts = { "nim", "nim_format_string" }, format = { nim = { "nimpretty" } } },
|
|
nu = nushell,
|
|
python = {
|
|
lsp = { basedpyright = {}, ruff = {} },
|
|
ts = { "python" },
|
|
format = { python = { "ruff_format", "ruff_organize_imports" } },
|
|
},
|
|
quarto = { lint = { quarto = { "markdownlint" } }, format = { quarto = { "prettier", "injected" } } },
|
|
sh = { lint = { sh = { "shellcheck" } }, format = { sh = { "shellharden", "shfmt" } } },
|
|
sql = { format = { sql = { "sleek" } } },
|
|
svelte = { lint = { svelte = { "eslint_d" } }, format = { svelte = { "prettier" } } },
|
|
toml = { lsp = { taplo = {} }, ts = { "toml" } },
|
|
typescript = {
|
|
lsp = { ts_ls = {} },
|
|
ts = { "typescript" },
|
|
lint = { typescript = { "eslint_d" }, typescriptreact = { "eslint_d" } },
|
|
format = { typescript = { "prettier" }, typescriptreact = { "prettier" } },
|
|
},
|
|
typst = {
|
|
lsp = { tinymist = { settings = { formatterMode = "typstyle" } } },
|
|
ts = { "typst" },
|
|
},
|
|
vue = {
|
|
lsp = { vue_ls = {} },
|
|
ts = { "typescript", "vue" },
|
|
format = { vue = { "prettier", "rustywind" } },
|
|
},
|
|
yaml = { lsp = { yamlls = {}, ansiblels = {} }, ts = { "yaml" }, format = { yaml = { "prettier" } } },
|
|
zsh = { format = { zsh = { "shfmt" } } },
|
|
|
|
-- TODO: For an easier migration from having 'all' in treesitter config
|
|
-- Should be migrated away from over time until it is completely removed
|
|
_additional_treesitters = {
|
|
ts = {
|
|
"cmake",
|
|
"comment",
|
|
"commonlisp",
|
|
"cooklang",
|
|
"corn",
|
|
"cpon",
|
|
"cpp",
|
|
"cuda",
|
|
"cue",
|
|
"cylc",
|
|
"desktop",
|
|
"devicetree",
|
|
"disassembly",
|
|
"doxygen",
|
|
"dtd",
|
|
"earthfile",
|
|
"ebnf",
|
|
"editorconfig",
|
|
"eds",
|
|
"eex",
|
|
"elixir",
|
|
"elm",
|
|
"elsa",
|
|
"elvish",
|
|
"embedded_template",
|
|
"enforce",
|
|
"erlang",
|
|
"facility",
|
|
"faust",
|
|
"fidl",
|
|
"firrtl",
|
|
"fish",
|
|
"foam",
|
|
"forth",
|
|
"fortran",
|
|
"fsh",
|
|
"fsharp",
|
|
"func",
|
|
"fusion",
|
|
"gap",
|
|
"gaptst",
|
|
"gdscript",
|
|
"gdshader",
|
|
"gleam",
|
|
"glimmer",
|
|
"glimmer_javascript",
|
|
"glimmer_typescript",
|
|
"glsl",
|
|
"gn",
|
|
"gnuplot",
|
|
"goctl",
|
|
"godot_resource",
|
|
"gomod",
|
|
"gosum",
|
|
"gotmpl",
|
|
"gowork",
|
|
"gpg",
|
|
"graphql",
|
|
"gren",
|
|
"groovy",
|
|
"gstlaunch",
|
|
"hack",
|
|
"hare",
|
|
"haskell",
|
|
"haskell_persistent",
|
|
"hcl",
|
|
"heex",
|
|
"helm",
|
|
"hlsl",
|
|
"hlsplaylist",
|
|
"hocon",
|
|
"hoon",
|
|
"html",
|
|
"htmldjango",
|
|
"http",
|
|
"hurl",
|
|
"hyprlang",
|
|
"idl",
|
|
"idris",
|
|
"ini",
|
|
"inko",
|
|
"ipkg",
|
|
"ispc",
|
|
"janet_simple",
|
|
"java",
|
|
"javascript",
|
|
"jinja",
|
|
"jinja_inline",
|
|
"jq",
|
|
"jsdoc",
|
|
"just",
|
|
"kcl",
|
|
"kconfig",
|
|
"kdl",
|
|
"kotlin",
|
|
"koto",
|
|
"kusto",
|
|
"lalrpop",
|
|
"ledger",
|
|
"leo",
|
|
"linkerscript",
|
|
"liquid",
|
|
"liquidsoap",
|
|
"llvm",
|
|
"luau",
|
|
"m68k",
|
|
"make",
|
|
"matlab",
|
|
"menhir",
|
|
"mermaid",
|
|
"meson",
|
|
"mlir",
|
|
"muttrc",
|
|
"nasm",
|
|
"nginx",
|
|
"nickel",
|
|
"ninja",
|
|
"nix",
|
|
"norg",
|
|
"nqc",
|
|
"nu",
|
|
"objc",
|
|
"objdump",
|
|
"ocaml",
|
|
"ocaml_interface",
|
|
"ocamllex",
|
|
"odin",
|
|
"pascal",
|
|
"passwd",
|
|
"pem",
|
|
"perl",
|
|
"php",
|
|
"php_only",
|
|
"phpdoc",
|
|
"pioasm",
|
|
"po",
|
|
"pod",
|
|
"poe_filter",
|
|
"pony",
|
|
"powershell",
|
|
"printf",
|
|
"prisma",
|
|
"problog",
|
|
"prolog",
|
|
"promql",
|
|
"properties",
|
|
"proto",
|
|
"prql",
|
|
"psv",
|
|
"pug",
|
|
"puppet",
|
|
"purescript",
|
|
"pymanifest",
|
|
"python",
|
|
"ql",
|
|
"qmldir",
|
|
"qmljs",
|
|
"query",
|
|
"r",
|
|
"racket",
|
|
"ralph",
|
|
"rasi",
|
|
"razor",
|
|
"rbs",
|
|
"re2c",
|
|
"readline",
|
|
"regex",
|
|
"rego",
|
|
"requirements",
|
|
"rescript",
|
|
"rnoweb",
|
|
"robot",
|
|
"robots",
|
|
"roc",
|
|
"ron",
|
|
"rst",
|
|
"ruby",
|
|
"runescript",
|
|
"rust",
|
|
"scala",
|
|
"scfg",
|
|
"scheme",
|
|
"scss",
|
|
"sflog",
|
|
"slang",
|
|
"slim",
|
|
"slint",
|
|
"smali",
|
|
"smithy",
|
|
"snakemake",
|
|
"solidity",
|
|
"soql",
|
|
"sosl",
|
|
"sourcepawn",
|
|
"sparql",
|
|
"sql",
|
|
"squirrel",
|
|
"ssh_config",
|
|
"starlark",
|
|
"strace",
|
|
"styled",
|
|
"supercollider",
|
|
"superhtml",
|
|
"surface",
|
|
"svelte",
|
|
"sway",
|
|
"swift",
|
|
"sxhkdrc",
|
|
"systemtap",
|
|
"t32",
|
|
"tablegen",
|
|
"tact",
|
|
"tcl",
|
|
"teal",
|
|
"templ",
|
|
"tera",
|
|
"terraform",
|
|
"textproto",
|
|
"thrift",
|
|
"tiger",
|
|
"tlaplus",
|
|
"tmux",
|
|
"todotxt",
|
|
"tsv",
|
|
"tsx",
|
|
"turtle",
|
|
"twig",
|
|
"typespec",
|
|
"typoscript",
|
|
"udev",
|
|
"ungrammar",
|
|
"unison",
|
|
"usd",
|
|
"uxntal",
|
|
"v",
|
|
"vala",
|
|
"vento",
|
|
"verilog",
|
|
"vhdl",
|
|
"vhs",
|
|
"vim",
|
|
"vimdoc",
|
|
"vrl",
|
|
"wgsl",
|
|
"wgsl_bevy",
|
|
"wing",
|
|
"wit",
|
|
"xcompose",
|
|
"xml",
|
|
"xresources",
|
|
"yang",
|
|
"yuck",
|
|
"zathurarc",
|
|
"zig",
|
|
"ziggy",
|
|
"ziggy_schema",
|
|
},
|
|
},
|
|
}
|
|
|
|
Languages = languages
|