fix: tornar completude FolEs contextual e sugerir valores - #138
Merged
leonelsanchesdasilva merged 1 commit intoAug 5, 2026
Merged
Conversation
leonelsanchesdasilva
added a commit
that referenced
this pull request
Aug 5, 2026
- LMHT: - Nova estrutura `titulo`/`título`, de uso contextual: título do documento, legenda do formulário ou da tabela, dependendo da estrutura pai. - Liquido: - Completude de FolEs passa a ser contextual e a sugerir valores (#138); - Detecção de projetos Líquido passa a considerar `configuracao.delprops` (#136). - Núcleo de Delégua atualizado para a versão 1.26.2: - Salvaguarda em tradução de Delégua para JavaScript quando `argumentos` de dicionário poderia estar indefinido (resolve DesignLiquido/delegua#1404); - Correção em tradução de Delégua para Python em caso de Fibonacci (resolve DesignLiquido/delegua#1403); - Correção em tradução de JavaScript para Delégua que permitia `x[1]` virar `x.1`, o que não é código JS válido (resolve DesignLiquido/delegua#1401); - Reestruturação do tradutor x64. - Atualização periódica de pacotes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Completude contextual de propriedades e valores em FolEs
Fixes #106
Problema
O provedor de completude de FolEs calculava a profundidade das chaves para decidir quando incluir propriedades, mas inicializava a resposta com todos os seletores LMHT de forma incondicional.
Na prática:
:, o provedor continuava oferecendo propriedades e seletores, sem consultar os valores aceitos pelo modificador;cor:, não ofereciam os nomes de cores existentes no pacote FolEs;:como caractere de gatilho, então a lista de valores não era aberta imediatamente após a propriedade.Com os dados atuais do pacote, o comportamento anterior retornava 611 itens dentro de uma regra: 501 modificadores e 110 seletores LMHT sem utilidade naquele contexto.
Solução
O provedor passa a distinguir três contextos de completude:
Fora de blocos
Retorna exclusivamente seletores LMHT.
Dentro de uma regra, antes de
:Retorna exclusivamente modificadores FolEs.
Os 110 seletores deixam de ser misturados aos 501 modificadores. A lista dentro da regra passa de 611 para 501 itens, eliminando o ruído apontado na issue.
Depois de
propriedade:Retorna valores relacionados à propriedade atual.
Valores específicos dos modificadores
O pacote
@designliquido/folesjá contém as classes dos modificadores e seus dicionáriosvaloresAceitos.O provedor percorre as classes exportadas por
@designliquido/foles/modificadores, instancia cada uma em modo de variável — evitando validação de uma declaração real — e monta um cache entre:Aliases com e sem acentuação continuam funcionando. Quando um alias não está diretamente disponível na classe, o provedor usa o nome CSS de
listaModificadorespara localizar o mesmo conjunto de valores.A construção é defensiva: uma classe que eventualmente passe a exigir estado adicional é ignorada sem interromper o IntelliSense.
Valores globais
Todo modificador reconhecido também recebe os valores globais do pacote FolEs:
herdar;inicial;reverter;reverter-camada;desarmar.Esses itens são apresentados como
CompletionItemKind.Value, com o equivalente CSS emdetaile na documentação.Cores e funções de cor
Para propriedades reconhecidas como propriedades de cor, o provedor usa:
Cores, para identificar propriedades que aceitam cor;cores, para obter os nomes FolEs e os equivalentes CSS;DicionarioValores, para oferecer as funçõeshex,hsl,hsla,rgbergbaquando elas existem no pacote.Os nomes de cor são criados como
CompletionItemKind.Color, permitindo que o VS Code os apresente com o tratamento visual específico de cores. O equivalente CSS aparece ao lado do item e na documentação.Exemplo:
Valores repetidos entre dicionários são deduplicados. Quando um valor também é uma cor, o tipo
Colortem prioridade.Detecção da declaração atual
A linha é analisada somente até a posição do cursor. O provedor considera o trecho depois do último:
{;};;.Isso permite:
;;Gatilho de completude
O registro de
FolesProvedorCompletudeemfontes/ativacao-linguagens.tspassa a declarar:como caractere de gatilho:Como a ativação de linguagens é compartilhada pelas extensões desktop e web, o comportamento fica disponível nos dois ambientes.
Testes
testes/completude/foles-provedor-completude.test.tsfoi atualizado para 19 casos de regressão:;;cor:;CompletionItemKind.Colore equivalente CSS;DicionarioValores;:como gatilho do provedor.Validação focada
Validações adicionais
Validação manual recomendada
.folesvazio e confirmar que a raiz sugere seletores LMHT;alinhamento:e verificar os valores qualitativos aceitos;cor:e verificar nomes de cores e funções de cor;;depois de um valor e confirmar que o provedor volta a sugerir propriedades;Observação de escopo
Este PR corrige o contexto da completude e utiliza os dicionários já expostos pelo pacote FolEs.
Não inclui um provedor separado de cores do documento (
DocumentColorProvider) nem altera o parser, o formatador ou as regras de validação da linguagem.Checklist
propriedade:valoresAceitosCompletionItemKind.Colorhex,hsl,hsla,rgbergbacarregadas deDicionarioValores:registrado como gatilho de completudeyarn typecheckexecutado com sucesso