Skip to content

Releases: NullSablex/PawnPro

v3.4.2 — Correção: depurador incluído no VSIX

Choose a tag to compare

@NullSablex NullSablex released this 05 Jul 00:08
e6dca84

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, com contributes.debuggers, breakpoints para a linguagem Pawn e uma launch.json padrão. Ao iniciar a sessão (F5), recompila o .pwn com -d3 automaticamente (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)
  • 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 --pin no 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.locale agora 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/node para ^26.1.0, vscode-languageclient para ^10.1.0 e iconv-lite para ^0.7.3
  • Build — download dos binários unificado em scripts/download-binaries.js (substitui scripts/download-engine.js), cobrindo engine e adaptador do depurador
  • CI — dependências das GitHub Actions atualizadas (pinadas por SHA): actions/checkout 4.2.2 → 7.0.0, actions/upload-pages-artifact 3.0.1 → 5.0.0, actions/first-interaction 1.3.0 → 3.1.0 e github/codeql-action 4.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 por panel.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/init e .../analyze pinados em versões diferentes (4.36.2 e 4.36.3), causando o erro Loaded 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 de launch.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

Choose a tag to compare

@NullSablex NullSablex released this 21 Jun 08:48
24ff639

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 format em .pawnpro/config.json com os campos:
    • presetallman (padrão), knr, compact ou custom
    • braceStyle, spaceAroundOperators, emptyBlockSameLine — ajustes finos aplicados no preset custom
  • 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_CASE e Capitalized_Snake (cada palavra capitalizada, com _ opcional entre elas, ex.: Carregar_Lixeiras — engloba também os nomes PascalCase como Palavrao). 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
  • Listas de nomes em arquivos — nomes proibidos e índices de loop ficam em arquivos .ban/.allow editá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 um config.json grande 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/.allow sã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; respeita prefers-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 do vscode-nls para a API nativa do editor; os bundles ficam em l10n/, fora da raiz
  • URL do site da documentação — atualizada para https://pawnpro.nullsablex.com/

Dependências

  • vscode-languageclient 9 → 10 — atualização do cliente LSP; o subpath de import passou de vscode-languageclient/node.js para vscode-languageclient/node
  • esbuild 0.28.0 → 0.28.1 (Dependabot, #25)
  • @vscode/vsce 3.9.1 → 3.9.2 e @types/node 25.6 → 25.9.3 — atualizações de patch das ferramentas de build
  • tmp 0.2.5 → 0.2.7 e fast-uri 3.0.6 → 3.1.2 (Dependabot, #23, #24)
  • Removido override obsoleto de minimatch 3.1.5 no @vscode/vsce — o vsce 3.9.2 exige minimatch ^10, e o override antigo quebrava o empacotamento
  • vscode-nls removido das dependências — substituído pela API nativa vscode.l10n; @vscode/l10n-dev adicionado em devDependencies (extração dos bundles)

Segurança

  • qs 6.14.2 → 6.15.2 (override) — corrige DoS remotamente acionável em qs.stringify (GHSA-q8mj-m7cp-5q26); a versão fixada anterior ainda estava dentro da faixa vulnerável
  • brace-expansion → 5.0.6 (transitiva, via minimatch 10.2.3) — corrige DoS em que um intervalo numérico grande burla a proteção max (GHSA-jxxr-4gwj-5jf2)
  • markdown-it 14.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ável
  • undici atualizado 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 via Set-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.json atualizados, os alertas do Dependabot ficam resolvidos e o npm audit reporta 0 vulnerabilidades
  • OpenSSF Scorecard — workflow scorecard.yml avaliando 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.yml deixou de publicar pela branch gh-pages (mkdocs gh-deploy) e passou a usar o pipeline oficial de Pages (actions/upload-pages-artifact + actions/deploy-pages), sem contents: write. Continua disparando apenas quando docs/** ou mkdocs.yml mudam; 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 usa pip install --require-hashes sobre um docs/requirements.txt com hash de cada dependência. Atende à boa prática de dependências pinadas do OpenSSF Scorecard
  • Documentação atualizadafeatures.md, configuration.md e commands.md cobrem 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.yml monta o corpo a partir da seção correspondente do CHANGELOG.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 24checkout, setup-node, stale, deploy-pages e action-gh-release subiram para versões baseadas em Node 24, eliminando o aviso de deprecação do Node 20 nos runners do GitHub

New Contributors

Full Changelog: v3.2.1...v3.3.0

v3.2.1

Choose a tag to compare

@NullSablex NullSablex released this 29 Apr 20:22
a886552

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

Choose a tag to compare

@NullSablex NullSablex released this 29 Apr 20:07
d93d0c8

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

Choose a tag to compare

@NullSablex NullSablex released this 20 Apr 08:39
a46f0d9

What's Changed

Full Changelog: v3.0.0...v3.1.0

v3.0.0

Choose a tag to compare

@NullSablex NullSablex released this 19 Apr 11:52
599de88

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

2.1.1-rc.1 Pre-release
Pre-release

Choose a tag to compare

@NullSablex NullSablex released this 09 Mar 01:26
2ca2d93

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

2.1.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@NullSablex NullSablex released this 09 Mar 00:43
ee76d03

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

2.1.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@NullSablex NullSablex released this 09 Mar 00:31
a1da321

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

2.1.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@NullSablex NullSablex released this 09 Mar 00:14
3f1af27

What's Changed

Full Changelog: v2.0.2-beta...2.1.0-rc.1