Open wrne opened 3 weeks ago
@wrne Para o Linter conseguir analisar os fontes corretamente, ele precisa de todos os includes que o fonte requer para ser compilado.
O erro apresentado aponta para o a inexistencia do include 'std.ch' que acredito ser um include especifico de FW.
Experimente incluir na configuracao de includes, a pasta de includes do FW, para que o Linter consiga encontrar esse arquivo e não apresente mais este erro.
Boa tarde @lwtnb-wrk !
A pasta de includes do FW já está parametrizada. Eu inclusive atualizei a mesma hoje com o pacote disponível no portal.
O protheus.ch é um include padrão e acredito que ele que tenha referencia ao std.ch. No pacote disponível no portal o std.ch não existe.
Att,
@wrne E ao compilar este arquivo, você não tem o mesmo problema?
Se puder, veja em https://github.com/totvs/tds-vscode/blob/master/TROUBLESHOOTING.md#gerando-logs como gerar, e nos envie os logs para analise.
Bom dia Leo!
Desculpe a demora no retorno. Exato, não sou impedido de compilar. Ocorre normalmente.
Segue os logs gerados:
totvsls_in.log totvsls_out.log totvsls.log
att,
@wrne Poderia gerar novos logs efetuando a compilacao do fonte? Pois nesses logs enviados nao consta nenhuma compilacao.
E so para confirmar o arquivo "std.ch" nao existe nestas pasta de includes, correto? /Users/wanderleyneto/Projetos/CCAB/myprojects/Includes /Users/wanderleyneto/Projetos/includes
Outro teste interessante tambem, seria comentar a 2a linha com o include "FwMVCDef.ch" para verificar se o "erro" detectado pelo Linter some apos o comentario.
Opa,
Segue print com erro antes de compilar:
Print da Saida com a compilação:
Um detalhe, que esqueci de comentar e não sei se pode interferir, meu ambiente aponta para duas pastas de include (uma padrão com o pacote disponibilizado pela Totvs e outra com defines do projeto com annotations e interfaces por exemplo).
Após comentar a linha FwMVCDef.ch, o linter acusou o "erro" imediatamente:
Sobre o arquivo, ele não existe no pacote padrão. Existe um com nome parecido (stdwin.ch):
Os arquivos de log: totvsls_in.log totvsls_out.log totvsls.log
À disposição.
@wrne Aparentemente não localizei nada de errado nos logs.
Você consegue nos enviar esses fontes para analisarmos? Sem reproduzir o problema aqui não temos como prosseguir nas análises.
Bom dia!
Acessei o ambiente de outro usuário aqui (onde o Outline estava funcionando) notei que ele estava com uma versão bem desatualizada (1.3.21).
Retomei esta versão e o Outline voltou. Segue prints:
Vou atualizar as versões para identificar em qual o problema apareceu, acredito que possa ajudar na análise. Por enquanto, segue os logs para análise (inclusive com a mudança de versão da ext): totvsls_in.log totvsls_out.log totvsls.log
Respondendo sua solicitação, segue um fonte simples de um cadastro customizado que temos, feito em tlpp e usando o tlpp-core.ch e apresentando o mesmo erro do Linter (isso na versão atual, não na antiga):
Logo retomo com a versão que começou a ocorrer o problema.
Att,
@wrne Experimente tambem alterar as pastas de includes, deixando apenas a ultima oficial do Portal, pois nao consigo reproduzir a falta deste "std.ch".
@wrne Experimente tambem alterar as pastas de includes, deixando apenas a ultima oficial do Portal, pois nao consigo reproduzir a falta deste "std.ch".
Mesma coisa... =/
@lwtnb-wrk ,
Testei a versão atual em outra máquina (SO Windows 11) e ocorreu o mesmo problema. Não sei o que pode ser mas não é específico da minha máquina.
Testei as versões:
2.0.2 - OK
2.0.3 - Já não aparece a estrutura, mas não tem msg de erro:
Será que ajuda?
Att,
@wrne Mas nesta outra estação você abriu o mesmo workspace e usou os mesmos includes?
Se puder nos enviar os arquivos e includes, tentaremos reproduzir o problema aqui, mas sem esses arquivos aqui eu não tenho mais o que fazer.
Isso, mesmo ambiente. Compartilhamos o mesmo repositório/ appserver/ pastas de includes são copias da mesma origem. A única diferença é que eu estou no MacOs e ele no Windows.
Segue a pasta de includes custom: Includes_custom.zip
A pasta de includes é a do portal: 24-05-10-P12_INCLUDES.ZIP
@wrne Usei os includes acima fornecidos e o Outline foi montando sem problemas, inclusive alertando sobre os problema detectados pelo Linter.
Bom dia!
@lwtnb-wrk, acha que é possível identificar a causa analisando a diferença entre as versões? Desde a semana passada, estou usando a versão 2.0.2 e não tem apresentado o problema. Não sei mais o que pode influenciar para te informar.
Att,
@wrne Mas antes de começar este problema, você estava com uma versão desatualizada do tds-vscode? Quando o problema começou? Após alguma atualização?
Não, sempre mantive a extensão atualizada. Por isso não consigo precisar em qual momento parou de funcionar.
Esta semana, depois da abertura da Issue, voltei as versões para tentar identificar até onde funcionava. Identifiquei que a 2.0.2 foi a última. A partir dela o Outline ficava em branco (sem a mensagem de erro, mas também sem a informação da estrutura do fonte).
@wrne Então mesmo com a extensão atualizada, ela funcionava e parou após alguma alteração no ambiente, certo? Seja de workspace de trabalho, includes ou ambas?
Eu não consigo reproduzir e determinar qual o problema. Consegue abrir um workspace vazio e realizar novos testes?
Ah não, desculpe, não foi isso que tinha entendido...
Ela parou de funcionar faz bastante tempo, em uma versão já antiga. Eu que demorei pra abrir a Issue... Não consigo associar a nada no meu ambiente. Esses includes são antigos já.
Posso tentar fazer com uma workspace vazia sim. Em breve retorno com o resultado
Att,
Bom dia!
Pessoal, de um tempo pra cá (não sei precisar a partir de qual release, a seção Outline não está conseguindo mapear a estrutura do fonte com as funções, métodos, variáveis, etc.
Antes, toda vez que o um fonte era aberto a estrutura dele era exibida. Agora é exibida a mensagem: "Compile Error The outline may be outdated. See the 'Problems View'". Olhando a aba Problems, é relatada a falta de um include (std.ch). No fonte o Linter aponta erro no #include 'protheus.ch'. Mas isso não impede a compilação do fonte.
Acredito que o protheus.ch faça alguma referência a ele. O problema é que este include não existe nem no pacote disponibilizado no portal (print abaixo).
Poderiam avaliar se é alguma configuração do meu ambiente que está incorreta? Acredito que não pois antes o Outline funcionava devidamente.
Isso atrapalha a experiência pois todos os fontes aparecem como se tivessem falhas e perdemos uma funcionalidade importante ao ter de separar os que de fato possuem falhas. Sem contar o Outline propriamente dito, que facilita muito na navegação de fontes maiores.
Screenshots
O pacote baixado hoje (04/11/24):
Desktop:
Appserver: AppServer - Build: 7.00.210324P-20240509 AppServer - Versão: 20.3.2.8 Versão da Lib: 2.5.3 - 20240517 OS: Windows Server 2016 Standard
Att,