Warning
This repository has been archived and is now read-only. The components have been moved to new locations within the Pony ecosystem.
The pony-lsp language server source code has been merged into the main Pony compiler repository:
- Repository: ponylang/ponyc
- Distribution: The language server is now released and distributed together with
ponyc - Installation: Install
ponycvia your preferred package manager to get thepony-lspbinary
The Pony Visual Studio Code extension has been moved to its own dedicated repository:
- Repository: ponylang/vscode-extension
If you're currently using the Pony Language Server or Visual Studio Code extension:
- pony-lsp: Install the latest version of
ponycto get thepony-lspbinary - VS Code extension: Get the newest extension from ponylang/vscode-extension.
All future development and contributions should be directed to:
- Language server improvements: ponylang/ponyc
- VS Code extension improvements: ponylang/vscode-extension
Come chat with the Pony community via Zulip.
Thank you to all contributors who helped build this project! 🎉
The information below is preserved for historical reference only.
Language server for Pony. For more information see the Language Server Standard.
The easiest way to install pony-lsp on macOS and Linux was via Homebrew:
brew install pony-language-serverThe Visual Studio Code extension requires the project to be built from source. See the Development section below.
The language server is started as a separate actor, which is given a channel for communication with the language-server client. After initialization it starts one actor for each workspace it is invoked for and routes requests to one of those workspace actors. They implement the actual LSP logic. It is also those actors that invoke the compiler actor, which executes a subset of the pony compiler passes in-process in order to get an AST to do LSP analysis on.
The VSCode extension resides in the folder client_vscode.
-
Install ponyc: The Pony compiler is required for development.
On macOS and Linux via Homebrew:
brew install ponyc
For other platforms or building from source, see https://github.com/ponylang/ponyc
-
Install corral: The Pony dependency manager is required for development.
On macOS and Linux via Homebrew:
brew install corral
For other platforms or building from source, see https://github.com/ponylang/corral
-
Prepare VSCode extension:
cd client_vscode,npm i -
To debug in VSCode, press
F5, this will compile both the vscode extension in the client folder and the pony server, using thebuild.shscript.
If pony compilation fails, the process will stop, so you can press F5 without fear.
To compile the binary in release mode:
make language_serverIn order to compile the language server in debug mode,
set the config variable to debug:
make config=debug language_servermake vscode_extensionThis will create the extension package as a .vsix file
in the build/release folder. E.g. build/release/pony-lsp-0.58.4.vsix.
code --uninstall-extension undefined_publisher.pony-lsp
code --install-extension build/release/pony-lsp-0.58.4.vsixCheck the actual folder and version of the extension being built.