Home

Awesome

<div align="center"> <img width=367 height=128 src="https://raw.githubusercontent.com/Sarrus1/sourcepawn-studio/main/images/sp-studio-full_512.png" alt="Logo"> <br> <br> <p> <strong>VSCode extension and LSP implementation for the SourcePawn programming language written in Rust</strong> </p> <p style="margin-bottom: 0.5ex;"> <a href="https://github.com/Sarrus1/sourcepawn-studio/releases/"> <img src="https://img.shields.io/visual-studio-marketplace/v/Sarrus.sourcepawn-vscode?include_prereleases" /> </a> <a href="https://github.com/Sarrus1/sourcepawn-studio/releases/latest"> <img src="https://img.shields.io/visual-studio-marketplace/i/Sarrus.sourcepawn-vscode" /> </a> <a href="https://github.com/Sarrus1/sourcepawn-studio/releases/latest"> <img src="https://img.shields.io/visual-studio-marketplace/d/Sarrus.sourcepawn-vscode" /> </a> <a href="https://github.com/Sarrus1/sourcepawn-studio/actions/workflows/ci.yml"> <img alt="CI status" src="https://github.com/Sarrus1/sourcepawn-studio/actions/workflows/ci.yml/badge.svg" /> </a> <img alt="GitHub" src="https://img.shields.io/github/license/Sarrus1/sourcepawn-studio"> </p> <br> <br> <p> <img alt="Showcase" src="https://raw.githubusercontent.com/Sarrus1/sourcepawn-studio/main/images/showcase-1.gif"> </p> </div>

Features

<div align="center"> <table class="tg"> <thead> <tr> <th><span style="font-weight:bold"><b>Feature</b></span></th> <th><span style="font-weight:bold"><b>Status</b></span></th> </tr> </thead> <tbody> <tr> <td>Completion</td> <td>✅</td> </tr> <tr> <td>Go To Definition</td> <td>✅</td> </tr> <tr> <td>Find References</td> <td>✅</td> </tr> <tr> <td>Hover</td> <td>✅</td> </tr> <tr> <td>Rename</td> <td>✅</td> </tr> <tr> <td>Semantic Highlighting</td> <td>✅</td> </tr> <tr> <td>Document Symbols</td> <td>✅</td> </tr> <tr> <td>Call Hierarchy</td> <td>✅</td> </tr> <tr> <td>Signature Help</td> <td>✅</td> </tr> <tr> <td>Reference</td> <td>✅</td> </tr> <tr> <td>Diagnostics</td> <td>✅</td> </tr> </tbody> </table> </div>

Text editor support

The Language Server is compatible with any text editor that implements the Language Server Protocol.

VSCode support

For ease of use with Visual Studio Code, the extension bundles a binary of the Language Server for each major platform and OS. You can download it from the marketplace here.

AMXXPawn support

Partial support for AMXXPawn is implemented through the --amxxpawn-mode flag. The only difference between, the "SourcePawn mode" and the "AMXXPawn mode" boils down to what file extension the server will be looking for (.sp vs .sma).

A VSCode extension exists which bundles the server with the correct launch flags. You can find it here.

Installation

Please follow the Quick Start on the website.

Frequently Asked Questions

How can I donate ?

Thanks for considering this. But please remember that all of this wouldn't be possible without the Alliedmodders community. If you wish to make a donation for this community, you can make it here. If you prefer to make a donation to me for this project, you can buy me a coffee

How to contribute ?

Pull requests and suggestions are welcome.

How to run the Language Server from its source code ?

To run the Language Server, with the VSCode extension, from source, do the following: