Zum Hauptinhalt springen

Editor-Integration

InfraGuard bietet Editor-Integration über einen eingebauten Language Server Protocol (LSP)-Server und eine VS Code-Erweiterung und ermöglicht intelligente Bearbeitungsunterstützung für ROS-Vorlagen.

VS Code-Erweiterung

Installation

Installieren Sie die InfraGuard-Erweiterung aus dem VS Code Marketplace oder suchen Sie nach "InfraGuard" im VS Code-Erweiterungsbereich.

Funktionen

Auto-Vervollständigung

Kontextbezogene Vervollständigungen über die gesamte Vorlagenstruktur:

  • Ressourcentypen — Alle ALIYUN::*-Ressourcentyp-Identifikatoren
  • Eigenschaften — Ressourceneigenschaften mit Typinformationen, erforderliche Eigenschaften priorisiert
  • Intrinsische FunktionenFn::Join, Fn::Sub, Fn::Select und mehr
  • Ref/GetAtt-Ziele — Verweise auf Parameter, Ressourcen und deren Attribute
  • Parameterdefinitionen — Type, Default, AllowedValues und andere Parametereigenschaften
  • Abschnitte auf oberster Ebene — ROSTemplateFormatVersion, Parameters, Resources, Outputs usw.

Wenn Sie einen Ressourcentyp eingeben, wird ein Properties-Block mit allen erforderlichen Schlüsseln automatisch eingefügt.

Echtzeit-Diagnose

Validiert Ihre Vorlage während der Eingabe:

  • Fehlende oder ungültige ROSTemplateFormatVersion
  • Unbekannte Ressourcentypen
  • Fehlende erforderliche Eigenschaften
  • Typinkompatibilitäten bei Eigenschaftswerten
  • Ungültige Parameterdefinitionen
  • Doppelte YAML-Schlüssel
  • Unbekannte Schlüssel mit „Meinten Sie?“-Vorschlägen

Hover-Dokumentation

Bewegen Sie den Mauszeiger über Elemente, um kontextbezogene Dokumentation zu sehen:

  • Ressourcentypen — Beschreibung und Link zur offiziellen Dokumentation
  • Eigenschaften — Typ, Einschränkungen, erforderlich oder optional, Update-Verhalten
  • Intrinsische Funktionen — Syntax und Verwendungsbeispiele

Gehe zu Definition

Springen Sie von Referenzen zu Definitionen:

  • Ref-Ziele — Springe von !Ref oder Ref zur Parameter- oder Ressourcendefinition
  • GetAtt-Ziele — Springe von Fn::GetAtt zur Ressourcendefinition
  • Ressourcenreferenzen — Navigiere zu Ressourcendefinitionen aus Eigenschaftsreferenzen
  • AssociationPropertyMetadata — Springe von ${Name}-Platzhaltern in Metadaten zu Parameterdefinitionen

Verwenden Sie Strg+Klick (oder Cmd+Klick auf macOS) oder drücken Sie F12 auf einer Referenz, um zu ihrer Definition zu springen.

Syntaxhervorhebung

Erweiterte Syntaxhervorhebung für ROS-spezifische Elemente:

  • !Ref, Fn::Join und andere intrinsische Funktionen
  • ALIYUN::*::*-Ressourcentyp-Identifikatoren

Unterstützte Dateitypen

PatternDetection
*.ros.yaml / *.ros.ymlAutomatisch als ROS-Vorlagen erkannt
*.ros.jsonAutomatisch als ROS-Vorlagen erkannt
*.yaml / *.jsonErkannt über ROSTemplateFormatVersion im Inhalt

Befehle

CommandDescription
InfraGuard: Update ROS SchemaNeuestes Ressourcentyp-Schema von der ROS-API abrufen

ROS-Schema aktualisieren

Die Erweiterung enthält ein eingebautes Schema für ROS-Ressourcentypen. Zur Aktualisierung mit den neuesten Ressourcentyp-Definitionen:

  1. Öffnen Sie die Befehlspalette (Ctrl+Shift+P / Cmd+Shift+P)
  2. Führen Sie InfraGuard: Update ROS Schema aus

Dies erfordert konfigurierte Alibaba Cloud-Anmeldedaten. Siehe infraguard schema update für die Anmeldedaten-Konfiguration.

LSP-Server

Der LSP-Server kann mit jedem Editor integriert werden, der das Language Server Protocol unterstützt.

Server starten

infraguard lsp

Der Server kommuniziert über stdio (Standard-Ein-/Ausgabe).

Editor-Konfiguration

Für andere Editoren als VS Code konfigurieren Sie den LSP-Client so, dass er:

  1. Den Server mit infraguard lsp startet
  2. stdio als Transport verwendet
  3. Mit YAML- und JSON-Dateitypen verknüpft ist

Siehe infraguard lsp für weitere Details.