Adicionado
-
Comentários de documentação nos hovers, signature help e autocomplete — o
comentário imediatamente acima de uma declaração passa a ser interpretado, não
apenas repassado como texto cru. Duas convenções são reconhecidas, detectadas
pelo próprio conteúdo:- Javadoc (
@param,@return,@remarks/@note) — o primeiro parágrafo
vira o resumo, e linhas seguintes a uma tag continuam o texto dela - XMLdoc (
<summary>,<param name="">,<returns>,<remarks>) — a
convenção herdada do C# que oomp-stdlibusa. O HTML inline vira Markdown
(<b>→ negrito,<c>→ código,<br />→ quebra de linha);<library>,
<seealso>e as âncoras<a href="#Func">são metadados do gerador da wiki
do open.mp e não aparecem no hover, onde só ocupariam espaço
Em ambos, cada parâmetro é casado pelo nome (o sufixo
[]é ignorado) e
não pela posição — um comentário pode omitir parâmetros ou listá-los fora de
ordem. O signature help passa a mostrar a descrição do parâmetro sob o
cursor; o autocomplete mostra só o resumo, e o hover, o bloco inteiro
formatado, com as seções traduzidas para o idioma resolvido. Um comentário sem
marcação continua virando a descrição, como antes - Javadoc (
-
Tags de documentação no autocomplete — o trigger
@, dentro de um
comentário, passa a oferecer@param,@returne@remarkscom snippets -
Padrão próprio no estilo de nomenclatura — um item da lista de estilos
aceitos escrito entre barras (/^g_[a-z][a-zA-Z0-9]*$/) passa a ser lido como
expressão regular, para convenções que os cinco estilos embutidos não descrevem
— prefixo de global, notação húngara. Convive com eles pela regra que já valia:
o nome é aceito se casar com qualquer critério da categoria.O padrão é âncorado como
^(?:…)$— descreve o nome inteiro, e o agrupamento
impede que uma alternância no topo ancore só os extremos. O_inicial não
é removido antes da comparação, ao contrário dos estilos embutidos: quem
escreve o padrão decide se o aceita. Um padrão inválido é ignorado sem derrubar
a análise nem os demais critérios da categoria.Não gera sugestão de renomeação: de um regex arbitrário dá para saber se o nome
passa, não como reescrevê-lo. Por isso o critério é um tipo próprio (Rule) em
vez de uma variante deCase, que alimenta o gerador de nomes. A crateregex
tem tempo de execução linear garantido, então um padrão custoso não degrada a
análise -
Diagnósticos e hovers traduzidos para Espanhol, Romeno e Russo — as tabelas
de mensagensmessages/langs/{es,ro,ru}.rsexistiam como esqueleto (texto ainda
em inglês, copiado deen.rs) e agora estão de fato traduzidas: as 75 mensagens
(diagnósticos PP*, contadores de referências do CodeLens e descrições de hover
de palavras-chave) saem no idioma resolvido porLocale::from_str. Marcadores
{}/{n}/{style}preservados; termos técnicos do Pawn (native,
forward,stock,public,static,enum) mantidos em inglês
Alterado
-
#pragma deprecatedsubstitui o marcador@DEPRECATED— a depreciação
passa a usar a diretiva do próprio compilador Pawn, em vez do marcador em
comentário que a engine reconhecia antes. A semântica acompanha a do
compilador: a diretiva marca o próximo símbolo declarado e não tem forma
inline. O texto que a segue é opcional e, quando presente, é anexado ao
aviso PP0007 — é a parte acionável, já que normalmente diz o que usar no
lugar:#pragma deprecated Use BanPlayerFor em vez desta stock BanTemporario(playerid, seconds) { }
Cobertura inalterada:
native,stock,public,forward,static,
#define, variáveis globais e#include(PP0008), incluindo o pareamento
automático entreforwardepublic -
@DEPRECATEDdeixa de ser reconhecido — comentários com o marcador antigo
não marcam mais nada. Quem o usava precisa trocar por#pragma deprecated
(ver acima). O completion do@que existia só para inseri-lo deu lugar às
tags de documentação -
Dependências (Rust) —
tokio1.52.3 → 1.53.1,regex1.12.4 → 1.13.1,
serde1.0.228 → 1.0.229,serde_json1.0.150 → 1.0.151 efutures0.3.32 →
0.3.34, além das transitivas doCargo.lock -
CI — GitHub Actions atualizadas (pinadas por SHA):
github/codeql-action
4.36.2 → 4.37.9,actions/checkout4.2.2 → 7.0.1,actions/upload-artifact
6.0.0 → 7.0.1,actions/download-artifact7.0.0 → 8.0.1,
actions/upload-pages-artifact3.0.1 → 5.0.0,Swatinem/rust-cache2.9.1 →
2.9.2,ossf/scorecard-action2.4.3 → 2.4.4 esoftprops/action-gh-release
3.0.1 → 3.0.3 -
Docs (CI) —
mkdocs-materialpara 9.7.7 epymdown-extensions10.21.3 →
11.0.2 (pinados por hash) -
Dependabot — um PR por ecossistema — as atualizações passam a ser agrupadas
por ecossistema (cargo, GitHub Actions, pip) em vez de abrir um PR por
dependência, reduzindo o ruído de manutenção -
Autocomplete ordenado pela proximidade do cursor — a lista vinha ordenada
de um jeito que punha as variáveis locais e os parâmetros abaixo de
milhares de nativas dos includes; o que está mais perto de quem escreve
aparecia por último. A ordem passa a ser: locais e parâmetros, símbolos do
próprio arquivo, símbolos dos includes, palavras-chave e, por fim, os
marcados com#pragma deprecated— que continuam aparecendo (às vezes é
mesmo o que se quer), mas nunca à frente de uma alternativa viva. Dentro de
cada grupo a ordem é alfabética sem diferenciar maiúsculas -
Listas grandes de completion não travam mais a digitação — um projeto com
muitos includes mandava todos os símbolos ao editor a cada tecla. A resposta
passa a ser cortada em 1000 itens e marcada comoisIncomplete, fazendo o
editor pedir de novo conforme o prefixo cresce. O corte vem depois da
ordenação, então o que se perde são os itens mais distantes do cursor -
Correções rápidas para mais nove diagnósticos — passam a ter quick fix:
remover o corpo{ }ilegal de umnative/forward(PP0002/PP0003);
dar corpo vazio ou converter emforwardquando falta o corpo (PP0004);
trocar por um símbolo de nome parecido quando a função chamada não existe
(PP0010, o caso comum de erro de digitação); remover o#definee o
#includenão utilizados (PP0011/PP0012); e reindentar a linha
(PP0017), usando o estilo de formatação configurado no projeto, não uma
indentação fixa. Somados aos que já existiam, catorze dos dezenove
diagnósticos agora oferecem correção -
PP0019—#pragmadesconhecido ou malformado — o compilador rejeita uma
diretiva que não conhece (erro 207), mas só na compilação; agora o aviso
aparece enquanto se escreve, com quick fix. Cobre o nome errado
(#pragma deprected→ sugeredeprecated, comparando com a lista do
compilador) e a mensagem dedeprecatedescrita entre aspas — a diretiva toma
o resto da linha como texto livre, então as aspas entrariam na mensagem em vez
de delimitá-la. Aspas no meio do texto continuam sendo texto legítimo
Corrigido
- Comentário de outra parte do arquivo aparecendo no hover — a varredura do
doc comment subia o arquivo acumulando linhas, e acabava trazendo réguas,
cabeçalhos de seção e o texto de outras funções para o hover do símbolo
abaixo. Passa a valer a mesma regra do Javadoc e do PHPDoc: só o bloco
imediatamente acima da declaração — um/* … */colado nela, ou uma
sequência contígua de linhas//. Uma linha em branco, ou qualquer código
entre os dois, separa. Entre o comentário e a declaração continua podendo
haver o#pragma deprecatedque marca o símbolo - Doc comment de um símbolo aparecendo no hover de outro — quando o
comentário era um bloco de uma linha só (/** … */), a varredura empurrava
essa linha e ia procurar o/*de abertura a partir da linha anterior,
atravessando o código acima até casar com o/**de outro comentário. O
hover de um#define, por exemplo, mostrava a documentação da função
anterior com o código do meio junto. Um*/sem abertura também deixa de
virar doc, em vez de arrastar o arquivo até o topo - Aviso de depreciado desalinhando o hover — era escrito como blockquote
(>), o que fazia o editor recuar o bloco e ler a linha---seguinte como
continuação dele, desalinhando a documentação inteira. Passa a ser texto
normal — e agora traz junto a mensagem do#pragma deprecated, que antes só
aparecia no aviso de uso native/forwardcom assinatura quebrada em várias linhas eram ignorados —
ao fechar o), o parser só criava o símbolo se a linha trouxesse{; sem
isso, ficava esperando um corpo que nunca chega, já que essas duas formas
declaram sem corpo e terminam em;. O símbolo se perdia: sem hover, sem
autocomplete e sem signature help. Atinge em cheio os includes do open.mp,
onde assinaturas longas em várias linhas são comuns — um
ApplyActorAnimation, com nove parâmetros em nove linhas, era invisível para
a engine- Comentário de documentação perdido quando
#pragma deprecatedficava entre
ele e a declaração — a varredura do doc caminha para cima e parava na
primeira linha que não fosse comentário, e a diretiva cortava o caminho. Passa
a pular a diretiva - CodeQL: análise ausente em PRs de docs e dependências — o repositório usava
o default setup do CodeQL, que só analisa um pull request quando ele toca
arquivos das linguagens configuradas. Um PR que mexia apenas em documentação ou
em manifestos de dependência não gerava análise alguma, enquantomaster
continuava com uma por linguagem — a regra de proteçãocode_scanningnão
conseguia comparar os dois lados e reportava "configurations not found",
travando o merge. Substituído pelo advanced setup (.github/workflows/codeql.yml),
sem filtro de caminho: as duas configurações (/language:actionse
/language:rust) passam a existir em todo pull request
New Contributors
- @dependabot[bot] made their first contribution in #6
Full Changelog: v1.3.0...v1.4.0