Zum Inhalt

Experimentelles LSP (Language Server Protocol)

Der DATAMIMIC-Editor kann eine experimentelle LSP-Integration (Language Server Protocol) nutzen, um die Bearbeitung von DATAMIMIC-Modellen zu verbessern. Wenn LSP aktiviert ist, liefert es reichhaltigere Autocomplete-, Hover/Vorschau- und Diagnose-Funktionen.

Experimentelles Feature

Performance und Funktionsumfang können noch unvollständig sein, solange LSP für dein Projekt experimentell ist. Aktiviere es nur bewusst.

Aktivieren / Deaktivieren

LSP wird pro Projekt gesteuert.

Wie du den Schalter findest, steht hier: Einstellungen: Experimenteller LSP-Schalter.

Nach dem Aktivieren startet der Editor eine LSP-Sitzung für das Projekt und behält sie beim Wechsel zwischen Dateien innerhalb der Editoransicht bei.

Welche Dateien LSP beeinflusst

LSP wird nur für XML-artige, nicht-globale Editor-Dateien verwendet:

  • Dateitypen: .xml und .template.xml
  • Nicht verwendet für: globale schreibgeschützte Overlay-Dateien

Wenn du LSP aktivierst und eine nicht unterstützte Datei öffnest, siehst du für diese Datei keine LSP-gestützte Unterstützung.

Globaler-Projekt-Kontext

Verknüpfte globale Projekte können trotzdem Kontext für LSP-gestützte Unterstützung liefern, zum Beispiel gemeinsame Script-Bibliotheken oder wiederverwendbare Projektressourcen. Die schreibgeschützten globalen Overlay-Dateien selbst werden nicht per LSP bearbeitet, ihr Inhalt kann aber Vorschläge in deinen lokalen Projektdateien verbessern.

Nutzung im Einfachen Modus

Wenn LSP für das Projekt aktiviert ist, stellt der Einfache Modus LSP-gestützte Hilfe innerhalb der geführten Bearbeitungsdialoge bereit, besonders in Eigenschafts-Dialogen.

LSP-Status

Der Einfache Modus zeigt einen LSP-Statuspunkt mit Tooltip an. Er enthält:

  • Verbindungsstatus (idle, connecting, ready, error)
  • Anzahl der Diagnosen

Wenn Diagnosen vorhanden sind, können Knoten im Editorbaum einen Hinweis LSP Diagnostics anzeigen. Der Tooltip zeigt die wichtigsten Diagnosemeldungen für diesen Knoten.

Simple Mode LSP Status
LSP-Status und Diagnosen im Einfachen Modus

Autocomplete und Diagnosen

In Dialogen des Einfachen Modus, zum Beispiel beim Auswählen eines Eigenschafts- oder Kind-Namens, kann LSP Vorschläge liefern.

Diagnosen aus publishDiagnostics werden auf den Editorbaum abgebildet, damit problematische Stellen schneller gefunden werden können.

Im aktuellen experimentellen Umfang sind LSP-Vorschläge besonders nützlich für:

  • script=- und condition=-Ausdrücke
  • sichtbare Variablen aus dem aktuellen XML-Scope
  • Projektskripte und ihre Symbole
  • CSV-Header und .ent.csv-Spalten
  • verknüpfte globale Projektressourcen, die zusätzlichen Editor-Kontext liefern

Hover / Vorschau

Wenn du Eigenschaftsdetails bearbeitest, kann LSP eine kontextbezogene Vorschau liefern, zum Beispiel wertbezogene Hinweise.

Verhalten bei schreibgeschützten Dateien

Wenn eine Datei schreibgeschützt ist, sendet der Einfache Modus während der Bearbeitung keine Änderungen an LSP zurück. Status und Diagnosen können aber weiterhin auf Basis des synchronisierten Editor-Snapshots angezeigt werden.

Nutzung im Erweiterten Modus (XML-Codeansicht)

Der Erweiterte Modus integriert LSP in den Monaco-basierten XML-Editor für Autocomplete, Hover und Diagnosen.

LSP-Status

Der Erweiterte Modus zeigt einen LSP-Statuspunkt im Editorbereich. Der Tooltip enthält:

  • Verbindungsstatus (idle, connecting, ready, error)
  • Health-Status (ok oder nicht-OK)
  • Zeitpunkt des letzten Health-Checks
Advanced Mode LSP Status
LSP-Status und Health im Erweiterten Modus

Autocomplete und Hover

Für XML-artige Dateien (.xml, .template.xml) nutzt der Erweiterte Modus LSP für:

  • kontextbezogene Autocomplete-Vorschläge
  • Hover-/Vorschau-Informationen für Elemente und Attribute
  • ausdrucksbezogene Unterstützung in script=- und condition=-Attributen
  • Vorschläge für Template-Keys, CSV-Header und .ent.csv-Spalten, wo unterstützt

Wenn LSP nicht verfügbar ist, zum Beispiel weil die Verbindung noch nicht steht, fällt der Erweiterte Modus auf lokale Editor-Unterstützung zurück, etwa schema- oder code-hint-basierte Hilfen.

Closing Tags und Ausdrucks-Workflows

Der Erweiterte Modus verbessert außerdem den Bearbeitungsfluss rund um XML-Struktur und Ausdrücke:

  • Closing-Tag-Completion beschleunigt das Abschließen von XML-Elementen
  • LSP-Vorschläge können tiefere Ausdrucksketten verfolgen, statt nur einfache Scopes zu unterstützen
  • verknüpfte globale Projektressourcen können Vorschläge anreichern, ohne dass diese Dateien lokal kopiert werden müssen

Diagnosen im Editor

Wenn LSP aktiv ist, werden Editor-Diagnosen als Monaco-Marker für das aktuelle XML-Dokument angezeigt.

Diagnosen bleiben außerdem beim Wechsel zwischen Einfachem und Erweitertem Modus zuverlässiger erhalten. Dadurch sind bei Multi-User-Bearbeitung oder Reviews weniger manuelle Refreshes nötig.