diff options
| author | srdusr <trevorgray@srdusr.com> | 2023-08-11 22:37:00 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2023-08-11 22:37:00 +0200 |
| commit | 7e3f32f105b0f32c252c8851e5604b1422c931ae (patch) | |
| tree | 21b6fed0d226fe6306d7e86f577e76eb12355213 /lua/plugins | |
| parent | fd7727660bc836779bccd128bef632a40e26dba7 (diff) | |
| download | dotfiles-7e3f32f105b0f32c252c8851e5604b1422c931ae.tar.gz dotfiles-7e3f32f105b0f32c252c8851e5604b1422c931ae.zip | |
Fixed formatting
Diffstat (limited to 'lua/plugins')
| -rw-r--r-- | lua/plugins/lsp.lua | 367 |
1 files changed, 99 insertions, 268 deletions
diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 2eba05f..d94052f 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,37 +1,22 @@ local lspconfig = require("lspconfig") local mason_lspconfig = require("mason-lspconfig") local null_ls = require("null-ls") ---local lsp_lines = require('lsp_lines') +-- local lsp_lines = require('lsp_lines') require("mason").setup() -require("mason-null-ls").setup({ - handlers = {}, - ensure_installed = nil, - automatic_installation = true, - automatic_setup = true, -}) +require("mason-null-ls").setup({ handlers = {}, ensure_installed = nil, automatic_installation = true, automatic_setup = true }) local keymap = vim.keymap local cmd = vim.cmd -local border = { - { "┌", "FloatBorder" }, - { "─", "FloatBorder" }, - { "┐", "FloatBorder" }, - { "│", "FloatBorder" }, - { "┘", "FloatBorder" }, - { "─", "FloatBorder" }, - { "└", "FloatBorder" }, - { "│", "FloatBorder" }, -} +local border = { { "┌", "FloatBorder" }, { "─", "FloatBorder" }, { "┐", "FloatBorder" }, { "│", "FloatBorder" }, { "┘", "FloatBorder" }, { "─", "FloatBorder" }, + { "└", "FloatBorder" }, { "│", "FloatBorder" } } -- Set up LSP servers if not done before if not vim.g.lsp_setup_done then -- Clear existing LSP clients for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do local clients = vim.lsp.get_clients({ buffer = bufnr }) - for _, client in ipairs(clients) do - client.stop() - end + for _, client in ipairs(clients) do client.stop() end end local signs = { Error = " ", Warn = "▲", Info = "", Hint = "⚑" } @@ -40,9 +25,9 @@ if not vim.g.lsp_setup_done then vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) end - --lsp_lines.setup() + -- lsp_lines.setup() - --vim.keymap.set("n", "g?", function() + -- vim.keymap.set("n", "g?", function() -- local lines_enabled = not vim.diagnostic.config().virtual_lines -- vim.diagnostic.config( -- { @@ -50,37 +35,28 @@ if not vim.g.lsp_setup_done then -- virtual_text = not lines_enabled -- } -- ) - --end, { noremap = true, silent = true }) + -- end, { noremap = true, silent = true }) vim.diagnostic.config({ underline = false, signs = true, - virtual_text = true, - --virtual_lines = { only_current_line = true }, + virtual_text = true, -- virtual_lines = { only_current_line = true }, virtual_lines = false, float = { show_header = true, - source = "if_many", - --border = 'rounded', + source = "if_many", -- border = 'rounded', border = border, - focusable = true, + focusable = true }, - update_in_insert = false, -- default to false - severity_sort = false, -- default to false + update_in_insert = false, -- default to false + severity_sort = false -- default to false }) - vim.lsp.handlers["textDocument/publishDiagnostics"] = - vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { - underline = false, - virtual_text = false, - signs = true, - update_in_insert = false, - }) + vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, + { underline = false, virtual_text = false, signs = true, update_in_insert = false }) - vim.lsp.handlers["textDocument/hover"] = - vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" }) - vim.lsp.handlers["textDocument/signatureHelp"] = - vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" }) + vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" }) + vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" }) -- Use an on_attach function to only map the following keys after the language server attaches to the current buffer local on_attach = function(client, bufnr) @@ -95,50 +71,28 @@ if not vim.g.lsp_setup_done then end -- Mappings map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>") - --map("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>") - map( - "n", - "gd", - "<cmd>lua require('goto-preview').goto_preview_definition()<CR>" - ) - --map("n", "gi", "<Cmd>lua vim.lsp.buf.implementation()<CR>") - map( - "n", - "gi", - "<cmd>lua require('goto-preview').goto_preview_implementation()<CR>" - ) - --map("n", "gr", "<Cmd>lua vim.lsp.buf.references()<CR>") - map( - "n", - "gr", - "<cmd>lua require('goto-preview').goto_preview_references()<CR>" - ) + -- map("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>") + map("n", "gd", "<cmd>lua require('goto-preview').goto_preview_definition()<CR>") + -- map("n", "gi", "<Cmd>lua vim.lsp.buf.implementation()<CR>") + map("n", "gi", "<cmd>lua require('goto-preview').goto_preview_implementation()<CR>") + -- map("n", "gr", "<Cmd>lua vim.lsp.buf.references()<CR>") + map("n", "gr", "<cmd>lua require('goto-preview').goto_preview_references()<CR>") map("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>") -- most lsp servers don't implement textDocument/Declaration, so gD is useless for now. map("n", "<leader>k", "<Cmd>lua vim.lsp.buf.signature_help()<CR>") - --map("n", "gt", "<Cmd>lua vim.lsp.buf.type_definition()<CR>") - map( - "n", - "gt", - "<cmd>lua require('goto-preview').goto_preview_type_definition()<CR>" - ) + -- map("n", "gt", "<Cmd>lua vim.lsp.buf.type_definition()<CR>") + map("n", "gt", "<cmd>lua require('goto-preview').goto_preview_type_definition()<CR>") map("n", "gn", "<Cmd>lua vim.lsp.buf.rename()<CR>") map("n", "ga", "<Cmd>lua vim.lsp.buf.code_action()<CR>") map("n", "gf", "<Cmd>lua vim.lsp.buf.formatting()<CR>") map("n", "go", "<Cmd>lua vim.diagnostic.open_float()<CR>") - map( - "n", - "<leader>go", - ":call utils#ToggleDiagnosticsOpenFloat()<CR> | :echom ('Toggle Diagnostics Float open/close...')<CR> | :sl! | echo ('')<CR>" - ) + map("n", "<leader>go", ":call utils#ToggleDiagnosticsOpenFloat()<CR> | :echom ('Toggle Diagnostics Float open/close...')<CR> | :sl! | echo ('')<CR>") map("n", "[d", "<Cmd>lua vim.diagnostic.goto_prev()<CR>") map("n", "]d", "<Cmd>lua vim.diagnostic.goto_next()<CR>") map("n", "gs", "<Cmd>lua vim.lsp.buf.document_symbol()<CR>") map("n", "gw", "<Cmd>lua vim.lsp.buf.workspace_symbol()<CR>") map("n", "<leader>wa", "<Cmd>lua vim.lsp.buf.add_workspace_folder()<CR>") map("n", "<leader>wr", "<Cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>") - map("n", "<leader>wl", function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end) + map("n", "<leader>wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) -- TODO: Use the nicer new API for autocommands cmd("augroup lsp_aucmds") @@ -187,43 +141,19 @@ augroup END asm_lsp = {}, bashls = {}, clangd = {}, - cssls = { - filetypes = { "css", "scss", "less", "sass" }, - root_dir = lspconfig.util.root_pattern("package.json", ".git"), - }, - -- ghcide = {}, + cssls = { filetypes = { "css", "scss", "less", "sass" }, root_dir = lspconfig.util.root_pattern("package.json", ".git") }, -- ghcide = {}, html = {}, jsonls = { prefer_null_ls = true, cmd = { "--stdio" } }, intelephense = {}, julials = { on_new_config = function(new_config, _) - local julia = - vim.fn.expand("~/.julia/environments/nvim-lspconfig/bin/julia") - if lspconfig.util.path.is_file(julia) then - new_config.cmd[1] = julia - end + local julia = vim.fn.expand("~/.julia/environments/nvim-lspconfig/bin/julia") + if lspconfig.util.path.is_file(julia) then new_config.cmd[1] = julia end end, - settings = { julia = { format = { indent = 2 } } }, - }, - pyright = { - settings = { - python = { - formatting = { provider = "yapf" }, - linting = { pytypeEnabled = true }, - }, - }, - }, - rust_analyzer = { - settings = { - ["rust-analyzer"] = { - cargo = { allFeatures = true }, - checkOnSave = { - command = "clippy", - extraArgs = { "--no-deps" }, - }, - }, - }, + settings = { julia = { format = { indent = 2 } } } }, + pyright = { settings = { python = { formatting = { provider = "yapf" }, linting = { pytypeEnabled = true } } } }, + rust_analyzer = { settings = { ["rust-analyzer"] = { cargo = { allFeatures = true }, checkOnSave = { command = "clippy", extraArgs = { "--no-deps" } } } } }, dartls = { cmd = { "dart", "language-server", "--protocol=lsp" }, filetypes = { "dart" }, @@ -232,16 +162,10 @@ augroup END flutterOutline = true, onlyAnalyzeProjectsWithOpenFiles = true, outline = true, - suggestFromUnimportedLibraries = true, - }, - -- root_dir = root_pattern("pubspec.yaml"), - settings = { - dart = { - completeFunctionCalls = true, - showTodos = true, - }, - }, - on_attach = function(client, bufnr) end, + suggestFromUnimportedLibraries = true + }, -- root_dir = root_pattern("pubspec.yaml"), + settings = { dart = { completeFunctionCalls = true, showTodos = true } }, + on_attach = function(client, bufnr) end }, lua_ls = { on_attach = on_attach, @@ -249,55 +173,36 @@ augroup END debounce_text_changes = 500, settings = { Lua = { - runtime = { - version = "LuaJIT", - path = vim.split(package.path, ";"), - }, - diagnostics = { - enable = true, - globals = { "vim" }, - }, - workspace = { - maxPreload = 2000, - preloadFileSize = 50000, - checkThirdParty = false, - }, - }, - }, + runtime = { version = "LuaJIT", path = vim.split(package.path, ";") }, + diagnostics = { enable = true, globals = { "vim" } }, + workspace = { maxPreload = 2000, preloadFileSize = 50000, checkThirdParty = false } + } + } }, sqlls = {}, tsserver = { - capabilities = require("cmp_nvim_lsp").default_capabilities( - vim.lsp.protocol.make_client_capabilities() - ), + capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), on_attach = function(client) client.server_capabilities.document_formatting = false client.server_capabilities.document_range_formatting = false end, - filetypes = { - "javascript", - "javascriptreact", - "javascript.jsx", - "typescript", - "typescriptreact", - "typescript.tsx", - }, + filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx" } }, vimls = {}, - yamlls = {}, + yamlls = {} } mason_lspconfig.setup({ - ensure_installed = servers, -- will be installed by mason - automatic_installation = true, + ensure_installed = servers, -- will be installed by mason + automatic_installation = true }) -- Your other configurations ... - --require("lspconfig").dartls.setup({ capabilities = capabilities }) - --local installed_lsp = mason_lspconfig.ensure_installed - --local mason_lspconfig = require("mason-lspconfig").ensure_installed + -- require("lspconfig").dartls.setup({ capabilities = capabilities }) + -- local installed_lsp = mason_lspconfig.ensure_installed + -- local mason_lspconfig = require("mason-lspconfig").ensure_installed - --require("lspconfig").setup({ + -- require("lspconfig").setup({ -- function() -- for _, lsp in ipairs(installed_lsp) do -- if @@ -315,7 +220,7 @@ augroup END -- end -- end -- end, - --}) + -- }) for server, config in pairs(servers) do if config.prefer_null_ls then @@ -339,129 +244,71 @@ augroup END local builtins = null_ls.builtins local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) - --local eslint_opts = { + -- local eslint_opts = { -- -- condition = function(utils) -- -- return utils.root_has_file ".eslintrc.js" or utils.root_has_file ".eslintrc" or utils.root_has_file ".eslintrc.json" -- -- end, -- -- diagnostics_format = "#{m} [#{c}]", -- prefer_local = true, - --} - - --null_ls.setup({ - local sources = { - -- Diagnostics - builtins.diagnostics.chktex, - --null_ls.builtins.code_actions.eslint_d, - --null_ls.builtins.diagnostics.eslint_d, - --null_ls.builtins.formatting.eslint_d, + -- } + + -- null_ls.setup({ + local sources = { -- Diagnostics + builtins.diagnostics.chktex, -- null_ls.builtins.code_actions.eslint_d, + -- null_ls.builtins.diagnostics.eslint_d, + -- null_ls.builtins.formatting.eslint_d, -- null_ls.builtins.diagnostics.cppcheck, -- null_ls.builtins.diagnostics.proselint, -- null_ls.builtins.diagnostics.pylint, - --builtins.diagnostics.selene, - builtins.diagnostics.dotenv_linter, - builtins.diagnostics.shellcheck.with({ - -- shell script diagnostics - diagnostic_config = { - -- see :help vim.diagnostic.config() - underline = true, - virtual_text = false, - signs = true, - update_in_insert = false, - severity_sort = true, - }, - diagnostics_format = "[#{c}] #{m} (#{s})", - -- this will run every time the source runs, - -- so you should prefer caching results if possible - }), - builtins.diagnostics.zsh.with({ - filetypes = "zsh", - "sh", - }), - builtins.diagnostics.todo_comments, - builtins.diagnostics.teal, + -- builtins.diagnostics.selene, + builtins.diagnostics.dotenv_linter, builtins.diagnostics.shellcheck.with({ -- shell script diagnostics + diagnostic_config = { -- see :help vim.diagnostic.config() + underline = true, virtual_text = false, signs = true, update_in_insert = false, severity_sort = true }, + diagnostics_format = "[#{c}] #{m} (#{s})" -- this will run every time the source runs, + -- so you should prefer caching results if possible + }), builtins.diagnostics.zsh.with({ filetypes = "zsh", "sh" }), builtins.diagnostics.todo_comments, builtins.diagnostics.teal, -- null_ls.builtins.diagnostics.vale, - builtins.diagnostics.vint, - builtins.diagnostics.tidy, - builtins.diagnostics.php, - builtins.diagnostics.phpcs, - builtins.diagnostics.flake8, - builtins.diagnostics.eslint_d.with({ - condition = function(utils) - return utils.root_has_file(".eslintrc.json") - end, - }), - builtins.formatting.eslint_d, + builtins.diagnostics.vint, builtins.diagnostics.tidy, builtins.diagnostics.php, builtins.diagnostics.phpcs, builtins.diagnostics.flake8, + builtins.diagnostics.eslint_d.with({ condition = function(utils) return utils.root_has_file(".eslintrc.json") end }), builtins.formatting.eslint_d, -- null_ls.builtins.diagnostics.write_good.with { filetypes = { 'markdown', 'tex' } }, -- Formatting - builtins.formatting.shfmt.with({ - filetypes = { "bash", "zsh", "sh" }, - extra_args = { "-i", "2", "-ci" }, - }), - builtins.formatting.shellharden, - builtins.formatting.trim_whitespace.with({ - filetypes = { "tmux", "teal", "zsh" }, - }), - --builtins.formatting.beautysh, - builtins.formatting.beautysh.with({ - filetypes = "zsh", - }), - builtins.formatting.clang_format, - builtins.formatting.rustfmt, - builtins.formatting.sql_formatter, + builtins.formatting.shfmt.with({ filetypes = { "bash", "zsh", "sh" }, extra_args = { "-i", "2", "-ci" } }), builtins.formatting.shellharden, + builtins.formatting.trim_whitespace.with({ filetypes = { "tmux", "teal", "zsh" } }), -- builtins.formatting.beautysh, + builtins.formatting.beautysh.with({ filetypes = "zsh" }), builtins.formatting.clang_format, builtins.formatting.rustfmt, builtins.formatting.sql_formatter, -- null_ls.builtins.formatting.cmake_format, - builtins.formatting.isort, - builtins.formatting.htmlbeautifier, - -- null_ls.builtins.formatting.prettier, + builtins.formatting.isort, builtins.formatting.htmlbeautifier, -- null_ls.builtins.formatting.prettier, builtins.formatting.prettierd, builtins.formatting.prettier.with({ - filetypes = { - "javascript", - "javascriptreact", - "typescript", - "typescriptreact", - "json", - "yaml", - "markdown", - "html", - "css", - "scss", - "less", - "graphql", - "vue", - "svelte", - }, - extra_args = { "--single-quote", "--tab-width 4", "--print-width 200" }, + filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact", "json", "yaml", "markdown", "html", "css", + "scss", "less", "graphql", "vue", "svelte" }, + extra_args = { "--single-quote", "--tab-width 4", "--print-width 200" } + }), builtins.formatting.rustfmt, + -- builtins.formatting.stylua, + -- builtins.formatting.lua_format, + builtins.formatting.stylua.with({ + filetypes = { "lua" }, + command = "stylua", + args = { "--indent-width", "2", "--column-width", "160", "--indent-type", "Spaces", "-" } }), - builtins.formatting.rustfmt, - builtins.formatting.stylua, - --builtins.formatting.dart_format, - builtins.formatting.dart_format.with({ - filetypes = { "dart" }, - }), - builtins.formatting.trim_whitespace, - builtins.formatting.yapf, + -- builtins.formatting.dart_format, + builtins.formatting.dart_format.with({ filetypes = { "dart" } }), builtins.formatting.trim_whitespace, builtins.formatting.yapf, -- null_ls.builtins.formatting.black -- Code Actions builtins.code_actions.shellcheck, -- shell script code actions - --builtins.code_actions.eslint_d.with(eslint_opts), + -- builtins.code_actions.eslint_d.with(eslint_opts), -- null_ls.builtins.code_actions.refactoring.with { filetypes = { 'javascript', 'typescript', 'lua', 'python', 'c', 'cpp' } }, - builtins.code_actions.gitsigns, - builtins.code_actions.gitrebase, - - -- Hover - builtins.hover.dictionary, - builtins.hover.printenv, - } - --}) + builtins.code_actions.gitsigns, builtins.code_actions.gitrebase, -- Hover + builtins.hover.dictionary, builtins.hover.printenv } + -- }) -- Linters/Formatters ensure installed - --for _, pkg_name in ipairs({ + -- for _, pkg_name in ipairs({ -- "dart-debug-Adaptor", -- "stylua", -- "prettier", -- "prettierd", - --}) do + -- }) do -- Import the builtins table from the null-ls module and store it in the null_ls_sources variable null_ls.setup({ @@ -470,39 +317,29 @@ augroup END on_attach = function(client, bufnr) if client.supports_method("textDocument/formatting") then vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) - vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - buffer = bufnr, - callback = function() - vim.lsp.buf.format() - end, - }) + vim.api.nvim_create_autocmd("BufWritePre", { group = augroup, buffer = bufnr, callback = function() vim.lsp.buf.format() end }) end - end, + end }) -- Install all the null-ls sources using Mason local registry = require("mason-registry") for _, source_name in ipairs(sources) do local ok, pkg = pcall(registry.get_package, source_name) - if ok then - if not pkg:is_installed() then - pkg:install() - end - end + if ok then if not pkg:is_installed() then pkg:install() end end end -- Loop through the null_ls_sources table and install the packages -- Install all sources for null-ls - --local null_ls_sources = require("null-ls").builtins + -- local null_ls_sources = require("null-ls").builtins - --for _, source_name in ipairs(null_ls_sources) do + -- for _, source_name in ipairs(null_ls_sources) do -- local ok, pkg = pcall(mason.get_package, source_name) -- if ok then -- if not pkg:is_installed() then -- pkg:install() -- end -- end - --end + -- end vim.api.nvim_create_user_command("NullLsToggle", function() -- you can also create commands to disable or enable sources require("null-ls").toggle({}) @@ -510,14 +347,8 @@ augroup END local null_ls_stop = function() local null_ls_client - for _, client in ipairs(vim.lsp.get_clients()) do - if client.name == "null-ls" then - null_ls_client = client - end - end - if not null_ls_client then - return - end + for _, client in ipairs(vim.lsp.get_clients()) do if client.name == "null-ls" then null_ls_client = client end end + if not null_ls_client then return end null_ls_client.stop() end |
