MCPcopy Index your code
hub / github.com/Sarrus1/sourcepawn-studio

github.com/Sarrus1/sourcepawn-studio @v8.1.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v8.1.8 ↗ · + Follow
2,059 symbols 5,874 edges 219 files 181 documented · 9% updated 4mo agov8.1.8 · 2025-10-23★ 17832 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Logo

<strong>VSCode extension and LSP implementation for the SourcePawn programming language written in Rust</strong>






<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">












<img alt="Showcase" src="https://raw.githubusercontent.com/Sarrus1/sourcepawn-studio/main/images/showcase-1.gif">

Features

Feature Status
Completion
Go To Definition
Find References
Hover
Rename
Semantic Highlighting
Document Symbols
Call Hierarchy
Signature Help
Reference
Diagnostics

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.

  • To make a suggestion or to report an issue, please create a new issue here.
  • To make a contribution, fork the repository, make the desired changes, and open a pull request.

How to run the Language Server from its source code ?

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

  • Install the rust toolchain using rustup.
  • Install node.js on your machine (v20 LTS and up). Make sure npm is installed as well.
  • Fork this repository and clone it on your machine (do this with VSCode for easier manipulation).
  • From the root of the repository, run the following commands to install npm dependencies: cd editors/code && npm i.
  • Press f5 and select the Run Extension (Debug Build) launch task in the prompt. This will compile the Language Server server from the source code and package the VSCode extension's source code.
  • (Optional) You can attach a debugger to the Language Server by doing the step above, then running another task called Attach To Server or Win Attach To Server on Windows and typing sourcepawn-studio in the prompt.

Extension points exported contracts — how you extend this code

HasResolver (Interface)
(no doc) [13 implementers]
crates/hir-def/src/resolver.rs
Disposable (Interface)
(no doc) [5 implementers]
editors/code-amxxpawn/src/ctx.ts
Disposable (Interface)
(no doc) [5 implementers]
editors/code/src/ctx.ts
QueryCollect (Interface)
(no doc) [4 implementers]
crates/ide/src/status.rs
Encode (Interface)
(no doc) [4 implementers]
crates/vfs/src/vfs_path.rs
PreprocessorError (Interface)
(no doc) [4 implementers]
crates/preprocessor/src/errors.rs
HasSource (Interface)
(no doc) [4 implementers]
crates/hir/src/has_source.rs
FileLoader (Interface)
(no doc) [2 implementers]
crates/base-db/src/lib.rs

Core symbols most depended-on inside this repo

into
called by 419
crates/preprocessor/src/symbol.rs
clone
called by 305
crates/hir-def/src/lib.rs
from
called by 291
crates/sourcepawn-studio/src/lsp/semantic_tokens.rs
map
called by 254
crates/hir-def/src/lib.rs
push
called by 189
crates/preprocessor/src/evaluator.rs
push
called by 175
crates/hir-def/src/item_tree/pretty.rs
lookup
called by 106
crates/vfs/src/path_interner.rs
iter
called by 94
crates/vfs/src/lib.rs

Shape

Method 1,016
Function 619
Class 308
Enum 85
Interface 31

Languages

Rust89%
TypeScript10%
Python1%

Modules by API surface

crates/preprocessor/tests/main.rs63 symbols
crates/hir-def/src/data.rs61 symbols
crates/hir/src/lib.rs60 symbols
crates/sourcepawn-studio/src/config.rs48 symbols
crates/hir-def/src/lib.rs39 symbols
crates/hir-def/src/item_tree.rs39 symbols
crates/sourcepawn-studio/tests/text_document/goto_definition/methodmaps.rs36 symbols
crates/ide-db/src/symbols.rs36 symbols
crates/paths/src/lib.rs35 symbols
crates/ide/src/lib.rs34 symbols
crates/sourcepawn-studio/tests/text_document/goto_definition/mod.rs33 symbols
editors/code/src/ctx.ts31 symbols

For agents

$ claude mcp add sourcepawn-studio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact