Π’ GNOME SDK Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка построСния интСрфСйсов Blueprint

Π’ состав ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ GNOME инструмСнтария для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (GNOME SDK) Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ компилятор blueprint-compiler, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для опрСдСлСния интСрфСйса ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ Blueprint. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Blueprint Π² GNOME SDK даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ язык описания интСрфСйса Π² прилоТСниях GNOME Π±Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΠΉ установки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… зависимостСй. Π’ настоящСС врСмя Blueprint Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Π½ΠΎΡ‡Π½Ρ‹Π΅ сборки GNOME SDK ΠΈ Π²ΠΎΠΉΠ΄Ρ‘Ρ‚ Π² состав Ρ€Π΅Π»ΠΈΠ·ΠΎΠ², начиная с осСннСго выпуска GNOME 49.

Blueprint ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС интСрфСйса с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GTK4 ΠΈ отличаСтся задСйствованиСм простого Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ синтаксиса, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎ модСль Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² GTK, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ui-Ρ„Π°ΠΉΠ»ΠΎΠ² GTK Π² Blueprint Π½Π΅ примСняСтся Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° XML, которая воспринимаСтся ΠΊΠ°ΠΊ пСрСгруТСнная ΠΈ нСудобная для рСдактирования Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ срСдами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° прСдоставляСтся LSP-сСрвСр (Language Server Protocol), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для подсвСтки, Π°Π½Π°Π»ΠΈΠ·Π° ошибок, Π²Ρ‹Π²ΠΎΠ΄Π° подсказок ΠΈ автодополнСния ΠΊΠΎΠ΄Π°. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Blueprint ΡƒΠΆΠ΅ встроСна Π² GNOME Builder ΠΈ доступна Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для Vim, GNU Emacs ΠΈ Visual Studio Code. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для упрощСния портирования ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ интСрфСйса ΠΈΠ· XML Π² Blueprint.

Благодаря Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌΡƒ синтаксису Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Blueprint позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· примСнСния спСциализированных Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² интСрфСйса. ΠŸΡ€ΠΈ этом Blueprint Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² GTK ΠΈ позиционируСтся ΠΊΠ°ΠΊ надстройка, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ Π² ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ для GtkBuilder Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ XML. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Blueprint ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ GtkBuilder, отличаСтся лишь ΠΌΠ΅Ρ‚ΠΎΠ΄ прСдставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Код инструмСнтария написан Π½Π° языкС Python ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ LGPLv3. using Gtk 4.0; template $MyAppWindow: ApplicationWindow { default-width: 600; default-height: 300; title: _(Β«Hello, Blueprint!Β»); [titlebar] HeaderBar {} Label { label: bind template.main_text; } }

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ