Uma IDE completa para Pawn dentro do seu editor. O PawnPro é uma extensão para
VS Code e VSCodium que traz para o desenvolvimento SA-MP / open.mp o que outras
linguagens têm há anos: um motor de análise que entende o seu código de verdade,
compilação e depuração com um atalho, e o servidor sob controle sem sair do editor.
Escrever gamemode não precisa ser editor de texto, terminal e ALT+TAB.
Por que existe
Quem desenvolve em Pawn conhece o ciclo: salvar, trocar de janela, compilar,
ler um erro sem contexto, voltar, procurar a linha. Erro de digitação num nome de
função? Só se descobre no compilador. Quer saber o que aquele native faz? Abre o
.inc e lê o código.
O PawnPro corta esse ciclo. O código é analisado enquanto você escreve — por um
motor próprio escrito em Rust, não por expressões regulares — então o erro
aparece na linha onde está, o autocomplete conhece os seus includes, e a
documentação da função aparece ao passar o mouse.
O que você ganha
Enquanto escreve
- Autocomplete que conhece o seu projeto — funções, natives, constantes e
macros de todos os
.inc que você inclui, transitivamente. Ordenado por
proximidade: o que está perto do cursor vem primeiro.
- Documentação no hover e no signature help — o comentário acima da função
vira texto formatado, nos formatos Javadoc (
@param) e XMLdoc
(<summary>, o que o omp-stdlib do open.mp usa). Ao digitar a chamada, a
descrição do parâmetro em que você está aparece sozinha.
- 19 diagnósticos com código próprio (
PP####) — include que não existe,
chave sem fechar, código inalcançável, função depreciada, variável não usada.
13 deles têm correção automática (Ctrl+.).
- Ir para a definição, referências e renomear em todo o projeto.
- Prévia de cor nos literais
0xRRGGBBAA e {RRGGBB}, com seletor de cores.
Na hora de compilar e testar
Ctrl+Alt+B compila — o pawncc é encontrado sozinho (via $PAWNCC,
PATH ou dentro do projeto). Os erros voltam clicáveis no painel de problemas.
F5 depura de verdade — breakpoints (simples, condicionais, por contagem e
logpoints), passo a passo, inspeção de variáveis, watch, call stack e
data breakpoints. Depuração real de gamemode, não print() espalhado.
- Servidor no painel lateral — iniciar, parar, reiniciar e enviar comandos
RCON sem abrir terminal. Histórico e favoritos com busca, e o log acompanhado
em tempo real.
Para o projeto não virar bagunça
- Formatação com estilos configuráveis (Allman, K&R, compacto ou seu próprio).
- Assistente de nomenclatura — convenções de caixa por categoria de
identificador, e um padrão próprio por expressão regular quando os estilos
prontos não descrevem a convenção da casa (
g_ nas globais, por exemplo).
- Templates de gamemode, filterscript e include, já no formato certo da
plataforma que você usa.
E porque ninguém programa igual
- Cinco idiomas — português, inglês, espanhol, romeno e russo. A interface e
os diagnósticos são configuráveis de forma independente: dá para ter o
editor em português e os erros em inglês.
- Painel de configurações visual — todas as opções sem tocar em JSON.
- Temas de sintaxe claro e escuro, que acompanham o tema do editor.
- Cor de destaque — seis cores para a interface da extensão, ou o padrão que
herda do seu tema.
Instalação
Procure por PawnPro no marketplace do seu editor, ou:
ext install NullSablex.pawnpro
Também disponível no Open VSX
para VSCodium e editores derivados.
Funciona em Windows, Linux e macOS (x64 e arm64). O motor de análise é um
binário nativo que acompanha a extensão — não precisa instalar Rust, Node nem
nada além do editor.
Primeiros passos
- Abra a pasta do seu gamemode (não o arquivo solto — a extensão precisa da
pasta para achar os includes).
- Abra um
.pwn. O motor inicia sozinho e começa a analisar.
Ctrl+Alt+B para compilar, F5 para depurar.
Se os includes não forem encontrados, abra PawnPro: Configurações pela barra
de status e aponte o caminho do pawno/include — ou deixe a detecção automática
procurar nos lugares usuais.
Configuração
Independente do editor, em JSON simples:
| Arquivo |
Escopo |
~/.pawnpro/config.json |
Global (todos os projetos) |
.pawnpro/config.json |
Projeto (sobrescreve o global) |
.pawnpro/state.json |
Estado local (favoritos e histórico do servidor) |
Nada disso precisa ser editado à mão: o painel de configurações cobre todas as
chaves. A referência completa está em
docs/configuration.md, e os comandos em
docs/commands.md.
Documentação
Site completo: pawnpro.nullsablex.com
Como funciona por dentro
A análise não roda em JavaScript. É um processo separado —
pawnpro-engine, escrito em
Rust — que conversa com o editor pelo protocolo LSP. Isso é o que permite
analisar um gamemode grande com todos os seus includes sem travar a digitação.
A depuração segue o mesmo princípio: um adaptador DAP na extensão e um plugin
dentro do servidor.
Bom saber
- O acompanhamento de log do servidor funciona em Linux e macOS.
- O RCON do SA-MP é um protocolo antigo, que trafega a senha em texto claro. Por
isso o envio direto vale só para servidor local; para um remoto, a extensão
usa o terminal. Firewalls podem bloquear a porta UDP local.
- Comandos que pareçam carregar senha nunca são guardados no histórico.
Contribuindo
Contribuições são bem-vindas — veja o guia de contribuição.
O uso de IA é permitido: quem contribui é responsável pelo que envia, sem
co-autoria de IA, e sem preconceito quanto ao seu uso. Detalhes na
política de IA.
Licença
PawnPro License v1.0 — Source-Available (não Open Source).
Uso pessoal e comercial permitido ✅ · Redistribuição e venda proibidas ❌ · Detalhes: LICENSE.md