Pristatyta Blueprint – nauja GTK vartotojo sąsajos kalba

Jamesas Westmanas, GNOME žemėlapių programos kūrėjas, pristatė naują žymėjimo kalbą Blueprint, skirtą sąsajoms kurti naudojant GTK biblioteką. Kompiliatoriaus kodas, skirtas Blueprint žymėjimui konvertuoti į GTK vartotojo sąsajos failus, yra parašytas Python ir platinamas pagal LGPLv3 licenciją.

Projekto sukūrimo priežastis – GTK naudojamų UI sąsajos aprašymo failų susiejimas su XML formatu, kuris yra perkrautas ir nėra patogus rašyti ar redaguoti žymėjimą rankiniu būdu. „Blueprint“ formatas išsiskiria aiškiu informacijos pateikimu ir dėl skaitomos sintaksės leidžia apsieiti be specializuotų vaizdinės sąsajos redaktorių kuriant, redaguojant ir vertinant sąsajos elementų pakeitimus.

Tuo pačiu metu „Blueprint“ nereikalauja GTK pakeitimų, visiškai atkartoja GTK valdiklių modelį ir yra kaip priedas, kompiliuojantis žymėjimą į standartinį „GtkBuilder“ XML formatą. Blueprint funkcionalumas visiškai atitinka GtkBuilder, skiriasi tik informacijos pateikimo būdas. Norėdami perkelti projektą į „Blueprint“, tiesiog pridėkite projektų kompiliatoriaus iškvietimą į kūrimo scenarijų, nekeisdami kodo. naudojant Gtk 4.0; šablonas MyAppWindow : Gtk.ApplicationWindow { title: _("Mano programos pavadinimas"); [titlebar] HeaderBar header_bar {} Etiketė { stiliai ["antraštė"] etiketė: _("Sveikas, pasauli!"); } }

Pristatytas Blueprint – nauja GTK vartotojo sąsajų kūrimo kalba

Be kompiliatoriaus į standartinį GTK XML formatą, taip pat kuriamas įskiepis su Blueprint palaikymu integruotai GNOME Builder kūrimo aplinkai. „Blueprint“ kuriamas atskiras LSP serveris (Language Server Protocol), kuris gali būti naudojamas paryškinimui, klaidų analizei, užuominų rodymui ir kodo užbaigimui LSP palaikančiose kodų rengyklėse, įskaitant „Visual Studio Code“.

„Blueprint“ kūrimo planai apima reaktyvių programavimo elementų įtraukimą į žymėjimą, įgyvendintą naudojant „Gtk.Expression“ klasę, pateiktą GTK4. Siūlomas metodas yra labiau žinomas JavaScript žiniatinklio sąsajų kūrėjams ir leidžia automatiškai sinchronizuoti sąsajos pateikimą su susijusiu duomenų modeliu, nereikalaujant priverstinai atnaujinti vartotojo sąsajos po kiekvieno duomenų pakeitimo.

Šaltinis: opennet.ru

Добавить комментарий