aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/plugins/lsp.lua43
1 files changed, 38 insertions, 5 deletions
diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua
index 2c0befb..ba577bc 100644
--- a/lua/plugins/lsp.lua
+++ b/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,12 +340,12 @@ 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,