aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lsp/turtle_ls.lua
diff options
context:
space:
mode:
authorawy <awy@awy.one>2025-10-14 18:27:29 +0300
committerawy <awy@awy.one>2025-10-14 18:27:29 +0300
commitde009fd679e10d053fdcc10785f91ad5317449ea (patch)
tree60918a488b579588596cf4d509fde298dccbf15d /.config/nvim/lsp/turtle_ls.lua
parent9ea6cf81adb5d6abc59843de1db45913210f9320 (diff)
downloadhyprdots-de009fd679e10d053fdcc10785f91ad5317449ea.tar.gz
nvim revamp
Diffstat (limited to '.config/nvim/lsp/turtle_ls.lua')
-rw-r--r--.config/nvim/lsp/turtle_ls.lua39
1 files changed, 39 insertions, 0 deletions
diff --git a/.config/nvim/lsp/turtle_ls.lua b/.config/nvim/lsp/turtle_ls.lua
new file mode 100644
index 0000000..d44b27c
--- /dev/null
+++ b/.config/nvim/lsp/turtle_ls.lua
@@ -0,0 +1,39 @@
+---@brief
+---
+--- https://github.com/stardog-union/stardog-language-servers/tree/master/packages/turtle-language-server
+--- `turtle-language-server`, An editor-agnostic server providing language intelligence (diagnostics, hover tooltips, etc.) for the W3C standard Turtle RDF syntax via the Language Server Protocol.
+--- installable via npm install -g turtle-language-server or yarn global add turtle-language-server.
+--- requires node.
+
+local bin_name = 'turtle-language-server'
+local bin_path = os.getenv 'NVM_BIN'
+local full_path
+if bin_path == nil then
+ local paths = {}
+ local sep = ':'
+ if vim.fn.has 'win32' == 1 then
+ sep = ';'
+ end
+ local path = os.getenv 'PATH'
+ if path ~= nil then
+ for str in string.gmatch(path, '([^' .. sep .. ']+)') do
+ paths[#paths + 1] = str
+ end
+ end
+ for _, p in ipairs(paths) do
+ local candidate = table.concat({ p, bin_name }, '/')
+ if (vim.uv.fs_stat(candidate) or {}).type == 'file' then
+ full_path = candidate
+ break
+ end
+ end
+else
+ full_path = table.concat({ bin_path, bin_name }, '/')
+end
+
+---@type vim.lsp.Config
+return {
+ cmd = { 'node', full_path, '--stdio' },
+ filetypes = { 'turtle', 'ttl' },
+ root_markers = { '.git' },
+}