diff options
Diffstat (limited to '.config/nvim/lua/plugins/lsp.lua')
| -rw-r--r-- | .config/nvim/lua/plugins/lsp.lua | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua index ffa7837..ba577bc 100644 --- a/.config/nvim/lua/plugins/lsp.lua +++ b/.config/nvim/lua/plugins/lsp.lua @@ -1,8 +1,8 @@ require('mason').setup() -local lspconfig = require 'lspconfig' -local mason_lspconfig = require 'mason-lspconfig' -local null_ls = require 'null-ls' ---local lsp_lines = require 'lsp_lines' +local lspconfig = require('lspconfig') +local mason_lspconfig = require('mason-lspconfig') +local null_ls = require('null-ls') +--local lsp_lines = require('lsp_lines') local keymap = vim.keymap local cmd = vim.cmd @@ -179,6 +179,26 @@ local servers = { }, }, }, + dartls = ({ + cmd = { "dart", "language-server", "--protocol=lsp" }, + filetypes = { "dart" }, + init_options = { + closingLabels = true, + 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, + }), lua_ls = ({ on_attach = on_attach, capabilities = capabilities, @@ -226,6 +246,19 @@ mason_lspconfig.setup({ automatic_installation = true, }) +-- Linters/Formatters ensure installed +local registry = require("mason-registry") +for _, pkg_name in ipairs { "dart-debug-Adaptor", "stylua", "prettier", "prettierd" } do + local ok, pkg = pcall(registry.get_package, pkg_name) + if ok then + if not pkg:is_installed() then + pkg:install() + end + end +end + +require("lspconfig").dartls.setup {capabilities = capabilities,} + for server, config in pairs(servers) do if config.prefer_null_ls then if config.on_attach then @@ -307,14 +340,15 @@ null_ls.setup { 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" }, }), - builtins.formatting.prettierd, builtins.formatting.rustfmt, builtins.formatting.stylua, + builtins.formatting.dart_format, builtins.formatting.trim_whitespace, builtins.formatting.yapf, -- null_ls.builtins.formatting.black |
