totvs / tds-vscode

Totvs Developer Studio for vscode
Apache License 2.0
171 stars 100 forks source link

"Compile Error" no Outline #1287

Open wrne opened 3 weeks ago

wrne commented 3 weeks ago

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 image

O pacote baixado hoje (04/11/24): image

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,

lwtnb-wrk commented 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.

wrne commented 3 weeks ago

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,

lwtnb-wrk commented 3 weeks ago

@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.

wrne commented 2 weeks ago

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,

lwtnb-wrk commented 2 weeks ago

@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.

wrne commented 1 week ago

Opa,

Segue print com erro antes de compilar: image

Print da Saida com a compilação: image

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: image

Sobre o arquivo, ele não existe no pacote padrão. Existe um com nome parecido (stdwin.ch):

image

Os arquivos de log: totvsls_in.log totvsls_out.log totvsls.log

À disposição.

lwtnb-wrk commented 1 week ago

@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.

wrne commented 1 week ago

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: image image

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): image

Logo retomo com a versão que começou a ocorrer o problema.

Att,

lwtnb-wrk commented 1 week ago

@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 commented 1 week ago

@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... =/

wrne commented 1 week ago

@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 image

2.0.3 - Já não aparece a estrutura, mas não tem msg de erro: image

Será que ajuda?

Att,

lwtnb-wrk commented 1 week ago

@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.

wrne commented 1 week ago

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

lwtnb-wrk commented 1 week ago

@wrne Usei os includes acima fornecidos e o Outline foi montando sem problemas, inclusive alertando sobre os problema detectados pelo Linter.

image

wrne commented 1 week ago

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,

lwtnb-wrk commented 1 week ago

@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?

wrne commented 1 week ago

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).

lwtnb-wrk commented 1 week ago

@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?

wrne commented 1 week ago

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,