Code Insight (Referenz)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Der Quelltext-Editor - Index (IDE-Tutorial)


Als Code Insight wird eine bestimmte Untergruppe von Funktionen bezeichnet, die in den Quelltext-Editor eingebettet sind und dazu dienen, die Eingabe von Quelltext zu erleichtern (Programmierhilfe, Parametervervollständigung, Quelltext-Hinweise, Kurzhinweise, Tooltip Insight, Zu Definition wechseln, Blockvervollständigung, Klassenvervollständigung und Fehlermarkierung). Diese Funktionen unterstützen Sie beim Identifizieren häufig verwendeter Anweisungen, die Sie in den Quelltext einfügen möchten, und bei der Auswahl von Eigenschaften und Methoden. Auf einige dieser Funktionen wird in den folgenden Unterabschnitten detaillierter eingegangen.

Wählen Sie Tools > Optionen > Benutzeroberfläche > Editor > Sprache und klicken Sie auf die Option Code Insight-Optionen, um Code Insight-Funktionen zu aktivieren und zu konfigurieren.

Hinweis:

Code Insight-Funktionen sind jetzt pro Sprache definiert.

Delphi verwendet das Language Server Protocol (LSP, Sprachserverprotokoll) für Code Insight.

Für C++ verwendet die IDE automatisch das Language Server Protocol (LSP) oder die Classic Code Insight-Provider abhängig vom verwendeten Compiler (Clang oder Classic).

Code Insight mit Delphi Language Server Protocol (LSP)

Das Language Server Protocol (LSP) ist eine Spezifikation, die Sprachdienste über einen eigenen Serverprozess bereitstellt, der mit der IDE kommuniziert. Daher werden Code Insight-Funktionen durch separate Prozesse sowie asynchron bereitgestellt.

In einem schmalen Bereich am unteren Rand der Projektansicht wird die LSP-Serveraktivität angezeigt. Dies unterstützt die Kommunikation bei der Analyse.

Hinweis: Code Insight mit dem Language Server Protocol (LSP) kann beim Debuggen sowie bei der normalen Codebearbeitung verwendet werden.

Sprachen

Sprachen sind im Einstellungsfenster Tools > Optionen > Sprache definiert. Hier wird eine Liste aller verfügbaren Sprachen angezeigt. Sie können zudem eine neue Sprache erstellen.

Language.png

Editor-Optionen und Syntaxhervorhebung

Die Editor-Optionen und die Syntaxhervorhebung sind pro Sprache definiert. Sie befinden sich in Tools > Optionen > Benutzeroberfläche > Editor > Sprache. Klicken Sie hier auf Optionen.

Editor.png

In diesem Einstellungsfenster können Sie eine Sprache auswählen. Für diese Sprache werden dann Editor-Optionen sowie die zu verwendende Syntaxhervorhebung angezeigt.

Syntax Highlighter1.png

Ändern von Code Insight/LSP-Manager

Delphi-LSP ist standardmäßig aktiviert. So überprüfen Sie, ob die IDE Delphi-LSP verwendet:

  • Beim Öffnen eines Delphi-Projekts oder beim Vornehmen signifikanter Änderungen sollte eine kleine Fortschrittsleiste am unteren Rand der Ansicht Projekte mit der Delphi-LSP-Aktivität angezeigt werden.
  • Alternativ öffnen Sie den Task-Manager und suchen nach einem DelphiLSP.exe-Prozess. In der Regel werden mehrere Prozesse angezeigt.

Die letzte Registerkarte für eine Sprache ist Code Insight. Hier finden Sie Editorschrift verwenden und eine Reihe von Code Insight-Einstellungen.

Der Code Insight-Manager stellt die Code Insight-Funktionen für eine Sprache bereit. Sie können hier jeden aufgeführten Manager auswählen, sogar einen Manager, der nicht für die Sprache vorgesehen ist.

Achtung: Es wird nicht empfohlen, den Code Insight-Manager in einen nicht für die aktuelle Sprache vorgesehenen zu ändern.

Um Delphi zwischen der LSP- und der Classic Code Insight-Implementierung umzuschalten, wählen Sie:

  • Delphi (Sprachserverprotokoll): die neue LSP-Unterstützung.
  • Delphi (Classic Code Insight): die alte Implementierung von Code Insight, die in 10.3.3 und früheren Versionen verwendet wurde. Wenn Sie diese Option auswählen, deaktivieren Sie das LSP.

Code Insight DelphiLSP.png

Sie können auch einen neuen LSP-Manager erstellen. Klicken Sie auf Neu. Daraufhin wird ein Dialogfenster angezeigt, in dem Sie die ausführbare LSP-Serverdatei und andere Optionen festlegen können, wie einen Anzeigenamen, den Sprachbezeichner, ein Zeitlimit, nach dem der Neustart des Servers erzwungen wird, sowie serverspezifische Initialisierungsoptionen, die in den Aufruf zum Initialisieren von JSON RPC eingefügt werden sollen.

Sie können mit dieser Option einen Server für Python oder jede andere Sprache hinzufügen.

Hinweis: RAD Studio unterstützt nur Server, die über die Standard-E/A (Konsolen-E/A) kommunizieren.

New LSP Manager.png

Erstellen von .delphilsp.json-Dateien

Die projektspezifische Konfiguration für die Verwendung von LSP wird automatisch in einer .delphilsp.json-Datei mit demselben Namen wie das Projekt gespeichert. Diese Konfigurationsdatei wird gelesen, wenn Sie LSP mit einem externen Editor wie Visual Studio Code verwenden. So aktivieren Sie die Generierung dieser Datei:

  • Erstellen Sie ein Delphi-Projekt.
  • Wählen Sie Tools > Optionen > Benutzeroberfläche > Editor > Sprache > Code Insight aus, und klicken Sie auf LSP-Konfiguration generieren.
  • Speichern und schließen Sie das Projekt in der IDE.
  • Wenn Sie das Projekt erneut öffnen, wird ein neues Projekt mit demselben Namen und einer anderen Erweiterung (.delphilsp.json) angezeigt.

Programmierhilfe – Strg+Leer

Die Programmierhilfe zeigt eine Dropdown-Liste aller Elemente und Methoden an, die den eingegebenen String an einer beliebigen Position in einem Bezeichner enthalten. Es werden Set-Typen angezeigt. Bei der Deklaration einer Eigenschaft schlägt die Programmierhilfe auch Getter und Setter vor.

Sie können komplette Header-Dateien codieren, die nicht direkt Teil des Projekts und des Hauptquelltextes des Projekts sind.

Zum Aufrufen der Programmierhilfe drücken Sie im Quelltext-Editor die Tastenkombination Strg+Leer. Wählen Sie die Zeichen aus und drücken Sie die Eingabetaste, um den Text in den Code an der Cursorposition einzufügen.

Die Programmierhilfe wird auch automatisch an einigen Codepositionen aufgerufen, wie etwa wenn Sie einen Punkt "." in Delphi oder einen Punkt ".", Pfeil "->", Bereich "::" oder die Header-Anweisung "#include <" in C++ eingeben.

Sie können die Programmierhilfe folgendermaßen aufrufen:

  • C++
  • Drücken Sie Strg+Leer (ruft die Programmierhilfe immer auf).
  • Geben Sie einen Punkt . oder -> ein (funktioniert nur, wenn "Automatisch aufrufen" auf der Seite Code Insight-Optionen aktiviert ist).
  • Um die Programmierhilfe zu beenden, drücken Sie die Taste Esc.

Code Completion C.png

Hinweis: Für den durch Clang erweiterten Compiler verwendet diese Funktion einen LSP-Server (Language Server Protocol, Sprachserverprotokoll). Dieser arbeitet asynchron und nicht blockierend.
  • Delphi
  • Drücken Sie Strg+Leer (ruft die Programmierhilfe immer auf).
  • Geben Sie einen Punkt . ein (funktioniert nur, wenn "Automatisch aufrufen" auf der Seite Code Insight-Optionen aktiviert ist).
  • Um die Programmierhilfe zu beenden, drücken Sie die Taste Esc.

Code Completion D.png

Wenn Sie ein Zeichen eingeben, berücksichtigt das Auswahl-/Übereinstimmungsverhalten bei der Eingabe die folgenden Situationen:

  • Bei einer exakten Übereinstimmung der Eingabe mit einem Bezeichner wird dieser ausgewählt.
  • Ansonsten wird der erste Bezeichner, der mit der Eingabe beginnt ausgewählt.
  • Ansonsten wird der erste Bezeichner, der die Eingabe enthält ausgewählt.

Wenn Sie beispielweise im Editor MyControl eingeben, die Programmierhilfe aufrufen und dann rect eingeben, werden nicht nur die Eigenschaften und Methoden, die mit "Rect" beginnen, angezeigt, sondern auch ClientRect, BoundsRect usw. Alle Bezeichner-Strings werden angezeigt, die rect enthalten.

Die Programmierhilfe funktioniert in folgenden Situationen korrekt, einschließlich korrekter Ergebnisse:

  • Eine neue Datei, die noch nicht auf der Festplatte vorhanden ist.
  • Ein neues Projekt, für das weder das Projekt selbst noch Units auf der Festplatte vorhanden sind.
  • Eine geänderte, noch nicht gespeicherte Unit, für die der aktuelle Code in der IDE Änderungen aufweist, die sich auf Ergebnisse der Programmierhilfe auswirken.
  • Die Ergebnisse sind korrekt (und werden korrekt geändert), wenn Zielplattformen oder andere Projektoptionen geändert werden.
  • Wenn in einer Unit eine .inc-Datei einbezogen ist.

Die Programmierhilfe bei der Vervollständigung von uses-Klauseln:

  • Zeigt die PAS-Dateien und DCUs in den Projekt- und Suchpfaden an.
  • Führt Units aus dem Suchpfad und deren Kurzversionen ohne die konfigurierten Namespaces auf.
  • Gibt an, ob die ausgewählte Unit bereits in der aktuellen Unit verwendet wird.
Hinweis:
  • Beim Abgleichen und Filtern wird die Groß- und Kleinschreibung nicht berücksichtigt.
  • Die Programmierhilfe funktioniert, wenn MSBuild extern für die Compilierung verwenden aktiviert ist.
  • In der Dropdown-Liste der Programmierhilfe:
    • Ist das kürzeste übereinstimmende Symbol ausgewählt.
    • Ist beim ersten Anzeigen das oberste Element ausgewählt.

Einstellungen der Programmierhilfe

Die Programmierhilfe bietet einige Filter, die Sie auf der Registerkarte Insight-Optionen konfigurieren können. Wählen Sie Tools > Optionen > Benutzeroberfläche > Editor > Sprache und klicken Sie auf Insight-Optionen.

Insight Options.png

Verwenden Sie diese Filter je nach Ihren Anforderungen:

  • Zuerst alle Symbole auflisten, die mit dem Filter beginnen: Symbole, die mit Ihrer Eingabe (dem "Filter") beginnen, werden vor Symbole sortiert, die Ihre Eingabe enthalten. Wenn dieses Kontrollkästchen nicht aktiviert ist, werden Symbole alphabetisch sortiert. Wenn es aktiviert ist, werden Symbole, die mit dem Filtertext beginnen, an den Anfang der Liste verschoben.
  • Kürzestes übereinstimmendes Symbol auswählen: In der Liste der Programmierhilfe ist immer automatisch ein Eintrag ausgewählt, oder stattdessen wird die Liste mit dem ausgewählten Symbol geöffnet, das Ihrem ausgewählten Code am nächsten kommt. Diese Einstellung ist standardmäßig aktiviert, aber wenn Sie sie deaktivieren, erhalten Sie ein Verhalten, das der klassischen Programmierhilfe näher kommt.
  • Filtertext ist unterstrichen: Wenn aktiviert, wird in der Dropdown-Liste der Programmierhilfe Text unterstrichen, der mit Ihrer Eingabe übereinstimmt.
  • Symbole mit Filtern anzeigen: Steuert, welche Symbole in die Liste aufgenommen werden. Standardmäßig (aktiviert) werden alle Symbole, die den eingegebenen Text enthalten, aufgeführt. Bei deaktivierter Einstellung werden in der Liste der Programmierhilfe nur Symbole angezeigt, die mit Ihrer Eingabe beginnen.

So erhalten Sie ein Verhalten, das der klassischen Programmierhilfe näher kommt:

  • Zuerst alle Symbole auflisten, die mit dem Filter beginnen: aktiviert
  • Kürzestes übereinstimmendes Symbol auswählen: deaktiviert
  • Filtertext ist unterstrichen: deaktiviert
  • Symbole mit Filtern anzeigen: deaktiviert

Parametervervollständigung – Strg+Umschalt+Leer

Die Parametervervollständigung wird im Quelltext-Editor automatisch nach der öffnenden Klammer eines Funktionsaufrufs oder dem Drücken von Strg+Umschalt+Leer aufgerufen. In einem Popup-Fenster wird ein Hinweis mit den Argumentnamen und -typen für Methodenaufrufe angezeigt. Sie können Zeichen eingeben, die mit denen in der Auswahl übereinstimmen und die Eingabetaste drücken, um den Text an der Cursorposition in den Code einzufügen. Wenn in den Parametern XMLDoc enthalten ist, wird es während der Parametervervollständigung angezeigt.

Die Kurzhinweise/Hilfe zu Parametern wird bei der Instanziierung generischer Typen angezeigt.

Beispiele:

  • C++

Parameter Completion C.png

Hinweis: Für den durch Clang erweiterten Compiler verwendet diese Funktion einen LSP-Server (Language Server Protocol, Sprachserverprotokoll). Dieser arbeitet asynchron und nicht blockierend.
  • Delphi

Parameter Completion D.png

Quelltext-Hinweise

Die Quelltext-Hinweise zeigen einen Hinweis mit Informationen zum aktuellen Symbol an (Typ, Datei, Zeilennummer der Deklaration). Die Quelltext-Hinweise werden angezeigt, wenn Sie den Mauszeiger im Quelltext-Editor über einen Bezeichner führen.

Hinweis:

Quelltext-Hinweise werden für Delphi nur angezeigt, wenn die Symbolbeschreibung deaktiviert ist.

Zur Deaktivierung der Symbolbeschreibung deaktivieren Sie im Dialogfeld Tools > Optionen > Editor > Sprache > Code Insight die Option Symbolbeschreibung.

Beispiel:

Code Hints D.png

Auswertung durch Kurzhinweis

Die Auswertung durch Kurzhinweis zeigt den aktuellen Wert einer Variable an, wenn Sie den Cursor darüber führen. Diese Funktion ist verfügbar, wenn die Programmausführung während einer Debug-Sitzung angehalten wurde.

Beispiele:

  • C++

Tooltip Expresion Evaluation C.png

  • Delphi

Tooltip Expresion Evaluation D.png

Tooltip Insight

Tooltip Insight zeigt Informationen in einem Popup-Fenster an, wenn die Maus über ein Symbol geführt wird.

Symbolinfo durch Kurzhinweis

Symbolinfo durch Kurzhinweis zeigt Deklarationsinformationen für beliebige Bezeichner in einem Hinweisfenster an, wenn der Cursor im Quelltext-Editor über ein Symbol geführt wird.

Beispiele:

  • C++

Tooltip Symbol Insight C.png

  • Delphi

Tooltip Symbol Insight D.png

Symbolbeschreibung – Strg+Umschalt+H

Die Symbolbeschreibung zeigt einen Hinweis mit Informationen zum aktuellen Symbol an (wie Typ, Datei, Zeilennummer mit der Deklaration sowie die mit dem Symbol verknüpfte XML-Dokumentation, sofern vorhanden). Sie funktioniert auch für generische Klassen, zeigt die Exception-Infos und die Zeilennummer für Arrays und Mengen an.

Die Symbolbeschreibung wird eingeblendet, wenn Sie den Mauszeiger im Quelltext-Editor über einen Bezeichner führen. Sie können die Symbolbeschreibung auch durch Drücken von Strg+Umschalt+H aktivieren.

Beispiele:

  • C++

Tooltip Help Insight C.png

Hinweis: Nur bei Verwendung des klassischen Compilers verfügbar
  • Delphi

Tooltip Help InsightD.png

Hinweis: Im Kurzhinweis wird die vollständige Definitionsposition von Units angezeigt, die noch nicht mit einem Projekt verknüpft sind.

Deklaration suchen – Strg+Klicken

"Deklaration suchen" navigiert an die Position, an der ein Typ oder eine Variable definiert ist.

Im Quelltext-Editor können Sie mit Strg+Klicken automatisch zum den Code "springen", der einen Bezeichner oder die geerbte Methode definiert.

Um den Code zu durchsuchen, halten Sie die Taste Strg gedrückt und führen den Mauszeiger über den Namen einer Klasse, Variable, Eigenschaft, Methode oder eines anderen Bezeichners.

Der Mauszeiger wird als Hand und der Bezeichner hervorgehoben und unterstrichen dargestellt. Klicken Sie auf den hervorgehobenen Bezeichner und der Quelltext-Editor wechselt zur Deklaration des Bezeichners und öffnet dabei, falls erforderlich, die Quelltextdatei. Derselbe Vorgang wird auch ausgeführt, wenn Sie mit der rechten Maustaste auf einen Bezeichner klicken und dann Deklaration suchen wählen. Mit Alt+Linke Pfeiltaste kehren Sie wieder zur Ausgangsposition zurück.

Mit Strg+Umschalt+Auf-/Ab-Pfeiltaste können Sie zwischen der Deklaration und der Implementierung einer Methode navigieren.

Wenn Sie Strg+Umschalt+Ab in einem inaktiven Makro/ifdef drücken, wird zur Implementierung der nächsten deklarierten Methode gesprungen.

Die Funktion "Deklaration suchen", Strg+Klicken, arbeitet mit:

  • Symbolen, wie Variablen, Methoden, Eigenschaften oder anderen Bezeichnern
  • Typen, wie Klasse, Enum, Record oder andere Typen
  • uses-Einträgen
  • Makros (defines), sodass das Wechseln zwischen der Implementierung und der Deklaration einer Methode bei IFDEFs besser funktioniert. Die Makros (defines) können gefunden werden, wenn sie in einer einbezogenen Datei deklariert sind, was sich auf das oben Genannte auswirkt.

"Deklaration suchen" kann nur Unit-Dateien im Projekt finden und öffnen, die im Suchpfad oder Quelltextpfad enthalten sind oder sich im Suchpfad oder Bibliothekspfad befinden. Verzeichnisse werden in der folgenden Reihenfolge durchsucht:

  1. Projekt-Suchpfad (Delphi) oder Include-Pfad (C++)
  2. Projekt-Quelltextpfad, definiert als Verzeichnis, in dem das Projekt gespeichert wurde
  3. Globaler Suchpfad
  4. Globaler Bibliothekspfad
  5. Bibliothekspfad, der nur durchsucht wird, wenn in der IDE kein Projekt geöffnet ist

Diese Pfadangaben können durch Bearbeitung der entsprechenden Werte geändert werden:

Beispiele:

  • C++

Find Declaration C.png

  • Delphi

Find Declaration D.png

Blockvervollständigung – Eingabetaste

Die Blockvervollständigung erfolgt, wenn in folgenden Situationen Code fehlt:

  • In C++: Der Block, der bei der Vervollständigung berücksichtigt wird, ist der Code in geschweiften Klammern {}.
  • In Delphi: Der Block, der bei der Vervollständigung berücksichtigt wird, ist der Code in einem begin-end-Block.

Wenn Sie im Quelltext-Editor die Eingabetaste drücken, und Code vorhanden ist, der nicht korrekt geschlossen wurde, wird in der nächsten leeren Zeile nach der aktuellen Cursorposition der Bezeichner für das Schließen eingefügt.

Wenn Sie vorhandene Anweisungen in Symbole einschließen, legen Sie im Dropdown-Menü das Verhalten der Vervollständigung folgendermaßen fest:

  • Ohne Zeilenumbruch: Positioniert den Cursor nach dem Code, den Sie gerade eingegeben haben.
  • Mit Zeilenumbruch: Positioniert den Cursor in dem Code, den Sie gerade eingegeben haben.
  • Nur neue Blöcke: Ruft die Vervollständigung nur auf, wenn Sie einen neuen Block beginnen.

Klassenvervollständigung – Strg+Umschalt+C

Die Klassenvervollständigung vereinfacht das Definieren und Implementieren neuer Klassen, indem für die zu deklarierenden Klassen-Member Skeleton-Quelltext generiert wird.

Setzen Sie den Cursor im -Abschnitt einer Unit in eine Klassendeklaration, und drücken Sie Strg+Umschalt+C. Alle unfertigen Eigenschaftsdeklarationen werden vervollständigt.

Für alle Methoden, für die eine Implementierung erforderlich ist, werden leere Methoden in den implementation-Abschnitt eingefügt.

Klassen können auch mit der Option Klasse beim Cursor vervollständigen aus dem Kontextmenü des Quelltext-Editors vervollständigt werden.

Fehlermarkierung

Die Fehlermarkierung unterstreicht Code, der möglicherweise bearbeitet werden muss. Dazu zählt ungültiger Code der Fehler (rot unterstrichen), Warnungen (orange unterstrichen) und/oder Hinweise (blau unterstrichen) verursacht. Sie können den Schweregrad der Probleme im Editor auswählen, wie z. B. nur Fehler anzeigen, aber keine Warnungen oder Hinweise.

Wenn Sie den Cursor über den ungültigen Text bewegen, wird ein Hinweisfenster angezeigt, in dem die mögliche Fehlerursache beschrieben wird.

Beispiele:

  • C++

Error Insight CP.png

  • Delphi

Error Insight Del.png

Außerdem wird die Liste der von dem Ausdruck erzeugten Fehler unter dem Knoten "Fehler" in der Strukturansicht angezeigt.

Error Insight Structure View.png

In der Editor-Statusleiste wird eine Zusammenfassung der Fehlermarkierung mit der Angabe der Anzahl an Fehlern, Warnungen und/oder Hinweisen in der aktuellen Datei angezeigt.

Error Insight Summary.png

Wählen Sie Tools > Optionen > Benutzeroberfläche > Editor > Sprache und klicken Sie auf Fehlermarkierung, um die Eigenschaften zu konfigurieren.

Error Insight.png

  • Fehlermarkierungsebenen anzeigen: Legt die Ebene für die Fehlermarkierung fest, die im Quelltext-Editor angezeigt werden soll. Die folgenden Optionen stehen zur Verfügung:
    • Ohne: Wählen Sie diese Option aus, um keine Fehlermarkierungsebene im Quelltext-Editor anzuzeigen.
    • Nur Fehler: Zeigt nur Fehler im Quelltext-Editor an. Fehler werden mit einem roten Kringel angezeigt.
    • Warnungen und mehr: Zeigt Warnungen im Quelltext-Editor an. Warnungen werden mit einem orangen Kringel angezeigt.
    • Hinweise und mehr: Zeigt Hinweise im Quelltext-Editor an. Hinweise werden mit einem blauen Kringel angezeigt.
    • Alles: Zeigt alle Fehlermarkierungsebenen im Quelltext-Editor an.
  • Rendering-Stil im Editor: Legt den Unterstreichungsstil fest. Folgende Optionen sind möglich: Klassisch, Sanfte Welle, Einfache Linie oder Punkte.
  • Fehlermarkierung in Editorleiste anzeigen: Aktivieren/Deaktivieren Sie diese Option, damit beim Scrollen der Datei im Quelltext-Editor Fehler-, Warnungs- und/oder Hinweissymbole an der entsprechenden Stelle angezeigt werden.

Falls bei der Fehlermarkierung Probleme auftreten:

  • Schließen Sie die IDE.
  • Öffnen Sie den Registrierungs-Editor.
  • Navigieren Sie zum Ordner HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Editor\Source Options\Borland.EditOptions.Pascal.
  • Löschen Sie den Schlüssel "ErrorInsightLevel".
  • Starten Sie die IDE neu.

Index für C++ Insights

Der Index für C++ Insights enthält einen Index für die Funktionen "Tooltip Insight" und "Deklaration suchen".

Der Language Server Protocol(LSP)-Server (cquery) durchläuft das Projekt und erzeugt eine Datenbank. Er verwendet CPU, daher kann er über das Kontrollkästchen "Index für C++ Insights" deaktiviert werden.

Hinweis:

Diese Einstellung betrifft nur C++- und durch Clang erweiterte Compiler.

Für den durch Clang erweiterten Compiler verwendet diese Funktion einen LSP-Server (Language Server Protocol, Sprachserverprotokoll). Dieser arbeitet asynchron und nicht blockierend.

Bei der Arbeit mit durch Clang erweiterte Compiler und aktivierter Funktion "Index für C++ Insights" wird das Projekt, das Sie öffnen, indiziert geöffnet. Dabei wird auch eine Datenbank erstellt, die für die Funktionen "Tooltip Insight" und "Deklaration suchen" verwendet wird. Zudem wird CPU verwendet und durch Deaktivieren des Kontrollkästchens Index für C++ Insights kann diese Funktion ausgeschaltet werden.

Tipp: Bitte beachten Sie, dass die Funktionen "Tooltip Insight" und "Deklaration suchen" nicht funktionieren, wenn diese Option deaktiviert ist. Die Programmierhilfe und die Parametervervollständigung funktionieren bei aktivierter und deaktivierter Indizierung.

LSP-Verhalten

Über die Registerkarte "LSP-Verhalten" wird gesteuert, wie der cquery-LSP-Server Dateien indiziert. Mit anderen Worten, wie Informationen für die Programmierhilfe, die Navigation usw. gespeichert werden.

Hinweis:
  • Die Indizierung kann sehr rechenintensiv sein, und Sie können Code Insight erst verwenden, wenn sie abgeschlossen ist.
  • Durch Neustarten des Servers beim Ändern von Plattformen wird der Index gelöscht.

Language LSP Behavior.png

Auf der Registerkarte "LSP-Verhalten" sind drei Alternativen vorhanden:

  • Server bei jeder Aktivierung eines Projekts neu starten: Indiziert alle Dateien in einem Projekt zusammen mit allen im Editor geöffneten Dateien. Dies ist die rechenintensivste Option, hat aber den Vorteil, dass das gesamte Projekt im Index verfügbar ist. Mit dieser Option wird der LSP-Server jedes Mal neu gestartet, wenn Sie ein neues aktives Projekt in der Ansicht "Projekte" auswählen oder Sie die Projektoptionen oder die Plattformoptionen ändern.
Hinweis: Für alle C++-Projekte ist diese Option standardmäßig aktiviert.
  • Nur im Editor geöffnete Dateien indizieren: Indiziert nur die von Ihnen geöffneten Dateien, unabhängig von dem Projekt. Dies ist weniger rechenintensiv, und Code Insight ist schneller verfügbar. Das bedeutet jedoch eine kurze Verzögerung, bevor Code Insight bei jedem Öffnen einer Datei verfügbar ist. Mit dieser Option wird der LSP-Server nur heruntergefahren oder neu gestartet, wenn Sie alle Projekte oder Projektgruppen schließen oder Sie die Projektoptionen oder die Plattformoptionen ändern.
  • Alle Dateien der Projektgruppe indizieren: Indiziert beim Laden der Projektgruppe alle Dateien in allen Projekten. Der LSP-Server wird nur heruntergefahren oder neu gestartet, wenn Sie alle Projekte oder Projektgruppen schließen oder Sie die Projektoptionen oder die Plattformoptionen ändern.

Erweiterte Optionen

Unterstützung der Tools-API

Die Code Insight-Unterstützung konzentriert sich hauptsächlich auf das Language Server Protocol, und es gibt eine allgemeine LSP-Unterstützung, bei der Sie einen neuen LSP-Server mithilfe des obigen Dialogfelds erstellen können. Die IDE implementiert allerdings zwei Elemente: allgemeines asynchrones Code Insight und dann die LSP-Unterstützung, die eine spezifische Implementierung des asynchronen Code Insight darstellt.

Die ToolsAPI definiert eine Reihe neuer Typen und Interfaces für das asynchrone Code Insight. Das LSP verwendet diese Interfaces, aber Sie können einen asynchronen Code Insight-Provider mit einer beliebigen Implementierung schreiben.

Die Interfaces befinden sich in ToolsAPI.pas:

  • IOTAAsyncCodeInsightManager ist das Haupt-Interface für eine allgemeine asynchrone Implementierung des Code Insight-Managers. Es verwendet eine Reihe von Callbacks, die darüber definiert sind.
  • IOTACodeInsightUIOverride wird verwendet, um bestimmtes UI-Verhalten zu überschreiben.

Senden von Fehlern und Protokolldateien

Unter Fehlerbehebung: Delphi-LSP finden Sie Informationen zum Protokollieren von Fehlern in Protokolldateien.

Weiter

Refactoring