diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/lvim/config/init.lua | 127 | ||||
| -rw-r--r-- | lua/lvim/config/supported_languages.lua | 94 | ||||
| -rw-r--r-- | lua/lvim/lsp/config.lua | 15 | ||||
| -rw-r--r-- | lua/lvim/lsp/manager.lua | 13 | ||||
| -rw-r--r-- | lua/lvim/lsp/templates.lua | 38 | 
5 files changed, 134 insertions, 153 deletions
| diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua index c06d28ef..e89cb260 100644 --- a/lua/lvim/config/init.lua +++ b/lua/lvim/config/init.lua @@ -33,120 +33,31 @@ function M:init()    local lvim_lsp_config = require "lvim.lsp.config"    lvim.lsp = vim.deepcopy(lvim_lsp_config) -  local supported_languages = { -    "asm", -    "bash", -    "beancount", -    "bibtex", -    "bicep", -    "c", -    "c_sharp", -    "clojure", -    "cmake", -    "comment", -    "commonlisp", -    "cpp", -    "crystal", -    "cs", -    "css", -    "cuda", -    "d", -    "dart", -    "dockerfile", -    "dot", -    "elixir", -    "elm", -    "emmet", -    "erlang", -    "fennel", -    "fish", -    "fortran", -    "gdscript", -    "glimmer", -    "go", -    "gomod", -    "graphql", -    "haskell", -    "hcl", -    "heex", -    "html", -    "java", -    "javascript", -    "javascriptreact", -    "jsdoc", -    "json", -    "json5", -    "jsonc", -    "julia", -    "kotlin", -    "latex", -    "ledger", -    "less", -    "lua", -    "markdown", -    "nginx", -    "nix", -    "ocaml", -    "ocaml_interface", -    "perl", -    "php", -    "pioasm", -    "ps1", -    "puppet", -    "python", -    "ql", -    "query", -    "r", -    "regex", -    "rst", -    "ruby", -    "rust", -    "scala", -    "scss", -    "sh", -    "solidity", -    "sparql", -    "sql", -    "supercollider", -    "surface", -    "svelte", -    "swift", -    "tailwindcss", -    "terraform", -    "tex", -    "tlaplus", -    "toml", -    "tsx", -    "turtle", -    "typescript", -    "typescriptreact", -    "verilog", -    "vim", -    "vue", -    "yaml", -    "yang", -    "zig", -  } - +  local supported_languages = require "lvim.config.supported_languages"    require("lvim.lsp.manager").init_defaults(supported_languages)  end -local function deprecation_notice() -  local in_headless = #vim.api.nvim_list_uis() == 0 -  if in_headless then -    return +local function handle_deprecated_settings() +  local function deprecation_notice(setting) +    local in_headless = #vim.api.nvim_list_uis() == 0 +    if in_headless then +      return +    end + +    local msg = string.format( +      "Deprecation notice: [%s] setting is no longer supported. See https://github.com/LunarVim/LunarVim#breaking-changes", +      setting +    ) +    vim.schedule(function() +      vim.notify(msg, vim.log.levels.WARN) +    end)    end +  ---lvim.lang.FOO.lsp    for lang, entry in pairs(lvim.lang) do -    local deprecated_config = entry["lvim.lsp"] or {} +    local deprecated_config = entry["lsp"] or {}      if not vim.tbl_isempty(deprecated_config) then -      local msg = string.format( -        "Deprecation notice: [lvim.lang.%s.lsp] setting is no longer supported. See https://github.com/LunarVim/LunarVim#breaking-changes", -        lang -      ) -      vim.schedule(function() -        vim.notify(msg, vim.log.levels.WARN) -      end) +      deprecation_notice(string.format("lvim.lang.%s.lsp", lang))      end    end  end @@ -165,7 +76,7 @@ function M:load(config_path)      end    end -  deprecation_notice() +  handle_deprecated_settings()    autocmds.define_augroups(lvim.autocommands) diff --git a/lua/lvim/config/supported_languages.lua b/lua/lvim/config/supported_languages.lua new file mode 100644 index 00000000..db28df12 --- /dev/null +++ b/lua/lvim/config/supported_languages.lua @@ -0,0 +1,94 @@ +return { +  "asm", +  "bash", +  "beancount", +  "bibtex", +  "bicep", +  "c", +  "c_sharp", +  "clojure", +  "cmake", +  "comment", +  "commonlisp", +  "cpp", +  "crystal", +  "cs", +  "css", +  "cuda", +  "d", +  "dart", +  "dockerfile", +  "dot", +  "elixir", +  "elm", +  "emmet", +  "erlang", +  "fennel", +  "fish", +  "fortran", +  "gdscript", +  "glimmer", +  "go", +  "gomod", +  "graphql", +  "haskell", +  "hcl", +  "heex", +  "html", +  "java", +  "javascript", +  "javascriptreact", +  "jsdoc", +  "json", +  "json5", +  "jsonc", +  "julia", +  "kotlin", +  "latex", +  "ledger", +  "less", +  "lua", +  "markdown", +  "nginx", +  "nix", +  "ocaml", +  "ocaml_interface", +  "perl", +  "php", +  "pioasm", +  "ps1", +  "puppet", +  "python", +  "ql", +  "query", +  "r", +  "regex", +  "rst", +  "ruby", +  "rust", +  "scala", +  "scss", +  "sh", +  "solidity", +  "sparql", +  "sql", +  "supercollider", +  "surface", +  "svelte", +  "swift", +  "tailwindcss", +  "terraform", +  "tex", +  "tlaplus", +  "toml", +  "tsx", +  "turtle", +  "typescript", +  "typescriptreact", +  "verilog", +  "vim", +  "vue", +  "yaml", +  "yang", +  "zig", +} diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index 30336cc2..96430631 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -15,7 +15,6 @@ return {      underline = true,      severity_sort = true,    }, -  override = {},    document_highlight = true,    code_lens_refresh = true,    popup_border = "single", @@ -42,4 +41,18 @@ return {    null_ls = {      setup = {},    }, +  override = { +    "angularls", +    "ansiblels", +    "denols", +    "ember", +    "jedi_language_server", +    "pylsp", +    "rome", +    "sqlls", +    "sqls", +    "stylelint_lsp", +    "tailwindcss", +    "volar", +  },  } diff --git a/lua/lvim/lsp/manager.lua b/lua/lvim/lsp/manager.lua index 678a08af..0b11c175 100644 --- a/lua/lvim/lsp/manager.lua +++ b/lua/lvim/lsp/manager.lua @@ -1,7 +1,7 @@  local M = {}  local Log = require "lvim.core.log" -local lsp_utils = require "lvim.lsp.utils" +local lvim_lsp_utils = require "lvim.lsp.utils"  function M.init_defaults(languages)    for _, entry in ipairs(languages) do @@ -15,15 +15,6 @@ function M.init_defaults(languages)    end  end -local function is_overridden(server) -  local overrides = lvim.lsp.override -  if type(overrides) == "table" then -    if vim.tbl_contains(overrides, server) then -      return true -    end -  end -end -  ---Resolve the configuration for a server based on both common and user configuration  ---@param name string  ---@param user_config table [optional] @@ -54,7 +45,7 @@ end  function M.setup(server_name, user_config)    vim.validate { name = { server_name, "string" } } -  if lsp_utils.is_client_active(server_name) or is_overridden(server_name) then +  if lvim_lsp_utils.is_client_active(server_name) then      return    end diff --git a/lua/lvim/lsp/templates.lua b/lua/lvim/lsp/templates.lua index e0741b1b..3478f4fb 100644 --- a/lua/lvim/lsp/templates.lua +++ b/lua/lvim/lsp/templates.lua @@ -2,7 +2,7 @@ local M = {}  local Log = require "lvim.core.log"  local utils = require "lvim.utils" -local get_supported_filetypes = require("lvim.lsp.utils").get_supported_filetypes +local lvim_lsp_utils = require "lvim.lsp.utils"  local ftplugin_dir = lvim.lsp.templates_dir @@ -15,48 +15,20 @@ function M.remove_template_files()    end  end ----Checks if a server is ignored by default because of a conflict ----Only TSServer is enabled by default for the javascript-family ----@param server_name string -function M.is_ignored(server_name, filetypes) -  --TODO: this is easy to be made configurable once stable -  filetypes = filetypes or get_supported_filetypes(server_name) - -  if vim.tbl_contains(filetypes, "javascript") then -    if server_name == "tsserver" then -      return false -    else -      return true -    end -  end - -  local blacklist = { -    "jedi_language_server", -    "pylsp", -    "sqlls", -    "sqls", -    "angularls", -    "ansiblels", -  } -  return vim.tbl_contains(blacklist, server_name) -end -  ---Generates an ftplugin file based on the server_name in the selected directory  ---@param server_name string name of a valid language server, e.g. pyright, gopls, tsserver, etc.  ---@param dir string the full path to the desired directory  function M.generate_ftplugin(server_name, dir) -  -- we need to go through lspconfig to get the corresponding filetypes currently -  local filetypes = get_supported_filetypes(server_name) or {} -  if not filetypes then +  if vim.tbl_contains(lvim.lsp.override, server_name) then      return    end -  if M.is_ignored(server_name, filetypes) then +  -- we need to go through lspconfig to get the corresponding filetypes currently +  local filetypes = lvim_lsp_utils.get_supported_filetypes(server_name) or {} +  if not filetypes then      return    end -  -- print("got associated filetypes: " .. vim.inspect(filetypes)) -    for _, filetype in ipairs(filetypes) do      local filename = join_paths(dir, filetype .. ".lua")      local setup_cmd = string.format([[require("lvim.lsp.manager").setup(%q)]], server_name) | 
