fix: detectar projetos Líquido por configuracao.delprops - #136
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.
Detecção real de projetos Líquido por
configuracao.delpropsFixes #108
Problema
A extensão identificava o contexto de um projeto Líquido verificando se o caminho do arquivo continha uma pasta chamada
rotas/.Essa heurística era frágil em três direções:
modelos/,visoes/,parciais/,estilos/e outras camadas que também fazem parte de uma aplicação Líquido;configuracao.delprops, que é o marcador real do projeto e contém as propriedades de arquétipo e linguagem;rotas/.Na prática, o contexto especializado de Líquido ficava limitado à organização física das pastas, em vez de ser determinado pela configuração real da aplicação. Isso impedia que modelos, visões, parciais e estilos recebessem o mesmo tratamento das rotas e ainda permitia ativar o comportamento Líquido em projetos que não eram Líquido.
A mesma heurística também era usada na reanálise disparada após alterações em
configuracao.delprops, mantendo a inconsistência tanto na extensão desktop quanto na extensão web.Solução
A heurística baseada em
/rotas/foi substituída pela detecção real do projeto, procurandoconfiguracao.delpropsdo diretório do documento até a raiz do workspace.fontes/liquido/configuracao-projeto-liquido.ts— concentra a lógica pura de leitura e localização da configuração:liquido.arquetipoeliquido.linguagem;Delégua→delegua,Pituguês→pitugues);liquido.linguagemnão está declarada;//sem quebrar sequências que estejam dentro de strings;configuracao.delpropsmais próximo, permitindo projetos aninhados em monorepos.fontes/liquido/deteccao-projeto-liquido.ts— integra a detecção ao sistema de arquivos do VS Code:vscode.workspace.fs, mantendo compatibilidade com desktop, web e workspaces virtuais;schemeeauthoritydas URIs;configuracao.delprops;fontes/analise-codigo/index.ts— passa a selecionar o contexto especializado de Delégua e Pituguês pela configuração real do projeto:/rotas/;configuracao.delprops;detectarProjetoLiquidocomo implementação padrão em produção.A injeção opcional deixa os testes determinísticos e evita dependência de ordem de importação, cache de módulos,
jest.mock,jest.spyOnou simulações completas deworkspace.fs.fontes/liquido/reanalisar-documentos-projeto-liquido.ts— centraliza a invalidação de cache e a reanálise dos documentos abertos afetados:fontes/extensao.tsefontes/extensao-web.ts— passam a usar o mesmo fluxo para:configuracao.delprops;configuracao.delprops;configuracao.delprops;configuracao.delprops.Com isso, desktop e web passam a atualizar o contexto Líquido sem exigir a reinicialização da extensão.
Testes
Este PR adiciona
testes/liquido/configuracao-projeto-liquido.test.ts, com 7 casos de regressão:modelos/, sem depender derotas/;rotas/semconfiguracao.delprops;Também atualiza os testes de
testes/analise-codigo/index.test.tspara validar o comportamento da análise após a troca da heurística:liquidoquando a classeLiquidoestá disponível em um projeto detectado;requisicaoeresposta;rotas/semconfiguracao.delpropsnão ativa o contexto;Os testes de
testes/extensao.test.tscobrem o fluxo de ativação e os eventos de invalidação e reanálise relacionados à configuração do projeto.Validação focada da issue
Para executar somente as suítes diretamente relacionadas à issue #108:
Resultado obtido:
A validação focada foi executada com sucesso em 5 de agosto de 2026.
Se a quantidade de testes mudar por atualizações posteriores da branch, o requisito continua sendo que as três suítes listadas terminem sem falhas.
Validações adicionais antes do merge
Validação manual recomendada
configuracao.delpropsna raiz;modelos/,visoes/,parciais/,estilos/erotas/;rotas/, mas semconfiguracao.delprops, e confirmar que o contexto Líquido não é ativado;liquido.linguagementre Delégua e Pituguês e confirmar a reanálise dos documentos abertos;configuracao.delpropse confirmar a atualização sem reiniciar o VS Code;Observação de escopo
Esta mudança implementa a fundação solicitada na issue: detecção confiável do projeto e leitura de arquétipo e linguagem.
A navegação entre camadas (
rota ↔ visão ↔ estilo ↔ modelo) e o painel lateral com o mapa da aplicação tornam-se possíveis a partir desse contexto, mas não fazem parte deste PR.Checklist
configuracao.delpropsliquido.arquetipoeliquido.linguagemrotas/rotas/eliminadoyarn typecheckexecutado com sucesso