Delphi-PRAXiS

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.

ConstantGardener 5. Jun 2020 17:18

AW: ErrorInsight tut nicht (immer) in 10.4
 
....naja ist/wäre schon etwas merkwürdig, dass WIR unsere syntaktisch richtigen, weil kompilierbaren Quelltexte ändern müssen um ErrorInsight nutzen zu können. :shock:

Im Moment bin ich noch ziemlich enttäuscht was die neuen Funktionen in 10.4. angeht. ErrorInsight ist grottenlahm und wirklich schlecht in der Erkennungsrate. Im Moment schlechter als das Klassische! Da muss EMBA nochmal ran! Wissen sie aber wahrscheinlich selbst, weil sonst wäre das Klassische Cod-/ErrorInsight wohl nicht mehr drin.8-)

My2Cent

Alfonso 5. Jun 2020 17:25

AW: ErrorInsight tut nicht (immer) in 10.4
 
So, nach 1h Arbeit habe ich es hinbekommen. Ich habe ein neues Projekt erzeugt und alle notwendigen Formulare und Units (>100) eingefügt und nach dem angleichen der Optionen läßt sich das Projekt compilieren und errorInsight tut wieder :-)

jaenicke 8. Jun 2020 12:58

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

Zitat von ConstantGardener (Beitrag 1466558)
Da muss EMBA nochmal ran! Wissen sie aber wahrscheinlich selbst, weil sonst wäre das Klassische Cod-/ErrorInsight wohl nicht mehr drin.8-)

Solange es entsprechende Bugmeldungen gibt, wird das ziemlich sicher auch passieren.
Wenn niemand einen solchen Bug meldet, wird es auch ggf. so bleiben.

ConstantGardener 8. Jun 2020 16:52

AW: ErrorInsight tut nicht (immer) in 10.4
 
@jaenicke: Da hast Du natürlich Recht. Das Problem ist hier bloß das Nachstellen einiger Sachen.
Ich meine wenn Alfonso alle seine Forms usw. in ein neues Projekt zieht und ErrorInsight wieder funktioniert ist das schwer nachzustellen.

Wenn es an falschen Zeilenenden in den Forms liegt sollte Emba das beim öffnen eines Projektes halt testen/reparieren? oder zumindest ein Tool anbieten das das automatisiert.
Ich kriege sowieso schon immer nen Hals wenn mir die IDE wieder mal alle abgeleiteten Frames "zerschießt" und ich das händisch ändern muss.
Wenn ich jetzt noch alle paar Tage alles in ein neues Projekt ziehen soll damit ErrorInsight geht, na dann gute Nacht.

Ich hatte da echt hohe Erwartungen an Error-/CodeInsight, bisher wurden Sie aber in keiner Weise erfüllt. Sorry!

jaenicke 8. Jun 2020 19:50

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

Zitat von ConstantGardener (Beitrag 1466778)
Ich meine wenn Alfonso alle seine Forms usw. in ein neues Projekt zieht und ErrorInsight wieder funktioniert ist das schwer nachzustellen.

Im Gegenteil...
Da braucht man nur die beiden Versionen der .dproj Datei oder auch der .dpr im Repository zu vergleichen und Schritt für Schritt die Änderungen zurücknehmen. Dann kann man vermutlich herausfinden wo das Problem liegt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.

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