diff options
| author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-03-14 09:53:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-14 09:53:42 -0700 |
| commit | c94ee0ee23ff60812c18b5816f2b91790725ee8d (patch) | |
| tree | 52c59acd790a9a06c6fae919132c9e1289da6086 /lua | |
| parent | [docgen] Update CONFIG.md (diff) | |
| parent | Add configuration for PowerShellEditorServices (diff) | |
| download | nvim-lspconfig-c94ee0ee23ff60812c18b5816f2b91790725ee8d.tar nvim-lspconfig-c94ee0ee23ff60812c18b5816f2b91790725ee8d.tar.gz nvim-lspconfig-c94ee0ee23ff60812c18b5816f2b91790725ee8d.tar.bz2 nvim-lspconfig-c94ee0ee23ff60812c18b5816f2b91790725ee8d.tar.lz nvim-lspconfig-c94ee0ee23ff60812c18b5816f2b91790725ee8d.tar.xz nvim-lspconfig-c94ee0ee23ff60812c18b5816f2b91790725ee8d.tar.zst nvim-lspconfig-c94ee0ee23ff60812c18b5816f2b91790725ee8d.zip | |
Merge pull request #779 from sakhnik/master
Add configuration for PowerShellEditorServices
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/lspconfig/powershell_es.lua | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/lua/lspconfig/powershell_es.lua b/lua/lspconfig/powershell_es.lua new file mode 100644 index 00000000..164875b2 --- /dev/null +++ b/lua/lspconfig/powershell_es.lua @@ -0,0 +1,61 @@ +local configs = require 'lspconfig/configs' +local util = require 'lspconfig/util' + +local server_name = "powershell_es" +local temp_path = vim.fn.stdpath('cache') + +local function make_cmd(bundle_path) + if bundle_path ~= nil then + local command_fmt = [[%s/PowerShellEditorServices/Start-EditorServices.ps1 -BundledModulesPath %s -LogPath %s/powershell_es.log -SessionDetailsPath %s/powershell_es.session.json -FeatureFlags @() -AdditionalModules @() -HostName nvim -HostProfileId 0 -HostVersion 1.0.0 -Stdio -LogLevel Normal]] + local command = command_fmt:format(bundle_path, bundle_path, temp_path, temp_path) + return {"pwsh", "-NoLogo", "-NoProfile", "-Command", command} + end +end + +configs[server_name] = { + default_config = { + on_new_config = function(new_config, _) + local bundle_path = new_config.bundle_path + new_config.cmd = make_cmd(bundle_path) + end, + filetypes = {"ps1"}, + root_dir = function(fname) + return util.find_git_ancestor(fname) or vim.fn.getcwd() + end; + }; + docs = { + description = [[ +https://github.com/PowerShell/PowerShellEditorServices + +Language server for PowerShell. + +To install, download and extract PowerShellEditorServices.zip +from the [releases](https://github.com/PowerShell/PowerShellEditorServices/releases). +To configure the language server, set the property `bundle_path` to the root +of the extracted PowerShellEditorServices.zip. + +The default configuration doesn't set `cmd` unless `bundle_path` is specified. + +```lua +require'lspconfig'.powershell_es.setup{ + bundle_path = 'c:/w/PowerShellEditorServices', +} +``` + +If necessary, specific `cmd` can be defined instead of `bundle_path`. +See [PowerShellEditorServices](https://github.com/PowerShell/PowerShellEditorServices#stdio) +to learn more. + +```lua +require'lspconfig'.powershell_es.setup{ + cmd = {'pwsh', '-NoLogo', '-NoProfile', '-Command', "c:/PSES/Start-EditorServices.ps1 ..."} +} +``` +]]; + default_config = { + root_dir = "git root or current directory"; + }; + }; +}; + +-- vim:et ts=2 sw=2 |
