neovim configuration using rocks.nvim plugin manager
1---@module "lspconfig"
2
3-- HACK: is `@type lspconfig.options` a thing?
4
5---@diagnostic disable: missing-fields
6---@type table<string, vim.lsp.ClientConfig>
7return {
8 astro = {},
9 clangd = {},
10 cssls = {},
11 dartls = {},
12 emmet_language_server = {},
13 gopls = {},
14 hls = {
15 settings = {
16 haskell = {
17 formattingProvider = "ormolu",
18 checkProject = true,
19 },
20 },
21 },
22 html = {},
23 jsonls = {},
24 lua_ls = {
25 -- on_init = require("utils").lazydev_is_not_working,
26 settings = {
27 Lua = {
28 hint = {
29 enable = true,
30 arrayIndex = "Disable",
31 paramType = false,
32 setType = true,
33 },
34 completion = {
35 callSnippet = "Replace",
36 },
37 diagnostics = {
38 unusedLocalExclude = { "_*" },
39 globals = { "vim" },
40 },
41 format = {
42 enable = false, -- use stylua istead
43 },
44 workspace = {
45 checkThirdParty = "Disable",
46 },
47 },
48 },
49 },
50 nil_ls = {
51 on_attach = function (client, bufnr)
52 -- if bufIsBig(bufnr) then
53 client.server_capabilities.semanticTokensProvider = nil
54 -- end
55 end,
56 settings = {
57 ["nil"] = {
58 nix = {
59 flake = {
60 autoArchive = false,
61 },
62 },
63 },
64 },
65 },
66 ts_ls = {
67 settings = {
68 typescript = {
69 inlayHints = {
70 includeInlayParameterNameHints = "all",
71 includeInlayParameterNameHintsWhenArgumentMatchesName = false,
72 includeInlayVariableTypeHintsWhenTypeMatchesName = false,
73 includeInlayFunctionParameterTypeHints = true,
74 includeInlayVariableTypeHints = false,
75 includeInlayPropertyDeclarationTypeHints = true,
76 includeInlayFunctionLikeReturnTypeHints = true,
77 includeInlayEnumMemberValueHints = true,
78 },
79 },
80 javascript = {
81 inlayHints = {
82 includeInlayParameterNameHints = "all",
83 includeInlayParameterNameHintsWhenArgumentMatchesName = false,
84 includeInlayVariableTypeHintsWhenTypeMatchesName = false,
85 includeInlayFunctionParameterTypeHints = true,
86 includeInlayVariableTypeHints = false,
87 includeInlayPropertyDeclarationTypeHints = true,
88 includeInlayFunctionLikeReturnTypeHints = true,
89 includeInlayEnumMemberValueHints = true,
90 },
91 },
92 },
93 },
94 sourcekit = {},
95 svelte = {},
96 ruff = {},
97 rust_analyzer = {
98 cargo = {
99 buildScripts = {
100 -- enable = true,
101 },
102 },
103 },
104 -- volar = {
105 -- filetypes = {
106 -- "javascript",
107 -- "typescript",
108 -- "javascriptreact",
109 -- "typescriptreact",
110 -- "vue",
111 -- "json",
112 -- },
113 -- -- on_new_config = function(new_config, new_root_dir)
114 -- -- new_config.init_options.typescript.tsdk = "/path/to/tsserver"
115 -- -- end
116 -- },
117 -- yamlls = {
118 -- settings = {
119 -- yaml = {
120 -- on_new_config = function(new_config)
121 -- if require("utils").plugin.has("SchemaStore.nvim") then
122 -- new_config.settings.yaml.schemas = new_config.settings.yaml.schemas or {}
123 -- vim.list_extend(new_config.settings.yaml.schemas, require("schemastore").yaml.schemas())
124 -- end
125 -- end,
126 -- schemaStore = {
127 -- enable = false,
128 -- },
129 -- },
130 -- },
131 -- },
132}