Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   ErrorInsight tut nicht (immer) in 10.4 (https://www.delphipraxis.net/204539-errorinsight-tut-nicht-immer-10-4-a.html)

Alfonso 4. Jun 2020 17:07

ErrorInsight tut nicht (immer) in 10.4
 
Ich habe ein ziemlich altes Projekt (noch aus Urzeiten von Delphi), das immer in neuen Versionen von Delphi mitgezogen wurde.
Jetzt habe ich 10.4 Sydney und bei diesem Projekt funktionier das Errorinsight (Schlangenlinien) nicht.
Erstelle ich ein neues Proojekt und ziehe einzelne Units aus dem anderem Projekt rein, funktioniert es einwandfrei.

Im Logfile vom LSP tauchen die Fehler auch auf, nur werden sie in der IDE nicht angezeigt (letzte Zeile Log, unbekannte Direktive).

Code:
06:26:05.275 [08700] INFO : Queue.StartProcessNext - Returned False, Message: null
06:26:05.836 [18368] INFO : TJsonRPCPipeClient.DataReceived [Args -LogModes 255 -Name Agent1] [Len 354]: Content-Length: 331

{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///E%3A/projekte/Calcula%2013/Toolsuite.Bbeneficials.pas","diagnostics":[{"range":{"start":{"line":8,"character":8},"end":{"line":8,"character":13}},"severity":1,"code":"E2070","source":"DelphiLSP","message":"E2070 Unbekannte Direktive: 'sdsdf'"}]}}
06:26:05.836 [18368] INFO : Writer.WriteMessage <<{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///E%3A/projekte/Toolsuite.Bbeneficials.pas","diagnostics":[{"range":{"start":{"line":8,"character":8},"end":{"line":8,"character":13}},"severity":1,"code":"E2070","source":"DelphiLSP","message":"[B]E2070 Unbekannte Direktive: 'sdsdf'[/B]"}]}}>>
Was ich inzwischen festgestellt habe, dass ErrorInsight funktioniert, wenn ich den Fehler vor dem USES bereich erzeuge. Wenn ich es nach dem Uses erzeuge, dann zeigt die IDE nichts an. Schmeisse ich die Units raus, die ich selber geschrieben habe, funktioniert die IDE korrekt :-(

Das Projekt läßt sich aber immer problemlos kompilieren.

Irgendeine Idee? Detektive ans Werk.

Danke im Voraus.

TurboMagic 4. Jun 2020 20:47

AW: ErrorInsight tut nicht (immer) in 10.4
 
Wäre es möglich ein einfaches Demoprogramm, dass den Fehler zeigt zu erstellen?
Falls ja, könntest du einen QP Report aufmachen und die Damo dranhängen.

mensch72 4. Jun 2020 21:00

AW: ErrorInsight tut nicht (immer) in 10.4
 
hast du in deinen (alten) "USES" selbst irgendwie noch "Kreuzabhängigkeiten" drin?
(also "USES" sowohl im "Interface" als auch in "Implementation"...)

Solange nur sauber "Interface USES" verwendet werden, funktioniert ErrorInsight ganz gut.

jaenicke 5. Jun 2020 06:13

AW: ErrorInsight tut nicht (immer) in 10.4
 
Im Zweifelsfall kannst du dafür ein Support Ticket aufmachen. Da kann das dann besser analysiert werden als mit einem einfachen Eintrag im Quality-Portal. Denn dort kannst du ja vermutlich nicht auch Quelltext veröffentlichen usw.

Zitat:

Zitat von mensch72 (Beitrag 1466457)
Solange nur sauber "Interface USES" verwendet werden, funktioniert ErrorInsight ganz gut.

Andere sind da anderer Meinung was die saubere Positionierung in den beiden uses-Positionen angeht. Manche schreiben auch alles nur lokal verwendete in implementation und nur die Units, die in der Schnittstelle nach außen unter type verwendet werden, unter interface.

Das neue error insight usw. sollte nun mit Kreuzbeziehungen usw. umgehen können und die entsprechenden Meldungen stehen ja auch im Log.

Nebenbei:
Schade, dass Embarcadero hier offenbar neue Klassen wie TJsonRPCPipeClient erfunden hat, diese aber nicht in der RTL veröffentlicht hat.

Rollo62 5. Jun 2020 07:14

AW: ErrorInsight tut nicht (immer) in 10.4
 
Ich hatte irgendwo aufgeschnappt (weiss nicht mehr wo), dass DelphiLSP nur dann richtig funktioniert wenn man die IDE ins normale Programm-Verzeichnis installiert.

Das habe ich nicht, bei mir liegt die IDE auf Laufwerk D:\Prg\,
aber DelphiLSP scheint trotzdem korrekt zu funktionieren.

Wenn ich dann in machen Testprogrammen mal rote Kringel sehe (wenn der Code trotzdem kompiliert),
liegt es dann definitiv immer an Kreuzreferenzen, oder kann man sonst noch was falsch machen ?

P.S.
Danke auch an Uwe Raabe für den "Geheim"-Tipp mit dem DelphiLSP.log.
https://www.delphipraxis.net/1466297-post171.html

Alfonso 5. Jun 2020 10:26

AW: ErrorInsight tut nicht (immer) in 10.4
 
Zitat:

Zitat von mensch72 (Beitrag 1466457)
hast du in deinen (alten) "USES" selbst irgendwie noch "Kreuzabhängigkeiten" drin?
(also "USES" sowohl im "Interface" als auch in "Implementation"...)

Solange nur sauber "Interface USES" verwendet werden, funktioniert ErrorInsight ganz gut.

Ich habe sicher Kreuzabhängigkeiten, die jedoch erlaubt sind. Wie gesagt, dass verrückte ist ja, wenn ich ein Formular in ein anderes, neues Projekt hinzufüge, funktioniert es.

Sisko 5. Jun 2020 13:33

AW: ErrorInsight tut nicht (immer) in 10.4
 
Zitat:

Zitat von Alfonso (Beitrag 1466504)
Zitat:

Zitat von mensch72 (Beitrag 1466457)
hast du in deinen (alten) "USES" selbst irgendwie noch "Kreuzabhängigkeiten" drin?
(also "USES" sowohl im "Interface" als auch in "Implementation"...)

Solange nur sauber "Interface USES" verwendet werden, funktioniert ErrorInsight ganz gut.

Ich habe sicher Kreuzabhängigkeiten, die jedoch erlaubt sind. Wie gesagt, dass verrückte ist ja, wenn ich ein Formular in ein anderes, neues Projekt hinzufüge, funktioniert es.

Hast du auch schon einmal die dpr-Datei deines alten und neuen Projekts verglichen? Bei Forms wird am Ende der Zeile ein "magischer" Kommentar angehängt. Ich habe aber noch nie herausgefunden wozu der genau dienen soll.
Eventuell ist auch die DPROJ-Datei ursächlich, denn beim Projektupgrade kann etwas anderes entstehen als bei einem neuen Projekt.

Das sind nur Hypothesen, aber falls eine zutrifft würde das auch ähnlich merkwürdige Effekte bei meinen Projekten erklären. :wink:

idontknow 5. Jun 2020 15:46

AW: ErrorInsight tut nicht (immer) in 10.4
 
Ich hatte vor wenigen Tagen exakt ein solches Verhalten, wohl nachdem ich eine Methode von irgendeiner Webseite in den Quellcode kopiert hatte.
Am Ende des kopierten Quellcodes hatte sich ein Nullbyte in den Text kopiert. Öffne mal deine .pas-Datei in einem Hex-Editor und such da mal nach $00...
Ähnliche Probleme hatte ich zuvor schon mit Zeilenumbrüchen, die nicht aus CR LF (#13#10) bestanden, sondern z.B. nur aus #13 oder nur aus #10.

TurboMagic 5. Jun 2020 17:06

AW: ErrorInsight tut nicht (immer) in 10.4
 
Zitat:

Zitat von Rollo62 (Beitrag 1466475)
Ich hatte irgendwo aufgeschnappt (weiss nicht mehr wo), dass DelphiLSP nur dann richtig funktioniert wenn man die IDE ins normale Programm-Verzeichnis installiert.

Das habe ich nicht, bei mir liegt die IDE auf Laufwerk D:\Prg\,
aber DelphiLSP scheint trotzdem korrekt zu funktionieren.

Wenn ich dann in machen Testprogrammen mal rote Kringel sehe (wenn der Code trotzdem kompiliert),
liegt es dann definitiv immer an Kreuzreferenzen, oder kann man sonst noch was falsch machen ?

P.S.
Danke auch an Uwe Raabe für den "Geheim"-Tipp mit dem DelphiLSP.log.
https://www.delphipraxis.net/1466297-post171.html

Wenn ich das richtig mitbekommen habe liegt das an Leerzeichen im Pfad, funktioniert ironischwerweise bei C:\Program Files (x86) trotzdem ;-)

TurboMagic 5. Jun 2020 17:08

AW: ErrorInsight tut nicht (immer) in 10.4
 
Zitat:

Zitat von Sisko (Beitrag 1466520)
Zitat:

Zitat von Alfonso (Beitrag 1466504)
Zitat:

Zitat von mensch72 (Beitrag 1466457)
hast du in deinen (alten) "USES" selbst irgendwie noch "Kreuzabhängigkeiten" drin?
(also "USES" sowohl im "Interface" als auch in "Implementation"...)

Solange nur sauber "Interface USES" verwendet werden, funktioniert ErrorInsight ganz gut.

Ich habe sicher Kreuzabhängigkeiten, die jedoch erlaubt sind. Wie gesagt, dass verrückte ist ja, wenn ich ein Formular in ein anderes, neues Projekt hinzufüge, funktioniert es.

Hast du auch schon einmal die dpr-Datei deines alten und neuen Projekts verglichen? Bei Forms wird am Ende der Zeile ein "magischer" Kommentar angehängt. Ich habe aber noch nie herausgefunden wozu der genau dienen soll.

Der bewirkt glaube ich, dass die Form in der Forms Liste der Projektoptionen auftaucht, d.h. dass die IDE diese Unit als Form erkennt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz