
PowerShell Editor Services
https://github.com/powershell/PowerShellEditorServices- Category
- Developer Tools
- Rank
- No. 373Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- powershell
- GitHub
- 764 stars
- Latest release
- v4.7.0
- Date
About
Language server and debugger for PowerShell. Powers PowerShell support in VS Code and other editors via LSP and DAP.
What it does
It supplies the editing intelligence behind completions, navigation, script analysis, refactoring, interactive terminals, and debugger controls. Editors connect over standard input or separate local communication channels, while PowerShell code can extend the host editor through a shared scripting API.
Why it's ranked here
The tool covers unusually deep editor integration, from semantic analysis through debugging and an interactive terminal. It also supports generic editor clients instead of requiring one interface. That breadth comes with clear integration costs and uneven documentation, so it best rewards teams prepared to configure their client carefully.
What's good
Separate communication channels preserve debugging and terminal features alongside language intelligence. Script Analyzer provides real-time semantic feedback. The extension API lets PowerShell modules add editor commands and manipulate open buffers. The project also documents end-to-end configurations for Emacs, Vim, and Neovim.
Tradeoffs
Standard input offers the easiest connection but cannot carry the debugger or extension terminal alongside language messages. Rename is limited to one file and misses several dynamic-scope patterns. Windows PowerShell 5.1 receives only best-effort support. Some community editor clients may be outdated, and parts of the host-process guide explicitly describe obsolete protocol details.
How to use it well
Choose it when building or configuring a PowerShell-focused editor experience, especially when completions, diagnostics, debugging, and an integrated console belong together. Prefer local pipes or sockets for the full feature set, and use standard input for simpler language-only clients. Do not treat rename as a repository-wide refactoring system or internal .NET types as stable production APIs.
Technical notes+
README.md defines the supported startup transports, stable API boundary, feature set, version policy, and rename limitations. docs/api/index.md describes EditorSession as the aggregate entry point over language, analysis, debugging, console, extension, and runspace services. docs/guide/extensions.md documents the $psEditor extensibility object and editor-command registration. docs/guide/getting_started.md provides a release-archive installation and Neovim setup. docs/guide/using_the_host_process.md specifies a JSON message protocol over process streams but warns that much of its schema documentation is outdated. global.json pins the .NET SDK policy, while nuget.config declares the PowerShell Azure package feed.
Observed
- License
- MIT License, with Microsoft Corporation copyright.
- Implementation surface
- Distributed as a PowerShell module with documented .NET services and APIs.
- Packaging
- Available as a GitHub release archive; the documentation also identifies a NuGet package for .NET applications.
- Interfaces
- Language Server Protocol, Debug Adapter Protocol, a PowerShell editor extension API, and documented .NET services.
- Connections
- Supports named pipes or Unix domain sockets, plus standard input and output.
- PowerShell support
- Runs on supported PowerShell 7+ versions; Windows PowerShell 5.1 is best-effort.
- Editor coverage
- Documented clients include Visual Studio Code, Emacs, Vim, Neovim, and IntelliJ-based IDEs.
Read from README.md, docs/index.md, docs/api/index.md, docs/guide/toc.md, docs/guide/extensions.md, docs/guide/introduction.md, docs/guide/getting_started.md, docs/guide/using_the_host_process.md, LICENSE, .mailmap, NOTICE.txt, SECURITY.md, global.json, CHANGELOG.md, nuget.config.
What it can do
Provide PowerShell language intelligence
PowerShell code files → Syntax highlighting, IntelliSense, and code completion
Debug PowerShell scripts
PowerShell scripts with breakpoints → Step-by-step execution control and variable inspection
Validate PowerShell syntax
PowerShell code → Syntax error detection and diagnostic messages
Format PowerShell code
Unformatted PowerShell scripts → Properly formatted and indented PowerShell code
Provide PowerShell symbol navigation
PowerShell files and functions → Go-to-definition and symbol reference locations
Analyze PowerShell code quality
PowerShell scripts → Code analysis warnings and best practice suggestions
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.