Releases: NullSablex/PawnPro
Releases · NullSablex/PawnPro
Release list
v3.4.2 — Correção: depurador incluído no VSIX
As versões 3.4.0 e 3.4.1 foram publicadas sem o binário do depurador no
VSIX: o workflow de release definia o artefato do depurador na matriz, mas não
tinha o passo que o baixava antes de empacotar. A 3.4.2 corrige o release
(o depurador agora é incluído no pacote). O conteúdo abaixo é o desta linha 3.4.
Adicionado
- Depurador (DAP) — integração com o PawnPro Debugger (binário externo): a extensão registra o tipo de depuração
pawn, comcontributes.debuggers,breakpointspara a linguagem Pawn e umalaunch.jsonpadrão. Ao iniciar a sessão (F5), recompila o.pwncom-d3automaticamente (sem alterar a configuração do usuário), sobe o servidor e conecta o adaptador- Detecção do plugin oficial pelo símbolo marcador (
PAWNPRO_DEBUG_MARKER) embutido no.so, e preflight antes de iniciar - Recursos do depurador: breakpoints simples, condicionais, por contagem de acertos (hit count), logpoints, step (in/out/over), inspeção de variáveis (int/float/bool/array/hex), watch, hover, editar variável e pausar em erro de runtime (divisão por zero, índice de array fora do limite)
- As mensagens de erro do depurador seguem o mesmo idioma da engine (config
pawnpro.locale)
- Detecção do plugin oficial pelo símbolo marcador (
- Página "Ajuda e informações" — comando "PawnPro: Ajuda e informações" (também no menu de ações da status bar) que abre uma página com: o compilador recomendado em destaque (o compilador do open.mp 3.10.11, único testado no momento), as versões atuais dos componentes (extensão, engine LSP e adaptador do depurador), links (documentação, repositórios e reportar problema) e um guia rápido do depurador — como instalar o plugin no servidor (SA-MP/open.mp) e como iniciar a depuração
- Biblioteca de Recursos — recursos adicionados ao projeto — filtro "Adicionados" para ver só o que está no projeto, selo "Adicionado" nos cards, e ações contextuais na página de detalhe: Adicionar (com seletor de versão) quando ainda não está no projeto, Remover quando já está. Nesta prévia o estado é de exemplo (não altera o projeto de verdade)
- Preservar alinhamento de arrays — nova opção de formatação (
format.preserveArrayAlignment, com toggle na página de configurações): mantém intacto o alinhamento manual em colunas de inicializadores de array{ }quebrados em várias linhas - Dependabot e sincronização de labels —
.github/dependabot.yml(atualizações semanais de dependências npm e GitHub Actions) e workflow que sincroniza os labels do repositório a partir de.github/labels.yml - Blindagem por SHA dos binários — os binários externos (engine e adaptador do depurador) podem ter o checksum SHA-256 fixado no
package.json(engineChecksums/debuggerChecksums); quando presente, é a fonte da verdade na verificação, protegendo contra republicação de uma release. Modo--pinno script de download para gerar/atualizar os checksums
Alterado
- Página "Biblioteca de Recursos" — layout, responsividade e legibilidade revistos: espaçamentos fluidos com
clamp()(sem breakpoints), grade que adapta ao painel, separação clara entre descrição e informações, botão de ação e seletor de versão reformulados (controles separados, melhor alinhamento), seção "Informações" com espaçamento ajustado, e tipografia maior (títulos, autor, chips e badges dos cards) com o contador de resultados mais destacado. O filtro/selo "Adicionados" usa uma cor verde discreta própria, distinta dos filtros de Tipo/Fonte - Cor de foco das páginas — o realce de foco/seleção nas webviews (configurações, biblioteca) passa a usar a cor de botão do tema em vez da borda de foco, evitando o destaque amarelo de alguns temas
- Configuração de idioma — a config
pawnpro.localeagora também controla as mensagens do depurador, além dos diagnósticos da engine; descrição atualizada na página de configurações - Dependências —
@types/nodepara^26.1.0,vscode-languageclientpara^10.1.0eiconv-litepara^0.7.3 - Build — download dos binários unificado em
scripts/download-binaries.js(substituiscripts/download-engine.js), cobrindo engine e adaptador do depurador - CI — dependências das GitHub Actions atualizadas (pinadas por SHA):
actions/checkout4.2.2 → 7.0.0,actions/upload-pages-artifact3.0.1 → 5.0.0,actions/first-interaction1.3.0 → 3.1.0 egithub/codeql-action4.36.2 → 4.36.3
Corrigido
- Ícone da aba das páginas em WebView — as páginas "O que há de novo" e "Ajuda e informações" mostravam o ícone de arquivo genérico na aba, em vez do ícone da extensão. As WebViews ignoram
<link rel="icon">no HTML; o ícone da aba é definido porpanel.iconPath. A página "O que há de novo" arrastava esse comportamento desde a 2.1.0-rc.1 (quando foi introduzida); agora ambas usam o ícone da extensão, como as demais páginas (Configurações, Biblioteca de Recursos) - CI: análise CodeQL falhando por versão inconsistente — o workflow tinha
github/codeql-action/inite.../analyzepinados em versões diferentes (4.36.2 e 4.36.3), causando o erroLoaded a configuration file for version '4.36.3', but running version '4.36.2'. Ambos os passos passam a usar a v4.36.3
Documentação
- Guia de depuração (
docs/debugging.md) — como funciona (adaptador local + plugin no servidor), o passo único de colocar o plugin do servidor na pasta correta (SA-MP/open.mp), como iniciar a sessão (F5) e um exemplo delaunch.json. A extensão apenas verifica (preflight) se o plugin está presente — não o instala
Full Changelog: v3.3.0...v3.4.2
v3.3.0
Adicionado
- Formatação de código Pawn — atalho
Ctrl+K Ctrl+F(seleção) e formatação de documento completo, ambos servidos pelo provider de formatação da engine via LSP - Estilos de formatação configuráveis — nova chave
formatem.pawnpro/config.jsoncom os campos:preset—allman(padrão),knr,compactoucustombraceStyle,spaceAroundOperators,emptyBlockSameLine— ajustes finos aplicados no presetcustom
- Seção "Formatação" na página de configurações — seleção de estilo por cartões visuais: cada cartão mostra um preview do código no estilo + o nome, funcionando como botão de seleção; os ajustes finos só aparecem no preset
custom - Ícone na página de configurações — o ícone da extensão passa a ser exibido ao lado do nome "PawnPro" no cabeçalho da navegação
- Assistente de nomes (
PP0018) — nova seção "Nomenclatura" na página de configurações: ativar/desativar, comprimento mínimo, e estilo por categoria com multi-seleção (funções, globais, locais, constantes, macros, parâmetros), cada um com preview de código real (exemplos temáticos por categoria). Desligado por padrão. A engine reage em tempo real (sem reiniciar)- Estilos aceitos:
camelCase,snake_case,PascalCase,UPPER_CASEeCapitalized_Snake(cada palavra capitalizada, com_opcional entre elas, ex.:Carregar_Lixeiras— engloba também os nomesPascalCasecomoPalavrao). A referência de cada convenção está documentada em "Nomenclaturas aceitas" - Os seletores de estilo ficam recolhidos numa seção expansível para reduzir o ruído visual; cada estilo é apresentado como badge em layout de duas colunas
- Estilos aceitos:
- Listas de nomes em arquivos — nomes proibidos e índices de loop ficam em arquivos
.ban/.alloweditáveis (botão "Abrir arquivo" na página), com realce de sintaxe próprio. Limite de processamento configurável (padrão 32 MB) - Migração assistida — botão que migra listas do formato antigo (inline no
config.json) para os arquivos, com backup dos itens e confirmação por tamanho; comando "PawnPro: Recuperar configuração grande" para o caso de umconfig.jsongrande demais para ser lido - Mais idiomas — esqueletos de tradução para Espanhol, Russo e Romeno (UI e mensagens), além de PT-BR e EN
- Linguagem para as listas de nomes — arquivos
.ban/.allowsão reconhecidos como uma linguagem própria (pawnpro-namelist), com gramática de realce (comentários#e termos) e configuração de comentário de linha - Biblioteca de Recursos (prévia) — comando "PawnPro: Biblioteca de Recursos" abre uma vitrine para plugins/filterscripts/includes, com busca e alternância entre lista e grade. Nesta versão é uma prévia com catálogo de exemplo (sem instalação real); fontes previstas: catálogo próprio +
packages.open.mp - Animação do título (opcional) — nova opção
ui.animateTitle(seção Interface) que anima as letras do título no topo das páginas (Configurações e Biblioteca), em sequência teclado → bloco → cair, em loop com pausa entre os ciclos. Desligada por padrão; respeitaprefers-reduced-motion
Corrigido
- Página "O que há de novo" — o renderizador de Markdown do changelog tinha três falhas: sub-itens indentados apareciam como texto cru com
-(em vez de sublista), cabeçalhos####renderizavam com um#sobrando, e links[texto](url)não viravam links clicáveis. Além disso, cada seção (Adicionado, Corrigido, …) agora é um único card com seus itens em lista (e sub-itens recuados dentro), no lugar de um card por item - Ícone das abas das páginas — as abas das páginas de Configurações e da Biblioteca de Recursos exibiam o ícone genérico de arquivo; passam a usar o ícone do PawnPro
- Navegação da página de configurações — ao clicar numa seção, o título não fica mais "colado" no topo (folga consistente via
scroll-margin), e o vão no fim da página foi ajustado por um espaçador dinâmico (permite a última seção subir ao topo sem espaço vazio exagerado). Os itens do menu lateral deixaram de expor a âncora (#secao) ao passar o mouse — a navegação usa um alvo interno em vez de link de âncora
Alterado
- Campo "Caminho do compilador" — fica oculto quando a Detecção automática está ligada (o caminho manual é irrelevante nesse modo: um caminho válido é usado, e um inválido/vazio cai na detecção). Só aparece para preenchimento manual quando a detecção está desligada
- Engine atualizada para 1.2.0 (
engineVersion) — assistente de nomes (PP0018), renomeação de símbolos, novos idiomas e o motor de formatação por estrutura. Ver o changelog da pawnpro-engine - Localização migrada para
vscode.l10n— as mensagens de runtime saíram dovscode-nlspara a API nativa do editor; os bundles ficam eml10n/, fora da raiz - URL do site da documentação — atualizada para
https://pawnpro.nullsablex.com/
Dependências
vscode-languageclient9 → 10 — atualização do cliente LSP; o subpath de import passou devscode-languageclient/node.jsparavscode-languageclient/nodeesbuild0.28.0 → 0.28.1 (Dependabot, #25)@vscode/vsce3.9.1 → 3.9.2 e@types/node25.6 → 25.9.3 — atualizações de patch das ferramentas de buildtmp0.2.5 → 0.2.7 efast-uri3.0.6 → 3.1.2 (Dependabot, #23, #24)- Removido override obsoleto de
minimatch3.1.5 no@vscode/vsce— o vsce 3.9.2 exigeminimatch ^10, e o override antigo quebrava o empacotamento vscode-nlsremovido das dependências — substituído pela API nativavscode.l10n;@vscode/l10n-devadicionado em devDependencies (extração dos bundles)
Segurança
qs6.14.2 → 6.15.2 (override) — corrige DoS remotamente acionável emqs.stringify(GHSA-q8mj-m7cp-5q26); a versão fixada anterior ainda estava dentro da faixa vulnerávelbrace-expansion→ 5.0.6 (transitiva, viaminimatch10.2.3) — corrige DoS em que um intervalo numérico grande burla a proteçãomax(GHSA-jxxr-4gwj-5jf2)markdown-it14.1.1 → 14.2.0 (override) — corrige DoS de complexidade quadrática na regra de smartquotes (GHSA-6v5v-wf23-fmfq); a versão fixada anterior ainda estava na faixa vulnerávelundiciatualizado para a versão corrigida (transitiva das ferramentas de build) — resolve avisos incluindo dois de severidade alta (bypass de validação de certificado TLS e injeção de cabeçalho HTTP viaSet-Cookie)- Todas as dependências vulneráveis acima são de build/empacotamento — não entram no VSIX nem no runtime da extensão. Com o
package.json/package-lock.jsonatualizados, os alertas do Dependabot ficam resolvidos e onpm auditreporta 0 vulnerabilidades - OpenSSF Scorecard — workflow
scorecard.ymlavaliando boas práticas de segurança do repositório - Teto de tamanho do
config.json— 32 MB, ignorado acima disto, evitando travar a extensão com um arquivo absurdo
Outros
- Adicionado arquivo
CODEOWNERS - Badges de Security e OpenSSF Scorecard no README
- Deploy da documentação por GitHub Actions — o workflow
docs.ymldeixou de publicar pela branchgh-pages(mkdocs gh-deploy) e passou a usar o pipeline oficial de Pages (actions/upload-pages-artifact+actions/deploy-pages), semcontents: write. Continua disparando apenas quandodocs/**oumkdocs.ymlmudam; build com--strict(falha em links quebrados) - Dependências de CI pinadas — todas as GitHub Actions de todos os workflows são referenciadas por commit SHA (com a versão em comentário); o build instala dependências com
npm ci(lockfile) e o deploy de docs usapip install --require-hashessobre umdocs/requirements.txtcom hash de cada dependência. Atende à boa prática de dependências pinadas do OpenSSF Scorecard - Documentação atualizada —
features.md,configuration.mdecommands.mdcobrem os novos recursos (formatação, assistente de nomes, renomeação, idiomas, listas.ban/.allow); navegação do site reorganizada em Guia do usuário e Para desenvolvedores, com guias de design do assistente de nomes - Descrição da release preenchida automaticamente — ao publicar uma release, o
publish.ymlmonta o corpo a partir da seção correspondente doCHANGELOG.md(mais o bloco de novos contribuidores e o link de comparação que o GitHub gera), sem depender de PRs/labels - Actions de CI atualizadas para Node 24 —
checkout,setup-node,stale,deploy-pageseaction-gh-releasesubiram para versões baseadas em Node 24, eliminando o aviso de deprecação do Node 20 nos runners do GitHub
New Contributors
- @dependabot[bot] made their first contribution in #23
Full Changelog: v3.2.1...v3.3.0
v3.2.1
What's Changed
- fix: templates vazios com platform "auto" e watcher LSP incompleto (#21) by @NullSablex in #22
Full Changelog: v3.2.0...v3.2.1
v3.2.0
What's Changed
- feat: 3.2.0 — camada editor/, painel de configurações WebView, suppressDiagnosticsInInc, locale, sdk.platform auto, .p/.pawn by @NullSablex in #21
Full Changelog: v3.1.0...v3.2.0
v3.1.0
v3.0.0
What's Changed
-
Adicionado by @NullSablex in #17
- fix: repack-vsix.js detecta o .vsix por glob em vez de nome fixo (suporta --target) by @NullSablex in #18
- fix: remove --target do publish (incompatível com --packagePath) by @NullSablex in #19
Full Changelog: 2.1.1-rc.1...v3.0.0
2.1.1-rc.1
What's Changed
- fix: prepara versão 2.1.1-rc.1 para publicação no Marketplace by @NullSablex in #16
Full Changelog: 2.1.0-rc.3...2.1.1-rc.1
2.1.0-rc.3
What's Changed
- fix: Corrige a versão do package.json para a publicação adequada. by @NullSablex in #15
Full Changelog: 2.1.0-rc.2...2.1.0-rc.3
2.1.0-rc.2
What's Changed
- fix: correção de permissão para publicação de versão. by @NullSablex in #14
Full Changelog: 2.1.0-rc.1...2.1.0-rc.2
2.1.0-rc.1
What's Changed
- feat: release 2.1.0-rc.1 by @NullSablex in #11
- 2.1.0 rc.1 by @NullSablex in #13
Full Changelog: v2.0.2-beta...2.1.0-rc.1