Recursos
Motor IntelliSense (Rust LSP)
A análise de código é feita por um motor nativo em Rust (pawnpro-engine) que roda como servidor LSP separado. O motor é iniciado automaticamente pela extensão se o binário estiver presente no diretório engines/.
Diagnósticos
| 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 editor exibe o símbolo desbotado/riscado além do sublinhado de aviso.Stocks em
.incnão geramPP0006por padrão. Habilite comanalysis.warnUnusedInInc: true.Diagnósticos em arquivos
.incpodem ser suprimidos por completo comanalysis.suppressDiagnosticsInInc: true.
IntelliSense
- 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.
Depreciação com @DEPRECATED
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".
Compilação
Ctrl+Alt+B— compila o arquivo.pwnaberto compawncc(ativo quando o foco está em um arquivo Pawn).- Detecção automática do compilador ou caminho manual em
.pawnpro/config.json. - Se
compiler.argsestiver vazio, a extensão detecta as flags suportadas pelopawncclocal e aplica um preset mínimo automaticamente em cada compilação. - O arquivo é salvo automaticamente antes de compilar.
Servidor SA-MP / open.mp
- Start / Stop / Restart via terminal integrado do editor.
- Painel lateral com campo de entrada de comandos, histórico (até 200 entradas) navegável por seta, favoritos e botões de limpar histórico/favoritos.
- Envio via RCON (UDP) quando a senha está configurada (timeout 1500 ms); fallback para stdin do terminal. Bloqueado se a senha for vazia ou
changename. Prefixosrconercon login ...são removidos automaticamente antes do envio. - Tail do log do servidor com follow configurável — exclusivo para Linux e macOS (não disponível no Windows).
- Detecção automática de executável do servidor nos subdiretórios: raiz do workspace,
server/,samp/,samp-server/,samp03/,open.mp/. - Detecção automática de
server.cfg(SA-MP) ouconfig.json(open.mp); log padrão:server_log.txt(SA-MP) ou o arquivo definido emlogging.filenoconfig.json(open.mp, padrãolog.txt).
Interface
- Status bar — item
PawnProcom acesso rápido a: reiniciar motor, abrir configurações, controles do servidor e criação de novos scripts. - Painel de configurações — interface gráfica para editar todas as chaves de
.pawnpro/config.jsonsem editar JSON manualmente, acessível viapawnpro.openSettings. - Aba Includes — lista todos os
.inc(recursivamente, até 20 níveis) do primeiro diretório válido dentre osincludePathsresolvidos, com seus natives expandíveis e navegação direta para a declaração. - Temas de sintaxe — cinco esquemas nomeados:
auto,classic_white,classic_dark,modern_white,modern_dark(maisnonepara desativar). O esquemaautoseleciona automaticamente entre Clássico Claro e Clássico Escuro conforme o tema ativo do editor. Ao escolher um esquema via comando, a reaplicação automática na inicialização é habilitada automaticamente. Reaplica automaticamente ao trocar o tema do editor quandoschemeéauto. - Templates — cria Gamemode (open.mp ou SA-MP), Filterscript (open.mp ou SA-MP) e Include (open.mp); filtra automaticamente pela plataforma configurada (
analysis.sdk.platform). Não há template de Include para SA-MP. - Internacionalização — mensagens em PT-BR e EN; idioma do motor LSP configurável via
locale.