GNOME SDK fügt Unterstützung für die Blueprint-Schnittstellensprache hinzu

Das GNOME SDK enthält einen Blueprint-Compiler, der es Ihnen ermöglicht, Blueprint-Markup zum Definieren Ihrer Anwendungsschnittstelle zu verwenden. Die Blueprint-Unterstützung im GNOME SDK ermöglicht die Verwendung dieser Schnittstellenbeschreibungssprache in GNOME-Anwendungen, ohne dass zusätzliche Abhängigkeiten manuell installiert werden müssen. Blueprint ist derzeit in den Nightly Builds des GNOME SDK enthalten und wird in den Versionen ab der Herbstversion von GNOME 49 enthalten sein.

Blueprint vereinfacht die UI-Erstellung mithilfe der GTK4-Bibliothek und verfügt über eine einfache deklarative Syntax, die dem GTK-Widget-Modell folgt und generische Vorlagen, Typen und Handler unterstützt. Im Gegensatz zum GTK-UI-Dateiformat verwendet Blueprint kein XML-Markup, das als überladen und schwer manuell zu bearbeiten gilt.

Für die Integration mit IDEs und Code-Editoren wird ein Language Server Protocol (LSP)-Server bereitgestellt, der zum Hervorheben, zur Fehleranalyse, für Codehinweise und zur Codevervollständigung verwendet werden kann. Die Blueprint-Unterstützung ist bereits in GNOME Builder integriert und als Plug-Ins für Vim, GNU Emacs und Visual Studio Code verfügbar. Es gibt ein Dienstprogramm, das das Portieren von Schnittstellendefinitionen von XML nach Blueprint erleichtert.

Dank seiner lesbaren Syntax können Sie mit dem Blueprint-Format auf die Verwendung spezialisierter Editoren für visuelle Schnittstellen verzichten. Gleichzeitig erfordert Blueprint keine Änderungen an GTK und ist als Add-On positioniert, das Markup in das Standard-XML-Format für GtkBuilder kompiliert. Die Funktionalität von Blueprint ist vollständig mit der von GtkBuilder konsistent, lediglich die Methode zur Darstellung von Informationen unterscheidet sich. Der Toolkit-Code ist in Python geschrieben und wird unter der LGPLv3-Lizenz vertrieben. mit Gtk 4.0; Vorlage $MyAppWindow: Anwendungsfenster { Standardbreite: 600; Standardhöhe: 300; Titel: _("Hallo, Blueprint!"); [Titelleiste] HeaderBar {} Label { label: bind template.main_text; } }

Source: opennet.ru

Kommentar hinzufügen