aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorJanez Podhostnik <67895329+janezpodhostnik@users.noreply.github.com>2023-02-06 12:41:43 +0000
committerGitHub <noreply@github.com>2023-02-06 20:41:43 +0800
commit2fd43e4c01c86a058d3b8f74292ec316301d62da (patch)
treec38389032c489a7c879539c2c90eefa691473e3e /lua
parentfix: update luarocks-tag-release action + set license (diff)
downloadnvim-lspconfig-2fd43e4c01c86a058d3b8f74292ec316301d62da.tar
nvim-lspconfig-2fd43e4c01c86a058d3b8f74292ec316301d62da.tar.gz
nvim-lspconfig-2fd43e4c01c86a058d3b8f74292ec316301d62da.tar.bz2
nvim-lspconfig-2fd43e4c01c86a058d3b8f74292ec316301d62da.tar.lz
nvim-lspconfig-2fd43e4c01c86a058d3b8f74292ec316301d62da.tar.xz
nvim-lspconfig-2fd43e4c01c86a058d3b8f74292ec316301d62da.tar.zst
nvim-lspconfig-2fd43e4c01c86a058d3b8f74292ec316301d62da.zip
feat: add cadence language server (#2435)
Diffstat (limited to 'lua')
-rw-r--r--lua/lspconfig/server_configurations/cadence.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/lua/lspconfig/server_configurations/cadence.lua b/lua/lspconfig/server_configurations/cadence.lua
new file mode 100644
index 00000000..d9b36cd0
--- /dev/null
+++ b/lua/lspconfig/server_configurations/cadence.lua
@@ -0,0 +1,40 @@
+local util = require 'lspconfig.util'
+
+local config_name = 'flow.json'
+local bin_name = 'flow'
+local cmd = { 'flow', 'cadence', 'language-server' }
+
+if vim.fn.has 'win32' == 1 then
+ cmd = { 'cmd.exe', '/C', bin_name, 'cadence', 'language-server' }
+end
+
+return {
+ default_config = {
+ cmd = cmd,
+ filetypes = { 'cdc' },
+ init_options = {
+ numberOfAccounts = '1',
+ },
+ root_dir = function(fname, _)
+ return util.root_pattern(config_name)(fname) or vim.env.HOME
+ end,
+ on_new_config = function(new_config, new_root_dir)
+ new_config.init_options.configPath = util.path.join(new_root_dir, config_name)
+ end,
+ },
+ docs = {
+ description = [[
+[Cadence Language Server](https://github.com/onflow/cadence-tools/tree/master/languageserver)
+using the [flow-cli](https://developers.flow.com/tools/flow-cli).
+
+The `flow` command from flow-cli must be available. For install instructions see
+[the docs](https://developers.flow.com/tools/flow-cli/install#install-the-flow-cli) or the
+[Github page](https://github.com/onflow/flow-cli).
+
+By default the configuration is taken from the closest `flow.json` or the `flow.json` in the users home directory.
+]],
+ default_config = {
+ root_dir = [[util.root_pattern('flow.json') or vim.env.HOME]],
+ },
+ },
+}