samp.directory
← Scripts y librerías

NullSablex/PawnPro

Extensão para desenvolvimento em Pawn (SA-MP e open.mp) no VS Code e VSCodium, com IntelliSense e diagnósticos por um motor LSP em Rust e ferramentas integradas para edição, compilação, depuração e gerenciamento de servidor.

Herramienta★ 6actualizado anteayerOtherTypeScript
Abrir en GitHub

README.md

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 — a renomeação respeita escopo: um local muda só no bloco dele, e um parâmetro, só na função.
  • O programa inteiro, e só ele — a análise enxerga tudo o que é compilado junto com o arquivo aberto, inclusive o .inc irmão que você não abriu, e nunca outro programa: gamemode e filterscript não se misturam.
  • 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), e a saída aparece no painel Pawn Build. Os erros que o motor encontra já estão no painel de problemas, clicáveis, antes mesmo de compilar.
  • 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, em gamemodes e filterscripts. Depuração real, não print() espalhado — ainda instável.
  • 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.
  • Registro de diagnóstico — desligado de fábrica; ligado, a extensão, o núcleo e o motor gravam o que fazem em .pawnpro/logs/, para um relato de problema vir com o que aconteceu de fato.

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

  1. Abra a pasta do seu gamemode (não o arquivo solto — a extensão precisa da pasta para achar os includes).
  2. Abra um .pwn. O motor inicia sozinho e começa a analisar.
  3. 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:

ArquivoEscopo
~/.pawnpro/config.jsonGlobal (todos os projetos)
.pawnpro/config.jsonProjeto (sobrescreve o global)
.pawnpro/state.jsonEstado 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

RecursosO que a extensão faz, em detalhe
ConfiguraçãoTodas as chaves
ComandosPaleta e atalhos
ServidorIniciar, RCON, favoritos e log
DepuraçãoComo configurar o depurador
Assistente de nomesConvenções e padrões próprios

Site completo: pawnpro.nullsablex.com

Como funciona por dentro

A análise não roda em JavaScript. Ela fica no núcleo nativo — pawnpro-core, 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: o adaptador DAP também vive no núcleo, e um plugin roda dentro do servidor. Os dois conversam pelo mesmo soquete local que o editor usa.

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.1 — Source-Available (não Open Source).
Uso pessoal e comercial permitido ✅ · Redistribuição gratuita com atribuição ✅ · Venda proibida ❌ · Detalhes: LICENSE.md


autocompletecompilerdiagnosticsfilterscriptgamemodeintellisenselanguage-serverlspopen-mppawnrconsampvscodevscode-extensionvscodium

Esta página se genera con lo que GitHub publica sobre el repositorio. samp.directory no aloja el código. Informar de un problema con esta ficha