A common platform for PowerShell development support in any editor or application!
rjmholt Fix NRE when trying to start the stopwatch (#747)
* Fix NRE when trying to start the stopwatch
* Make Stopwatch property threadstatic
Latest commit 8bf5c9c Sep 18, 2018
Permalink
Failed to load latest commit information.
.github Initial CODEOWNERS file to auto assign PR reviewers (#681) Jun 8, 2018
.vscode Add .gitattributes, .editorconfig and extensions.json (#667) May 22, 2018
docs Fix #223: Wrong InsertText call in extension docs May 13, 2016
module [Ignore] Increment version to 1.8.5 (#738) Sep 4, 2018
scripts change 'job Test -Safe' to '?Test' (#595) Jan 3, 2018
src Fix NRE when trying to start the stopwatch (#747) Sep 18, 2018
test Fix crash where lines appended to end of script file causes out of bo… Aug 28, 2018
tools/releaseBuild Add VSTS signing step (#722) Aug 14, 2018
.editorconfig Add .gitattributes, .editorconfig and extensions.json (#667) May 22, 2018
.gitattributes Add .gitattributes, .editorconfig and extensions.json (#667) May 22, 2018
.gitignore Add release build infrastructure Jul 11, 2018
.travis.yml Add customize output color enhancement (#654) Apr 21, 2018
CHANGELOG.md [Ignore] Fix changelog error Aug 31, 2018
CODE_OF_CONDUCT.md Actually add CODE_OF_CONDUCT.md Jan 3, 2018
CONTRIBUTING.md add what to do when there's a vulnerability to docs (#687) Jun 18, 2018
LICENSE Update LICENSE Jul 23, 2015
NuGet.Config Move NuGet.config to repo root to be found by build Jan 22, 2017
PowerShellEditorServices.Common.props [Ignore] Increment version to 1.8.5 (#738) Sep 4, 2018
PowerShellEditorServices.build.ps1 [Ignore] Exclude integration tests (#742) Sep 6, 2018
PowerShellEditorServices.sln Add new PowerShellEditorServices.VSCode module Jun 17, 2017
README.md Use named pipe transport securely, remove TCP Jul 11, 2018
Third Party Notices.txt Include ThirdPartyNotices.txt to comply with OSS guidelines Jun 11, 2018
appveyor.yml [Ignore] Increment version to 1.8.5 (#738) Sep 4, 2018
build.ps1 change Clean logic and added Test Feb 9, 2018
modules.json Add module restore build rule, move start script, fix script analyzer Apr 24, 2018

README.md

PowerShell Editor Services

Join the chat at https://gitter.im/PowerShell/PowerShellEditorServices

PowerShell Editor Services is a PowerShell module that provides common functionality needed to enable a consistent and robust PowerShell development experience in almost any editor or integrated development environment (IDE).

Features

  • The Language Service provides common editor features for the PowerShell language:
    • Code navigation actions (find references, go to definition)
    • Statement completions (IntelliSense)
    • Real-time semantic analysis of scripts using PowerShell Script Analyzer
  • The Debugging Service simplifies interaction with the PowerShell debugger (breakpoints, variables, call stack, etc)
  • The $psEditor API enables scripting of the host editor
  • A full, terminal-based Integrated Console experience for interactive development and debugging

Important note regarding the .NET APIs in Microsoft.PowerShell.EditorServices.dll

With the 1.0 release of PowerShell Editor Services, we have deprecated the public APIs of the following classes:

  • EditorSession
  • LanguageService
  • DebugService
  • ConsoleService
  • AnalysisService
  • ExtensionService
  • TemplateService

The intended usage model is now to host PowerShell Editor Services within powershell.exe and communicate with it over named pipes (or Unix domain sockets on macOS & Linux) via the Language Server Protocol and Debug Adapter Protocol. Detailed usage documentation for this module is coming soon!

Build Status

AppVeyor (Windows) Travis CI (Linux / macOS)
Build status Build Status

Documentation

Check out our documentation site for information about how to use this project. You can also read our plans for future feature development by looking at the Development Roadmap.

Installation

TODO: Add information about acquiring packages from NuGet and npm once those are available.

Development

1. On Linux or macOS, install PowerShell Core

If you are using Windows, skip this step. If you are using Linux or macOS, you will need to install PowerShell by following these instructions.

If you are using macOS you will need to download the latest version of OpenSSL. The easiest way to get this is from Homebrew. After installing Homebrew execute the following commands:

  brew update
  brew install openssl
  mkdir -p /usr/local/lib
  ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
  ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

2. On Windows, install the .NET 4.5.1 Targeting Pack

NOTE: This is only necessary if you don't have Visual Studio installed

If you try to build the code and receive an error about a missing .NET 4.5.1 Targeting Pack, you should download and install the .NET Framework 4.5.2 Developer Pack.

3. Clone the GitHub repository:

git clone https://github.com/PowerShell/PowerShellEditorServices.git

4. Install Invoke-Build

This step requires PowerShellGet, included by default with PowerShell v5 and up but installable on PowerShell v3 and v4.

Install-Module InvokeBuild -Scope CurrentUser

Now you're ready to build the code. You can do so in one of two ways:

Building the code from PowerShell

PS C:\path\to\PowerShellEditorServices> Invoke-Build Build

Building the code from Visual Studio Code

Open the PowerShellEditorServices folder that you cloned locally and press Ctrl+Shift+B (or Cmd+Shift+B on macOS).

Contributions Welcome!

We would love to incorporate community contributions into this project. If you would like to contribute code, documentation, tests, or bug reports, please read our Contribution Guide to learn more.

Maintainers

License

This project is licensed under the MIT License.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.