This extension provides rich PowerShell language support for Neovim. Now you can write and debug PowerShell scripts using the excellent IDE-like interface that Neovim provides.
- Powershell LSP support (via Powershell Editor Services)
- Powershell Extension Terminal support
- Debugging support (requires nvim-dap)
- $psEditor API support
- Powershell Editor Services (can be installed manually or using something like mason.nvim)
- Neovim 0.10 (nightly)
- (Optional) nvim-dap (needed for debugging)
use {
"TheLeoP/powershell.nvim"
}
{
"TheLeoP/powershell.nvim",
opts = {
bundle_path = 'path/to/your/bundle_path/'
}
}
Plug 'TheLeoP/powershell.nvim'
The only required field for the plugin to work is bundle_path
, this has to be the path of where Powershell Editor Services is installed.
For example, if you are using mason with default settings, you would have to do something like the following:
require('powershell').setup({
bundle_path = vim.fn.stdpath "data" .. "/mason/packages/powershell-editor-services",
})
-- This is the default configuration
require('powershell').setup({
capabilities = vim.lsp.protocol.make_client_capabilities(),
bundle_path = "",
init_options = vim.empty_dict(),
settings = vim.empty_dict(),
shell = "pwsh",
handlers = base_handlers, -- see lua/powershell/handlers.lua
})
require('powershell').toggle_term()
To create a keymap only for powershell files, put the following in your config.
-- this should go in ~/.config/nvim/ftplugin/ps1.lua
vim.keymap.set("n", "<leader>P", function() require("powershell").toggle_term() end)
You could also use a filetype autocmd to create the keymap.
Can be used both in normal (evaluates current line) and visual mode (evaluates visual selection).
require('powershell').eval()
To create a keymap only for powershell files, put the following in your config.
-- this should go in ~/.config/nvim/ftplugin/ps1.lua
vim.keymap.set("n", "<leader>E", function() require("powershell").eval() end)
You could also use a filetype autocmd to create the keymap.
- Tests