diff options
Diffstat (limited to 'lua/lspconfig/puppet.lua')
| -rw-r--r-- | lua/lspconfig/puppet.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lua/lspconfig/puppet.lua b/lua/lspconfig/puppet.lua new file mode 100644 index 00000000..dc17fcfa --- /dev/null +++ b/lua/lspconfig/puppet.lua @@ -0,0 +1,44 @@ +local configs = require "lspconfig/configs" +local util = require "lspconfig/util" + +local server_name = "puppet" +local bin_name = "puppet-languageserver" + +local root_files = { + "manifests", + ".puppet-lint.rc", + "hiera.yaml", + ".git", +} + +configs[server_name] = { + default_config = { + cmd = { bin_name, "--stdio" }, + filetypes = { "puppet" }, + root_dir = function(filename) + return util.root_pattern(unpack(root_files))(filename) or util.path.dirname(filename) + end, + }, + docs = { + description = [[ +LSP server for Puppet. + +Installation: + +- Clone the editor-services repository: + https://github.com/puppetlabs/puppet-editor-services + +- Navigate into that directory and run: `bundle install` + +- Install the 'puppet-lint' gem: `gem install puppet-lint` + +- Add that repository to $PATH. + +- Ensure you can run `puppet-languageserver` from outside the editor-services directory. +]], + default_config = { + root_dir = [[root_pattern("manifests", ".puppet-lint.rc", "hiera.yaml", ".git")]], + }, + }, +} +-- vim:et ts=2 sw=2 |
