diff options
| author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-11-26 08:50:07 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-26 08:50:07 -0500 |
| commit | 58b2842447a5b46cd040df628d257346893d8c62 (patch) | |
| tree | 643ed90860de0c7c862b3797fcd79b90f2864920 /lua/lspconfig/server_configurations/powershell_es.lua | |
| parent | fix: only set cmd_cwd if filepath exists (#1485) (diff) | |
| parent | chore: clean up imports (diff) | |
| download | nvim-lspconfig-58b2842447a5b46cd040df628d257346893d8c62.tar nvim-lspconfig-58b2842447a5b46cd040df628d257346893d8c62.tar.gz nvim-lspconfig-58b2842447a5b46cd040df628d257346893d8c62.tar.bz2 nvim-lspconfig-58b2842447a5b46cd040df628d257346893d8c62.tar.lz nvim-lspconfig-58b2842447a5b46cd040df628d257346893d8c62.tar.xz nvim-lspconfig-58b2842447a5b46cd040df628d257346893d8c62.tar.zst nvim-lspconfig-58b2842447a5b46cd040df628d257346893d8c62.zip | |
Merge pull request #1479 from mjlbach/accessible-configs
feat: expose configs
Diffstat (limited to 'lua/lspconfig/server_configurations/powershell_es.lua')
| -rw-r--r-- | lua/lspconfig/server_configurations/powershell_es.lua | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/lua/lspconfig/server_configurations/powershell_es.lua b/lua/lspconfig/server_configurations/powershell_es.lua new file mode 100644 index 00000000..590673b6 --- /dev/null +++ b/lua/lspconfig/server_configurations/powershell_es.lua @@ -0,0 +1,72 @@ +local util = require 'lspconfig.util' + +local temp_path = vim.fn.stdpath 'cache' + +local function make_cmd(new_config) + if new_config.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(new_config.bundle_path, new_config.bundle_path, temp_path, temp_path) + return { new_config.shell, '-NoLogo', '-NoProfile', '-Command', command } + end +end + +return { + default_config = { + shell = 'pwsh', + on_new_config = function(new_config, _) + -- Don't overwrite cmd if already set + if not new_config.cmd then + new_config.cmd = make_cmd(new_config) + end + end, + + filetypes = { 'ps1' }, + root_dir = util.find_git_ancestor, + single_file_mode = true, + }, + 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', +} +``` + +By default the languageserver is started in `pwsh` (PowerShell Core). This can be changed by specifying `shell`. + +```lua +require'lspconfig'.powershell_es.setup{ + bundle_path = 'c:/w/PowerShellEditorServices', + shell = 'powershell.exe', +} +``` + +Note that the execution policy needs to be set to `Unrestricted` for the languageserver run under PowerShell + +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', + }, + }, +} |
