diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/filetype_map.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/metadata.lua | 3 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/codeqlls/init.lua | 62 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 1 |
4 files changed, 67 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua index ba5a3740..a93b4ef9 100644 --- a/lua/nvim-lsp-installer/_generated/filetype_map.lua +++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua @@ -69,6 +69,7 @@ return { puppet = { "puppet" }, purescript = { "purescriptls" }, python = { "jedi_language_server", "pylsp", "pyright" }, + ql = { "codeqlls" }, razor = { "tailwindcss" }, reason = { "ocamlls", "tailwindcss" }, rescript = { "rescriptls", "tailwindcss" }, diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua index ff4a1b5c..eeb75b73 100644 --- a/lua/nvim-lsp-installer/_generated/metadata.lua +++ b/lua/nvim-lsp-installer/_generated/metadata.lua @@ -22,6 +22,9 @@ return { cmake = { filetypes = { "cmake" } }, + codeqlls = { + filetypes = { "ql" } + }, cssls = { filetypes = { "css", "scss", "less" } }, diff --git a/lua/nvim-lsp-installer/servers/codeqlls/init.lua b/lua/nvim-lsp-installer/servers/codeqlls/init.lua new file mode 100644 index 00000000..4e2bc168 --- /dev/null +++ b/lua/nvim-lsp-installer/servers/codeqlls/init.lua @@ -0,0 +1,62 @@ +local server = require "nvim-lsp-installer.server" +local path = require "nvim-lsp-installer.path" +local std = require "nvim-lsp-installer.installers.std" +local Data = require "nvim-lsp-installer.data" +local platform = require "nvim-lsp-installer.platform" +local context = require "nvim-lsp-installer.installers.context" + +local coalesce, when = Data.coalesce, Data.when + +return function(name, root_dir) + ---@param search_path string|nil + ---@return string[] + local function create_cmd(search_path) + local cmd = { + path.concat { root_dir, "codeql", platform.is_win and "codeql.cmd" or "codeql" }, + "execute", + "language-server", + "--check-errors", + "ON_CHANGE", + "-q", + } + if search_path then + table.insert(cmd, search_path) + end + return cmd + end + + return server.Server:new { + name = name, + root_dir = root_dir, + languages = { "codeql" }, + installer = { + context.use_github_release_file( + "github/codeql-cli-binaries", + coalesce( + when(platform.is_mac, "codeql-osx64.zip"), + when(platform.is_unix, "codeql-linux64.zip"), + when(platform.is_win, "codeql-win64.zip") + ) + ), + context.capture(function(ctx) + return std.unzip_remote(ctx.github_release_file) + end), + }, + default_options = { + cmd = create_cmd(), + on_new_config = function(config) + if + type(config.settings.search_path) == "table" and not vim.tbl_isempty(config.settings.search_path) + then + local search_path = "--search-path=" + for _, path_entry in ipairs(config.settings.search_path) do + search_path = search_path .. vim.fn.expand(path_entry) .. ":" + end + config.cmd = create_cmd(search_path) + else + config.cmd = create_cmd() + end + end, + }, + } +end diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 517cb2a2..88a557ad 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -39,6 +39,7 @@ local CORE_SERVERS = Data.set_of { "clangd", "clojure_lsp", "cmake", + "codeqlls", "cssls", "denols", "diagnosticls", |
