From 05929dd113c573198311651d21739c7ad42dfc4c Mon Sep 17 00:00:00 2001 From: tms Date: Fri, 7 Feb 2020 17:42:30 +0100 Subject: Add dartls lua script --- lua/nvim_lsp/dartls.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 lua/nvim_lsp/dartls.lua (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua new file mode 100644 index 00000000..f20e5dfa --- /dev/null +++ b/lua/nvim_lsp/dartls.lua @@ -0,0 +1,42 @@ +local nvim_lsp = require 'nvim_lsp' +local configs = require 'nvim_lsp/configs' +local lsp = vim.lsp + +local server_name = "dartls" +local bin_name = "dart" +local dart_sdk_path = os.getenv("DART_SDK") + +configs[server_name] = { + default_config = { + cmd = {"dart", dart_sdk_path .. "/bin/snapshots/analysis_server.dart.snapshot", "--lsp"}; + filetypes = {"dart"}; + root_dir = nvim_lsp.util.root_pattern("pubspec.yaml"); + log_level = lsp.protocol.MessageType.Warning; + init_options = { + onlyAnalyzeProjectsWithOpenFiles = "false", + suggestFromUnimportedLibraries = "true", + closingLabels = "true", + outline = "true", + fluttreOutline= "false" + }; + settings = {}; + }; + docs = { + description = [[ +https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec + +Language server for dart. +]]; + default_config = { + root_dir = "pubspec.yaml folder"; + }; + }; +}; + + +configs[server_name].install_info = function() + return { + is_installed = dart_sdk_path ~= nil + } +end + -- cgit v1.2.3-70-g09d2 From 43e7af9bb0d081982ac377c11301c4d1abc2014b Mon Sep 17 00:00:00 2001 From: tms Date: Fri, 7 Feb 2020 17:53:53 +0100 Subject: Typo unused variable --- lua/nvim_lsp/dartls.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index f20e5dfa..632cf4fe 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -8,7 +8,7 @@ local dart_sdk_path = os.getenv("DART_SDK") configs[server_name] = { default_config = { - cmd = {"dart", dart_sdk_path .. "/bin/snapshots/analysis_server.dart.snapshot", "--lsp"}; + cmd = {bin_name, dart_sdk_path .. "/bin/snapshots/analysis_server.dart.snapshot", "--lsp"}; filetypes = {"dart"}; root_dir = nvim_lsp.util.root_pattern("pubspec.yaml"); log_level = lsp.protocol.MessageType.Warning; -- cgit v1.2.3-70-g09d2 From 272185d1024ba8a0554dd902efebc5814edfc80e Mon Sep 17 00:00:00 2001 From: tms Date: Sat, 8 Feb 2020 01:04:25 +0100 Subject: Remove whitespace (luacheck err) --- lua/nvim_lsp/dartls.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index 632cf4fe..267322c3 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -34,7 +34,7 @@ Language server for dart. }; -configs[server_name].install_info = function() +configs[server_name].install_info = function() return { is_installed = dart_sdk_path ~= nil } -- cgit v1.2.3-70-g09d2 From 97ff92d0e501bc0be85c043bf0ededadc8754f44 Mon Sep 17 00:00:00 2001 From: GenesisTMS Date: Sat, 8 Feb 2020 13:11:00 +0100 Subject: Update lua/nvim_lsp/dartls.lua Co-Authored-By: Hirokazu Hata --- lua/nvim_lsp/dartls.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index 267322c3..c33edb09 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -25,7 +25,7 @@ configs[server_name] = { description = [[ https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec -Language server for dart. +Language server for Dart. ]]; default_config = { root_dir = "pubspec.yaml folder"; @@ -39,4 +39,3 @@ configs[server_name].install_info = function() is_installed = dart_sdk_path ~= nil } end - -- cgit v1.2.3-70-g09d2 From 9589db6da97f76c4f92c0845eab15a33c99c50e3 Mon Sep 17 00:00:00 2001 From: GenesisTMS Date: Sat, 8 Feb 2020 13:11:16 +0100 Subject: Update lua/nvim_lsp/dartls.lua Co-Authored-By: Hirokazu Hata --- lua/nvim_lsp/dartls.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index c33edb09..c9b980a5 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -28,7 +28,7 @@ https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec Language server for Dart. ]]; default_config = { - root_dir = "pubspec.yaml folder"; + root_dir = [[root_pattern("pubspec.yaml")]]; }; }; }; -- cgit v1.2.3-70-g09d2 From 57793164a704f8d702c9d68ec753e661a204c4bc Mon Sep 17 00:00:00 2001 From: GenesisTMS Date: Sat, 8 Feb 2020 13:12:16 +0100 Subject: Update lua/nvim_lsp/dartls.lua Add package json for automatically update README Co-Authored-By: Hirokazu Hata --- lua/nvim_lsp/dartls.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index c9b980a5..aef860ff 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -22,6 +22,7 @@ configs[server_name] = { settings = {}; }; 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 -- cgit v1.2.3-70-g09d2 From 4247d7f637e5d52fa7ddfe22e86e457219e6785c Mon Sep 17 00:00:00 2001 From: tms Date: Sat, 8 Feb 2020 13:17:15 +0100 Subject: Update --- lua/nvim_lsp/dartls.lua | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index aef860ff..663c47a1 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -22,7 +22,7 @@ configs[server_name] = { settings = {}; }; docs = { - package_json = "https://raw.githubusercontent.com/Dart-Code/Dart-Code/master/package.json"; + 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 @@ -34,9 +34,4 @@ Language server for Dart. }; }; - -configs[server_name].install_info = function() - return { - is_installed = dart_sdk_path ~= nil - } -end +-- vim:et ts=2 sw=2 -- cgit v1.2.3-70-g09d2 From 59fdc073bfb0ef9cc1c14b5a16ab1ea93ec54ccf Mon Sep 17 00:00:00 2001 From: Hirokazu Hata Date: Wed, 12 Feb 2020 16:51:58 +0900 Subject: dartls: auto detect Dart SDK root path --- lua/nvim_lsp/dartls.lua | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index 663c47a1..b9bdcabf 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -4,11 +4,39 @@ local lsp = vim.lsp local server_name = "dartls" local bin_name = "dart" -local dart_sdk_path = os.getenv("DART_SDK") + +local dart_sdk_root_path = function() + if vim.fn["executable"]("dart") == 1 then + return vim.fn["resolve"](vim.fn["exepath"]("dart")) + elseif 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") + local dart_sdk_root_path = flutter_bin.."/cache/dart-sdk/bin/dart" + if vim.fn["executable"](dart_sdk_root_path) == 1 then + return dart_sdk_root_path + end + end + error("[LSP] Could not find Dart SDK root path") +end + +local analysis_server_snapshot_path = function() + local dart_sdk_root_path = vim.fn["fnamemodify"](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 + + if vim.fn["filereadable"](snapshot) == 1 then + return snapshot + else + error("[LSP] Could not find analysis server snapshot") + end +end configs[server_name] = { default_config = { - cmd = {bin_name, dart_sdk_path .. "/bin/snapshots/analysis_server.dart.snapshot", "--lsp"}; + cmd = {bin_name, analysis_server_snapshot_path(), "--lsp"}; filetypes = {"dart"}; root_dir = nvim_lsp.util.root_pattern("pubspec.yaml"); log_level = lsp.protocol.MessageType.Warning; @@ -22,16 +50,15 @@ configs[server_name] = { settings = {}; }; docs = { - package_json = "https://raw.githubusercontent.com/Dart-Code/Dart-Code/master/package.json"; + vscode = "Dart-Code.dart-code"; description = [[ https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec -Language server for Dart. +Language server for dart. ]]; default_config = { root_dir = [[root_pattern("pubspec.yaml")]]; }; }; }; - -- vim:et ts=2 sw=2 -- cgit v1.2.3-70-g09d2 From 47854a2a22b47562b6890de8c644d676980234f7 Mon Sep 17 00:00:00 2001 From: tms Date: Sat, 15 Feb 2020 19:33:43 +0100 Subject: Fix shadowing variable --- lua/nvim_lsp/dartls.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lua') diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua index b9bdcabf..fa73a5f8 100644 --- a/lua/nvim_lsp/dartls.lua +++ b/lua/nvim_lsp/dartls.lua @@ -5,7 +5,7 @@ local lsp = vim.lsp local server_name = "dartls" local bin_name = "dart" -local dart_sdk_root_path = function() +local find_dart_sdk_root_path = function() if vim.fn["executable"]("dart") == 1 then return vim.fn["resolve"](vim.fn["exepath"]("dart")) elseif vim.fn["executable"]("flutter") == 1 then @@ -20,7 +20,7 @@ local dart_sdk_root_path = function() end local analysis_server_snapshot_path = function() - local dart_sdk_root_path = vim.fn["fnamemodify"](dart_sdk_root_path(), ":h") + 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 -- cgit v1.2.3-70-g09d2