A feature-rich language server for Pawn (SA-MP scripting language) with intelligent code analysis, completions, hover info and much more.
Features ✨
Intelligent Code Completion - Context-aware suggestions for functions, variables, macros, and more
Signature Help - Parameter information when typing function calls
Go to Definition - Jump to where symbols are defined (Supports macros, enums, enum members, parameters, local variables, global variable, functions, etc.)
Hover Documentation - Quick info about functions, enums, and defines (Evaluates enum members automatically)
Semantic Highlighting - Visual distinction between variables, macros, and enum members
Complete Syntax Highlighting - A complete set of TextMate rules designed specifically for Pawn and SA-MP
Workspace Symbols - Search symbols across your entire project
Rename Refactoring - Rename variables and functions with references updated
Document Symbols - Navigate code structure with outline view
Sticky Scroll - Sticky scroll will show you where you are, never get lost again in big functions!
Formatter - Format any Pawn code
Color provider - See and change your embedded colors and defined colors on the fly!
Installation ⚙️
Install the extension from VS Code Marketplace
Open your Pawn/SA-MP project
The language server will automatically activate for .pwn and .inc files
Supported Pawn Features ✅
✅ Recognizes all the functions & natives inside your script and recursively inside your includes
✅ Variables (global/local)
✅ Enums & Enum Members
✅ Preprocessor Directives
✅ Control Structures
✅ Parameter Analysis
✅ Includes Resolution
✅ Rename symbols
Advanced Capabilities 🧠
🔍 Deep Code Analysis - Understands complex symbol relationships
⚡ Optimized Performance - Fast indexing even for large codebases (Specifically designed for our monolithic 200k LOC script, which parses under 1sec)
📚 Documentation Integration - Shows docs for standard SA-MP natives and callbacks
🔄 Real-time Updates - Reflects changes as you type
Performance Features ⚡
Incremental Parsing - Only reanalyzes changed code
Async Processing - Never blocks your editor
Multi-core Indexing - Parallel symbol resolution
Binary Search Parsing - Finds symbols very fast
AST Caching - Processes your code structure only once
Debounced Indexing - Does not interrupt you while you're coding