aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/dartls.lua
diff options
context:
space:
mode:
authorHirokazu Hata <h.hata.ai.t@gmail.com>2020-09-06 17:49:21 +0900
committerHirokazu Hata <h.hata.ai.t@gmail.com>2020-09-06 17:49:21 +0900
commitddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de (patch)
treec301c7a765535dcb5387d76cc71e28d845dcce23 /lua/lspconfig/dartls.lua
parentMerge pull request #238 from steelsojka/angular-ls (diff)
downloadnvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar
nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.gz
nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.bz2
nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.lz
nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.xz
nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.zst
nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.zip
Rename nvim_lsp to lspconfig
Diffstat (limited to 'lua/lspconfig/dartls.lua')
-rw-r--r--lua/lspconfig/dartls.lua55
1 files changed, 55 insertions, 0 deletions
diff --git a/lua/lspconfig/dartls.lua b/lua/lspconfig/dartls.lua
new file mode 100644
index 00000000..1baf05d6
--- /dev/null
+++ b/lua/lspconfig/dartls.lua
@@ -0,0 +1,55 @@
+local util = require 'lspconfig/util'
+local configs = require 'lspconfig/configs'
+
+local server_name = "dartls"
+local bin_name = "dart"
+
+local find_dart_sdk_root_path = function()
+ if vim.fn["executable"]("flutter") == 1 then
+ local flutter_path = vim.fn["resolve"](vim.fn["exepath"]("flutter"))
+ local flutter_bin = vim.fn["fnamemodify"](flutter_path, ":h")
+ return flutter_bin.."/cache/dart-sdk/bin/dart"
+ elseif vim.fn["executable"]("dart") == 1 then
+ return vim.fn["resolve"](vim.fn["exepath"]("dart"))
+ else
+ return ''
+ end
+end
+
+local analysis_server_snapshot_path = function()
+ local dart_sdk_root_path = vim.fn["fnamemodify"](find_dart_sdk_root_path(), ":h")
+ local snapshot = dart_sdk_root_path.."/snapshots/analysis_server.dart.snapshot"
+
+ if vim.fn["has"]("win32") == 1 or vim.fn["has"]("win64") == 1 then
+ snapshot = snapshot:gsub("/", "\\")
+ end
+
+ return snapshot
+end
+
+configs[server_name] = {
+ default_config = {
+ cmd = {bin_name, analysis_server_snapshot_path(), "--lsp"};
+ filetypes = {"dart"};
+ root_dir = util.root_pattern("pubspec.yaml");
+ init_options = {
+ onlyAnalyzeProjectsWithOpenFiles = "false",
+ suggestFromUnimportedLibraries = "true",
+ closingLabels = "true",
+ outline = "true",
+ flutterOutline= "false"
+ };
+ };
+ docs = {
+ package_json = "https://raw.githubusercontent.com/Dart-Code/Dart-Code/master/package.json";
+ description = [[
+https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec
+
+Language server for dart.
+]];
+ default_config = {
+ root_dir = [[root_pattern("pubspec.yaml")]];
+ };
+ };
+};
+-- vim:et ts=2 sw=2