aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lsp/nomad_lsp.lua
diff options
context:
space:
mode:
authorawy <awy@awy.one>2025-10-20 20:55:26 +0300
committerawy <awy@awy.one>2025-10-20 20:55:26 +0300
commit662dafc52b2c8a9426bb2197ab9246a8cda318e4 (patch)
treef9d1f20e3864360bf941fd6bc02848ed77b037a8 /.config/nvim/lsp/nomad_lsp.lua
parent8131d9f2898b991a2d2c7a2ac601ce9e07cc9c9f (diff)
downloadhyprdots-662dafc52b2c8a9426bb2197ab9246a8cda318e4.tar.gz
nvqw
Diffstat (limited to '.config/nvim/lsp/nomad_lsp.lua')
-rw-r--r--.config/nvim/lsp/nomad_lsp.lua34
1 files changed, 34 insertions, 0 deletions
diff --git a/.config/nvim/lsp/nomad_lsp.lua b/.config/nvim/lsp/nomad_lsp.lua
new file mode 100644
index 0000000..2388683
--- /dev/null
+++ b/.config/nvim/lsp/nomad_lsp.lua
@@ -0,0 +1,34 @@
+---@brief
+---
+--- https://github.com/juliosueiras/nomad-lsp
+---
+--- Written in Go, compilation is needed for `nomad_lsp` to be used. Please see the [original repository](https://github.com/juliosuieras/nomad-lsp).
+---
+--- Add the executable to your system or vim PATH and it will be set to go.
+---
+--- No configuration option is needed unless you choose not to add `nomad-lsp` executable to the PATH. You should know what you are doing if you choose so.
+---
+--- ```lua
+--- vim.lsp.enable('nomad_lsp')
+--- ```
+---
+--- However, a `hcl.nomad` or `nomad` filetype should be defined.
+---
+--- Description of your jobs should be written in `.nomad` files for the LSP client to configure the server's `root_dir` configuration option.
+
+local util = require 'lspconfig.util'
+local bin_name = 'nomad-lsp'
+
+if vim.fn.has 'win32' == 1 then
+ bin_name = bin_name .. '.exe'
+end
+
+---@type vim.lsp.Config
+return {
+ cmd = { bin_name },
+ filetypes = { 'hcl.nomad', 'nomad' },
+ root_dir = function(bufnr, on_dir)
+ local fname = vim.api.nvim_buf_get_name(bufnr)
+ on_dir(util.root_pattern '*.nomad'(fname))
+ end,
+}