A análise de código é feita por um motor nativo em Rust (pawnpro-engine) que roda como servidor LSP separado. Se o binário não estiver presente, a extensão recua automaticamente para o modo TypeScript.
| Código | Nível | Descrição |
|---|---|---|
PP0001 |
Erro | #include não encontrado |
PP0002 |
Erro | native com corpo {} |
PP0003 |
Erro | forward com corpo {} |
PP0004 |
Aviso | public/stock/static sem corpo |
PP0005 |
Aviso¹ | Variável declarada e não utilizada |
PP0006 |
Aviso¹ | Função stock/static não utilizada |
PP0007 |
Aviso | Uso de símbolo marcado com @DEPRECATED, ou símbolo de include depreciado |
PP0008 |
Aviso | #include marcado com @DEPRECATED |
PP0009 |
Hint | Parâmetro de função não utilizado |
PP0010 |
Aviso | Função chamada não declarada em nenhum include ativo |
PP0011 |
Hint | #define declarado mas não utilizado |
PP0012 |
Hint | #include cujos símbolos não são utilizados |
PP0013 |
Hint | #tryinclude não resolvido |
¹ Marcados com
unnecessary— o VS Code exibe o símbolo desbotado/riscado além do sublinhado de aviso.
Stocks em
.incnão geramPP0006por padrão. Habilite comanalysis.warnUnusedInInc: true.
- Auto-complete — funções (
native,stock,public,forward,static), macros (#define) e variáveis de todos os includes transitivos; parâmetros com snippets; itens depreciados marcados visivelmente. - Hover — assinatura e comentário de documentação; em
#includeexibe o caminho resolvido e o doc do topo do arquivo. - Signature Help — parâmetro ativo destacado ao digitar
(e,. - CodeLens — contagem de referências acima de cada função; clique para listar todas no painel.
- Semantic Tokens — coloração semântica para funções, incluindo chamadas multiline.
- Snippets — estruturas prontas para controle de fluxo, funções, variáveis, includes, callbacks SA-MP/open.mp e utilitários como
CMD,SetTimerefmsg. Lista completa em docs/snippets.md.
O marcador @DEPRECATED (case-insensitive) pode ser usado de três formas:
// @DEPRECATED
stock MinhaFuncaoAntiga() { ... }
stock OutraFuncao() { ... } // @deprecated
/* @DEPRECATED */
#include <include_legado>- Símbolo (
native,stock,public,forward,static,#define, variável global) → a declaração recebe PP0007 (hint visual) e qualquer uso também exibe PP0007. - Par
forward/public— depreciar oforwardmarca automaticamente opubliccorrespondente, e vice-versa. #include→ a linha do#includerecebe PP0008 e qualquer uso de qualquer símbolo daquele arquivo exibe PP0007 com a mensagem "pertence a um include depreciado".
Ctrl+Alt+B— compila o arquivo.pwnaberto compawncc.- Detecção automática do compilador ou caminho manual em
.pawnpro/config.json.
- Start / Stop / Restart via terminal integrado do VS Code.
- Painel lateral com campo de entrada de comandos, histórico navegável por seta e favoritos.
- Envio via RCON (UDP) quando a senha está configurada; fallback para stdin do terminal. Bloqueado se a senha for vazia ou
changename. - Tail do log do servidor com follow configurável (Linux e macOS).
- Detecção automática de
server.cfg(SA-MP) ouconfig.json(open.mp).
- Status bar — item
PawnProcom acesso rápido a: reiniciar motor, abrir configuração, controles do servidor e criação de novos scripts. - Aba Includes — lista todos os
.incdosincludePathsconfigurados com seus natives expandíveis e navegação direta para a declaração. - Temas de sintaxe — quatro esquemas disponíveis: Clássico e Moderno, cada um em variante claro e escuro. O esquema
autoseleciona automaticamente entre Clássico Claro e Clássico Escuro conforme o tema ativo do VS Code. Ao escolher um esquema via comando, a reaplicação automática na inicialização é habilitada automaticamente. - Templates — cria Gamemode, Filterscript ou Include a partir de templates embutidos; filtra automaticamente pela plataforma configurada (
analysis.sdk.platform). - Internacionalização — mensagens em PT-BR e EN via
vscode-nls.