49.9 KB
/srv/reproducible-results/rbuild-debian/r-b-build.BCwNPjcL/b1/blueprint-compiler_0.16.0-1_amd64.changes vs.
/srv/reproducible-results/rbuild-debian/r-b-build.BCwNPjcL/b2/blueprint-compiler_0.16.0-1_amd64.changes
212 B
Files
    
Offset 1, 2 lines modifiedOffset 1, 2 lines modified
  
1 ·844dc90f7c5245c6c79e8080a61ee33f·69716·gnome·optional·blueprint-compiler_0.16.0-1_all.deb1 ·a435f92837955e216257c95fb4ef9ad4·69700·gnome·optional·blueprint-compiler_0.16.0-1_all.deb
49.5 KB
blueprint-compiler_0.16.0-1_all.deb
367 B
file list
    
Offset 1, 3 lines modifiedOffset 1, 3 lines modified
1 -rw-r--r--···0········0········0········4·2025-01-22·20:21:28.000000·debian-binary1 -rw-r--r--···0········0········0········4·2025-01-22·20:21:28.000000·debian-binary
2 -rw-r--r--···0········0········0·····2752·2025-01-22·20:21:28.000000·control.tar.xz2 -rw-r--r--···0········0········0·····2752·2025-01-22·20:21:28.000000·control.tar.xz
3 -rw-r--r--···0········0········0····66772·2025-01-22·20:21:28.000000·data.tar.xz3 -rw-r--r--···0········0········0····66756·2025-01-22·20:21:28.000000·data.tar.xz
98.0 B
control.tar.xz
70.0 B
control.tar
48.0 B
./md5sums
30.0 B
./md5sums
Files differ
49.0 KB
data.tar.xz
49.0 KB
data.tar
49.0 KB
./usr/lib/python3/dist-packages/blueprintcompiler/reference_docs.json
48.8 KB
Pretty-printed
Ordering differences only
    
Offset 1, 47 lines modifiedOffset 1, 39 lines modified
1 {1 {
2 ····"Syntax·Object":·{ 
3 ········"content":·"\n##·Objects\n\n```text\nObject·=·TypeName·<id:IDENT>?·ObjectContent\nObjectContent·=·'{'·(Signal·|·Property·|·Extension·|·Child)*·'}'\n```\n\nObjects·are·the·basic·building·blocks·of·a·GTK·user·interface.·Your·widgets·are·all·objects,·as·are·some·other·features·such·as·list·models.\n\nOptionally,·objects·may·have·an·ID·to·provide·a·handle·for·other·parts·of·the·blueprint·and·your·code·to·access·objects.\n\n####·Note\n\nObject·IDs·must·be·unique·within·their·scope.·The·document·root·is·a·scope,·but·[sub-templates](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extlistitemfactory)·have·their·own,·isolated·scope.\n\n###·Example\n\n```blueprint\nLabel·label1·{\n··label:·\"Hello,·world!\";\n}\nLabel·label2·{\n··label:·bind-property·file.name;\n}\n```\n\n", 
4 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/objects.html#syntax-object" 
5 ····}, 
6 ····"Syntax·TypeName":·{2 ····"Syntax·Template":·{
7 ········"content":·"\n##·Type·Names\n\n```text\nTypeName·=·TypeNameFull·|·TypeNameExternal·|·TypeNameShort\nTypeNameFull·=·<namespace:IDENT>·'.'·<name:IDENT>\nTypeNameExternal·=·'$'·<name:IDENT>\nTypeNameShort·=·<name:IDENT>\n```\n\nThere·are·three·forms·of·type·names:·full,·short[·...·truncated·by·diffoscope;·len:·521,·SHA:·a16d24f9606ae864e242fa9b7998c7f43cd811eb0c262fcd1a28189677773586·...·]\n",3 ········"content":·"\n##·Composite·Templates\n\n```text\nTemplate·=·'template'·TypeName·(·':'·TypeName·)?·ObjectContent\n```\n\nWidget·subclassing·is·one·of·the·primary·techniques·for·structuring·an·application.·For·example,·a·maps·app·might·have·a·[Gtk.ApplicationWindow](https://[·...·truncated·by·diffoscope;·len:·3590,·SHA:·d41ffde35e9a606da429ab8090d8224ba705212d7a45747e7acfed02875ecfc7·...·]\n",
8 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/objects.html#syntax-typename"4 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/templates.html#syntax-template"
9 ····}, 
10 ····"Syntax·Property":·{ 
11 ········"content":·"\n##·Properties\n\n```text\nProperty·=·<name:IDENT>·':'·(·Binding·|·ExprValue·|·ObjectValue·|·Value·)·';'\n```\n\nProperties·specify·the·details·of·each·object,·like·a·label's·text,·an·image's·icon·name,·or·the·margins·on·a·container.\n\nMost·properties·are·static·and·directly·specified·in·the·blueprint,·but·properties·can·also·be·bound·to·a·data·model·using·the·`bind`·or·`bind-property`·keywords.\n\nA·property's·value·can·be·another·object,·either·inline·or·referenced·by·ID.\n\n###·Example\n\n```blueprint\nLabel·{\n··label:·\"text\";\n}\n\nButton·{\n··/*·Inline·object·value.·Notice·the·semicolon·after·the·object.·*/\n··child:·Image·{\n····/*·...·*/\n··};\n}\n```\n\n", 
12 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/objects.html#syntax-property" 
13 ····},5 ····},
14 ····"Syntax·Signal":·{ 
15 ········"content":·"\n##·Signal·Handlers\n\n```text\nSignal·=·<name:IDENT>·('::'·<detail:IDENT>)?·'=>'·'$'·<handler:IDENT>·'('·<object:IDENT>?·')'·(SignalFlag)*·';'\nSignalFlag·=·'after'·|·'swapped'·|·'not-swapped'\n```\n\nSignals·are·one·way·to·respond·to·use[·...·truncated·by·diffoscope;·len:·827,·SHA:·1bbba27c57eee2b316a2b6c9f6fef764a3264e52f7781cdebbf35b2e793539b9·...·]6 ····"Syntax·IDENT":·{
 7 ········"content":·"\n##·IDENT\n\nAn·identifier·starts·with·an·ASCII·underscore·`_`·or·letter·`[A-Za-z]`·and·consists·of·ASCII·underscores,·letters,·digits·`[0-9]`,·and·dashes·`-`.·Dashes·are·included·for·historical·reasons,·since·GObject·properties·and·signals·are·traditionally·kebab-case.\n\n",
16 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/objects.html#syntax-signal"8 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/index.html#syntax-ident"
17 ····},9 ····},
18 ····"Syntax·Child":·{ 
19 ········"content":·"\n##·Children\n\n```text\nChild·=·ChildAnnotation?·Object\nChildAnnotation·=·'['·(·ChildInternal·|·ChildExtension·|·ChildType·)·']'\nChildInternal·=·'internal-child'·<internal-child:IDENT>\nChildType·=·<child_type:IDENT>\n```\n\nSome·object[·...·truncated·by·diffoscope;·len:·2056,·SHA:·ee298d3e69dacfac370d7bff97a64f76550f508b13a3e5621cb2585b62bc2d92·...·]10 ····"Syntax·NUMBER":·{
 11 ········"content":·"\n##·NUMBER\n\nNumbers·begin·with·an·ASCII·digit·and·consist·of·ASCII·digits,·underscores,·dots·`.`,·and·letters·(for·radix·pre-/suffixes).·More·than·one·dot·in·a·number·is·not·allowed.·Underscores·are·permitted·for·increased·readability,·and·are·ignored.\n\nHexadecimal·numbers·may·be·specified·using·the·`0x`·prefix·and·may·use·uppercase·or·lowercase·letters,·or·a·mix.·Hexadecimal·values·may·not·have·a·fractional·part.·They·are·generally·converted·to·decimal·in·the·output.\n\n",
20 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/objects.html#syntax-child"12 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/index.html#syntax-number"
21 ····},13 ····},
22 ····"Syntax·Expression":·{ 
23 ········"content":·"\n##·Expressions\n\n```text\nExpression·=·(·ClosureExpression·|·Literal·|·(·'('·Expression·')'·)·)·(·LookupExpression·|·CastExpression·)*\n```\n\n####·Note\n\nThe·grammar·above·is·designed·to·eliminate·[left·recursion](https://en.wikipedia.[·...·truncated·by·diffoscope;·len:·432,·SHA:·22663daba396ded58edf8fa5bae845b2bea480efed5bc81e9895889235bc2405·...·]14 ····"Syntax·QUOTED":·{
 15 ········"content":·"\n##·QUOTED\n\nQuotes·begin·with·an·ASCII·single·quote·`'`·or·double·quote·`\"`·and·end·with·the·same·character·they·started·with.·An·ASCII·backslash·`\\`·begins·an·escape·sequence;·this·allows·newlines·`\\n`,·tabs·`\\t`,·and·quotes·`\\'`,·`\\\"`·to·be·inserted.·It·also·allows·multiline·strings·by·escaping·a·newline·character,·which·will·be·ignored.\n",
24 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/expressions.html#syntax-expression"16 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/index.html#syntax-quoted"
25 ····},17 ····},
26 ····"Syntax·LookupExpression":·{ 
27 ········"content":·"\n##·Lookups\n\n```text\nLookupExpression·=·'.'·<property:IDENT>\n```\n\nLookup·expressions·perform·a·GObject·property·lookup·on·the·preceding·expression.·They·are·recalculated·whenever·the·property·changes,·using·the·[notify·signal](https:[·...·truncated·by·diffoscope;·len:·137,·SHA:·2d650c4c07bd73cf8eacd51b4dd4aa70a4be1704a16f6b932a1478e0ca9d53a8·...·]18 ····"Syntax·Root":·{
 19 ········"content":·"\n##·Document·Root\n\n```text\nRoot·=·GtkDecl·(Using)*·(TranslationDomain)?·(·Template·|·Menu·|·Object·)*·EOF\n```\n\nA·blueprint·document·consists·of·a·[GTK·declaration](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-gtkdecl),·one·or·more·[imports](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-using),·and·a·list·of·[objects](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/objects.html#syntax-object)·and/or·a·[template](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/templates.html#syntax-template).\n\n###·Example\n\n```blueprint\n//·Gtk·Declaration\nusing·Gtk·4.0;\n\n//·Import·Statement\nusing·Adw·1;\n\n//·Object\nWindow·my_window·{}\n```\n\n",
28 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/expressions.html#syntax-lookupexpression"20 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-root"
29 ····},21 ····},
30 ····"Syntax·ClosureExpression":·{ 
31 ········"content":·"\n##·Closures\n\n```text\nClosureExpression·=·'$'·<name:IDENT>·'('·(·Expression·),*·')'\n```\n\nClosure·expressions·allow·you·to·perform·additional·calculations·that·aren't·supported·in·blueprint·by·writing·those·calculations·as·application[·...·truncated·by·diffoscope;·len:·801,·SHA:·6751f3879424cb9ee94077ba42d3a76e01783ad4b2c8bb9ffdeff0a319c640dd·...·]22 ····"Syntax·GtkDecl":·{
 23 ········"content":·"\n##·GTK·Declaration\n\n```text\nGtkDecl·=·'using'·'Gtk'·'4.0'·';'\n```\n\nEvery·blueprint·file·begins·with·the·line·`using·Gtk·4.0;`,·which·declares·the·target·GTK·version·for·the·file.·Tools·that·read·blueprint·files·should·verify·that·they·support·the·declared·version.\n\n###·Example\n\n```blueprint\nusing·Gtk·4.0;\n```\n\n",
32 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/expressions.html#syntax-closureexpression"24 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-gtkdecl"
33 ····},25 ····},
34 ····"Syntax·CastExpression":·{ 
35 ········"content":·"\n##·Casts\n\n```text\nCastExpression·=·'as'·'<'·TypeName·'>'\n```\n\nCast·expressions·allow·Blueprint·to·know·the·type·of·an·expression·when·it·can't·otherwise·determine·it.·This·is·necessary·for·closures·and·for·properties·of·application-[·...·truncated·by·diffoscope;·len:·183,·SHA:·527718214c5e74f44eac89d4c6c0d97a860497e452ab65c1202edf2bf4de75dd·...·]26 ····"Syntax·Using":·{
 27 ········"content":·"\n##·GObject·Introspection·Imports\n\n```text\nUsing·=·'using'·<namespace:IDENT>·<version:NUMBER>·';'\n```\n\nTo·use·classes·and·types·from·namespaces·other·than·GTK·itself,·those·namespaces·must·be·imported·at·the·top·of·the·file.·This·tells·the·compiler·what·version·of·the·namespace·to·import.\n\nYou'll·need·the·GIR·name·and·version,·not·the·package·name·and·not·the·exact·version·number.·These·are·listed·at·the·top·of·each·library's·documentation·homepage:\n\n![gir-namespace.png](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/_images/gir-namespace.png)\n\nThe·compiler·requires·typelib·files·for·these·libraries·to·be·installed.·They·are·usually·installed·with·the·library,·but·on·some·distros,·you·may·need·to·install·the·package·that·provides·`{namespace}-{version}.typelib`·(e.g.·`Adw-1.typelib`).\n\n###·Example\n\n```blueprint\n//·Import·libadwaita\nusing·Adw·1;\n```\n\n",
36 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/expressions.html#syntax-castexpression"28 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-using"
37 ····},29 ····},
38 ····"Syntax·ExprValue":·{ 
39 ········"content":·"\n##·Expression·Values\n\n```text\nExprValue·=·'expr'·Expression\n```\n\nSome·APIs·take·*an·expression·itself*--not·its·result--as·a·property·value.·For·example,·[Gtk.BoolFilter](https://docs.gtk.org/gtk4/class.BoolFilter.html)·has·an·`expr[·...·truncated·by·diffoscope;·len:·632,·SHA:·46f2d35ea302c2d6cdf9ab4cabdd34365b1bc64a4c7cd7b8c54bf6abc4bba8c4·...·]30 ····"Syntax·TranslationDomain":·{
 31 ········"content":·"\n##·Translation·Domain\n\n```text\nTranslationDomain·=·'translation-domain'·<domain:QUOTED>·';'\n```\n\nThe·translation·domain·is·used·to·look·up·translations·for·translatable·strings·in·the·blueprint·file.·If·no·translation·domain·is·specified,·strings·will·be·looked·up·in·the·program's·global·domain.\n\nSee·[Gtk.Builder:translation-domain](https://docs.gtk.org/gtk4/property.Builder.translation-domain.html)·for·more·information.\n",
40 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/expressions.html#syntax-exprvalue"32 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-translationdomain"
41 ····},33 ····},
42 ····"Syntax·Extension":·{34 ····"Syntax·Extension":·{
43 ········"content":·"\nProperties·are·the·main·way·to·set·values·on·objects,·but·they·are·limited·by·the·GObject·type·system·in·what·values·they·can·accept.·Some·classes,·therefore,·have·specialized·syntax·for·certain·features.\n\n####·Note\n\nExtensions·are·a·feature·of·`Gtk.Buildable`--see·[Gtk.Buildable.custom_tag_start()](https://docs.gtk.org/gtk4/vfunc.Buildable.custom_tag_start.html)·for·internal·details.\n\nBecause·they·aren't·part·of·the·type·system,·they·aren't·present·in·typelib·files·like·properties·and·signals·are.·Therefore,·if·a·library·adds·a·new·extension,·syntax·for·it·must·be·added·to·Blueprint·manually.·If·there's·a·commonly·used·extension·that·isn't·supported·by·Blueprint,·please·[file·an·issue](https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues).\n\n```text\nExtension·=·ExtAccessibility\n|·ExtAdwAlertDialog\n|·ExtAdwMessageDialog\n|·ExtAdwBreakpoint\n|·ExtComboBoxItems\n|·ExtFileFilterMimeTypes\n|·ExtFileFilterPatterns\n|·ExtFileFilterSuffixes\n|·ExtLayout\n|·ExtListItemFactory\n|·ExtSizeGroupWidgets\n|·ExtStringListStrings\n|·ExtStyles\n```\n\n",35 ········"content":·"\nProperties·are·the·main·way·to·set·values·on·objects,·but·they·are·limited·by·the·GObject·type·system·in·what·values·they·can·accept.·Some·classes,·therefore,·have·specialized·syntax·for·certain·features.\n\n####·Note\n\nExtensions·are·a·feature·of·`Gtk.Buildable`--see·[Gtk.Buildable.custom_tag_start()](https://docs.gtk.org/gtk4/vfunc.Buildable.custom_tag_start.html)·for·internal·details.\n\nBecause·they·aren't·part·of·the·type·system,·they·aren't·present·in·typelib·files·like·properties·and·signals·are.·Therefore,·if·a·library·adds·a·new·extension,·syntax·for·it·must·be·added·to·Blueprint·manually.·If·there's·a·commonly·used·extension·that·isn't·supported·by·Blueprint,·please·[file·an·issue](https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues).\n\n```text\nExtension·=·ExtAccessibility\n|·ExtAdwAlertDialog\n|·ExtAdwMessageDialog\n|·ExtAdwBreakpoint\n|·ExtComboBoxItems\n|·ExtFileFilterMimeTypes\n|·ExtFileFilterPatterns\n|·ExtFileFilterSuffixes\n|·ExtLayout\n|·ExtListItemFactory\n|·ExtSizeGroupWidgets\n|·ExtStringListStrings\n|·ExtStyles\n```\n\n",
44 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extension"36 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extension"
45 ····},37 ····},
46 ····"Syntax·ExtAccessibility":·{38 ····"Syntax·ExtAccessibility":·{
47 ········"content":·"\n##·Accessibility·Properties\n\n```text\nExtAccessibility·=·'accessibility'·'{'·ExtAccessibilityProp*·'}'\nExtAccessibilityProp·=·<name:IDENT>·':'·(Value··|·('['·(:ref:·Value·<Syntax·Value>),*·']')·)·';'\n```\n\nValid·in·any·[Gtk.Widget](https://docs.gtk.org/gtk4/class.Widget.html).\n\nThe·`accessibility`·block·defines·values·relevant·to·accessibility·software.·The·property·names·and·acceptable·values·are·described·in·the·[Gtk.AccessibleRelation](https://docs.gtk.org/gtk4/enum.AccessibleRelation.html),·[Gtk.AccessibleState](https://docs.gtk.org/gtk4/enum.AccessibleState.html),·and·[Gtk.AccessibleProperty](https://docs.gtk.org/gtk4/enum.AccessibleProperty.html)·enums.\n\n####·Note\n\nRelations·which·allow·for·a·list·of·values,·for·example·`labelled-by`,·must·be·given·as·a·single·relation·with·a·list·of·values·instead·of·duplicating·the·relation·like·done·in·Gtk.Builder.\n\n",39 ········"content":·"\n##·Accessibility·Properties\n\n```text\nExtAccessibility·=·'accessibility'·'{'·ExtAccessibilityProp*·'}'\nExtAccessibilityProp·=·<name:IDENT>·':'·(Value··|·('['·(:ref:·Value·<Syntax·Value>),*·']')·)·';'\n```\n\nValid·in·any·[Gtk.Widget](https://docs.gtk.org/gtk4/class.Widget.html).\n\nThe·`accessibility`·block·defines·values·relevant·to·accessibility·software.·The·property·names·and·acceptable·values·are·described·in·the·[Gtk.AccessibleRelation](https://docs.gtk.org/gtk4/enum.AccessibleRelation.html),·[Gtk.AccessibleState](https://docs.gtk.org/gtk4/enum.AccessibleState.html),·and·[Gtk.AccessibleProperty](https://docs.gtk.org/gtk4/enum.AccessibleProperty.html)·enums.\n\n####·Note\n\nRelations·which·allow·for·a·list·of·values,·for·example·`labelled-by`,·must·be·given·as·a·single·relation·with·a·list·of·values·instead·of·duplicating·the·relation·like·done·in·Gtk.Builder.\n\n",
Offset 95, 30 lines modifiedOffset 87, 14 lines modified
95 ········"content":·"\n##·Child·Extensions\n\n```text\nChildExtension·=·ExtResponse\n```\n\nChild·extensions·are·similar·to·regular·extensions,·but·they·apply·to·a·child·of·the·object·rather·than·the·object·itself.·They·are·used·to·add·properties·to·child·widgets·of·a·container,·such·as·the·buttons·in·a·[Gtk.Dialog](https://docs.gtk.org/gtk4/class.Dialog.html).·The·child·extension·takes·the·place·of·a·child·type·inside·the·square·brackets.\n\nCurrently,·the·only·child·extension·is·[ExtResponse](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extresponse).\n\n\n",87 ········"content":·"\n##·Child·Extensions\n\n```text\nChildExtension·=·ExtResponse\n```\n\nChild·extensions·are·similar·to·regular·extensions,·but·they·apply·to·a·child·of·the·object·rather·than·the·object·itself.·They·are·used·to·add·properties·to·child·widgets·of·a·container,·such·as·the·buttons·in·a·[Gtk.Dialog](https://docs.gtk.org/gtk4/class.Dialog.html).·The·child·extension·takes·the·place·of·a·child·type·inside·the·square·brackets.\n\nCurrently,·the·only·child·extension·is·[ExtResponse](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extresponse).\n\n\n",
96 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-childextension"88 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-childextension"
97 ····},89 ····},
98 ····"Syntax·ExtResponse":·{90 ····"Syntax·ExtResponse":·{
99 ········"content":·"\n##·Dialog·&·InfoBar·Responses\n\n```text\nExtResponse·=·'action'·'response'·'='·(·<name:IDENT>·|·<id:NUMBER>·)·'default'?\n```\n\nValid·as·a·child·extension·for·children·of·[Gtk.Dialog](https://docs.gtk.org/gtk4/class.Dialog.html)·or·[Gtk.InfoBar](https://docs.gtk.org/gtk4/class.InfoBar.html),·which·are·both·deprecated·as·of·Gtk·4.10.\n\nThe·`action·response`·extension·sets·the·`action`·child·type·for·the·child·and·sets·the·child's·integer·response·type.·The·response·type·may·be·either·a·member·of·the·[Gtk.ResponseType](https://docs.gtk.org/gtk4/enum.ResponseType.html)·enum·or·a·positive,·application-defined·integer.\n\nNo·more·than·one·child·of·a·dialog·or·infobar·may·have·the·`default`·flag.\n\n```blueprint\nDialog·{\n·[action·response=ok·default]\n·Button·{}\n\n·[action·response=cancel]\n·Button·{}\n\n·[action·response=1]\n·Button·{}\n}\n```\n\n",91 ········"content":·"\n##·Dialog·&·InfoBar·Responses\n\n```text\nExtResponse·=·'action'·'response'·'='·(·<name:IDENT>·|·<id:NUMBER>·)·'default'?\n```\n\nValid·as·a·child·extension·for·children·of·[Gtk.Dialog](https://docs.gtk.org/gtk4/class.Dialog.html)·or·[Gtk.InfoBar](https://docs.gtk.org/gtk4/class.InfoBar.html),·which·are·both·deprecated·as·of·Gtk·4.10.\n\nThe·`action·response`·extension·sets·the·`action`·child·type·for·the·child·and·sets·the·child's·integer·response·type.·The·response·type·may·be·either·a·member·of·the·[Gtk.ResponseType](https://docs.gtk.org/gtk4/enum.ResponseType.html)·enum·or·a·positive,·application-defined·integer.\n\nNo·more·than·one·child·of·a·dialog·or·infobar·may·have·the·`default`·flag.\n\n```blueprint\nDialog·{\n·[action·response=ok·default]\n·Button·{}\n\n·[action·response=cancel]\n·Button·{}\n\n·[action·response=1]\n·Button·{}\n}\n```\n\n",
100 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extresponse"92 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extresponse"
101 ····},93 ····},
102 ····"Syntax·Root":·{ 
103 ········"content":·"\n##·Document·Root\n\n```text\nRoot·=·GtkDecl·(Using)*·(TranslationDomain)?·(·Template·|·Menu·|·Object·)*·EOF\n```\n\nA·blueprint·document·consists·of·a·[GTK·declaration](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-gtkdecl),·one·or·more·[imports](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-using),·and·a·list·of·[objects](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/objects.html#syntax-object)·and/or·a·[template](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/templates.html#syntax-template).\n\n###·Example\n\n```blueprint\n//·Gtk·Declaration\nusing·Gtk·4.0;\n\n//·Import·Statement\nusing·Adw·1;\n\n//·Object\nWindow·my_window·{}\n```\n\n", 
104 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-root" 
105 ····}, 
106 ····"Syntax·GtkDecl":·{ 
107 ········"content":·"\n##·GTK·Declaration\n\n```text\nGtkDecl·=·'using'·'Gtk'·'4.0'·';'\n```\n\nEvery·blueprint·file·begins·with·the·line·`using·Gtk·4.0;`,·which·declares·the·target·GTK·version·for·the·file.·Tools·that·read·blueprint·files·should·verify·that·they·support·the·declared·version.\n\n###·Example\n\n```blueprint\nusing·Gtk·4.0;\n```\n\n", 
108 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-gtkdecl" 
109 ····}, 
110 ····"Syntax·Using":·{ 
111 ········"content":·"\n##·GObject·Introspection·Imports\n\n```text\nUsing·=·'using'·<namespace:IDENT>·<version:NUMBER>·';'\n```\n\nTo·use·classes·and·types·from·namespaces·other·than·GTK·itself,·those·namespaces·must·be·imported·at·the·top·of·the·file.·This·tells·the·compiler·what·version·of·the·namespace·to·import.\n\nYou'll·need·the·GIR·name·and·version,·not·the·package·name·and·not·the·exact·version·number.·These·are·listed·at·the·top·of·each·library's·documentation·homepage:\n\n![gir-namespace.png](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/_images/gir-namespace.png)\n\nThe·compiler·requires·typelib·files·for·these·libraries·to·be·installed.·They·are·usually·installed·with·the·library,·but·on·some·distros,·you·may·need·to·install·the·package·that·provides·`{namespace}-{version}.typelib`·(e.g.·`Adw-1.typelib`).\n\n###·Example\n\n```blueprint\n//·Import·libadwaita\nusing·Adw·1;\n```\n\n", 
112 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-using" 
113 ····}, 
114 ····"Syntax·TranslationDomain":·{ 
115 ········"content":·"\n##·Translation·Domain\n\n```text\nTranslationDomain·=·'translation-domain'·<domain:QUOTED>·';'\n```\n\nThe·translation·domain·is·used·to·look·up·translations·for·translatable·strings·in·the·blueprint·file.·If·no·translation·domain·is·specified,·strings·will·be·looked·up·in·the·program's·global·domain.\n\nSee·[Gtk.Builder:translation-domain](https://docs.gtk.org/gtk4/property.Builder.translation-domain.html)·for·more·information.\n", 
116 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/document_root.html#syntax-translationdomain" 
117 ····}, 
118 ····"Diagnostic·abstract_class":·{94 ····"Diagnostic·abstract_class":·{
119 ········"content":·"\n##·abstract_class\nObjects·can't·be·created·from·abstract·classes.·Abstract·classes·are·used·as·base·classes·for·other·classes,·but·they·don't·have·functionality·on·their·own.·You·may·want·to·use·a·non-abstract·subclass·instead.\n\n\n",95 ········"content":·"\n##·abstract_class\nObjects·can't·be·created·from·abstract·classes.·Abstract·classes·are·used·as·base·classes·for·other·classes,·but·they·don't·have·functionality·on·their·own.·You·may·want·to·use·a·non-abstract·subclass·instead.\n\n\n",
120 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-abstract-class"96 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-abstract-class"
121 ····},97 ····},
122 ····"Diagnostic·bad_syntax":·{98 ····"Diagnostic·bad_syntax":·{
123 ········"content":·"\n##·bad_syntax\nThe·tokenizer·encountered·an·unexpected·sequence·of·characters·that·aren't·part·of·any·known·blueprint·syntax.\n\n\n",99 ········"content":·"\n##·bad_syntax\nThe·tokenizer·encountered·an·unexpected·sequence·of·characters·that·aren't·part·of·any·known·blueprint·syntax.\n\n\n",
124 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-bad-syntax"100 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-bad-syntax"
Offset 203, 38 lines modifiedOffset 179, 14 lines modified
203 ········"content":·"\n##·version_conflict\nThis·error·occurs·when·two·versions·of·a·namespace·are·imported·(possibly·transitively)·in·the·same·file.·For·example,·this·will·cause·a·version·conflict:\n\n```blueprint\nusing·Gtk·4.0;\nusing·Gtk·3.0;\n```\n\nBut·so·will·this:\n\n```blueprint\nusing·Gtk·4.0;\nusing·Handy·1;\n```\n\nbecause·libhandy·imports·`Gtk·3.0`.\n\n\n",179 ········"content":·"\n##·version_conflict\nThis·error·occurs·when·two·versions·of·a·namespace·are·imported·(possibly·transitively)·in·the·same·file.·For·example,·this·will·cause·a·version·conflict:\n\n```blueprint\nusing·Gtk·4.0;\nusing·Gtk·3.0;\n```\n\nBut·so·will·this:\n\n```blueprint\nusing·Gtk·4.0;\nusing·Handy·1;\n```\n\nbecause·libhandy·imports·`Gtk·3.0`.\n\n\n",
204 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-version-conflict"180 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-version-conflict"
205 ····},181 ····},
206 ····"Diagnostic·wrong_compiler_version":·{182 ····"Diagnostic·wrong_compiler_version":·{
207 ········"content":·"\n##·wrong_compiler_version\nThis·version·of·blueprint-compiler·is·for·GTK·4·blueprints·only.·Future·GTK·versions·will·use·different·versions·of·blueprint-compiler.\n",183 ········"content":·"\n##·wrong_compiler_version\nThis·version·of·blueprint-compiler·is·for·GTK·4·blueprints·only.·Future·GTK·versions·will·use·different·versions·of·blueprint-compiler.\n",
208 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-wrong-compiler-version"184 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/diagnostics.html#diagnostic-wrong-compiler-version"
209 ····},185 ····},
210 ····"Syntax·IDENT":·{ 
211 ········"content":·"\n##·IDENT\n\nAn·identifier·starts·with·an·ASCII·underscore·`_`·or·letter·`[A-Za-z]`·and·consists·of·ASCII·underscores,·letters,·digits·`[0-9]`,·and·dashes·`-`.·Dashes·are·included·for·historical·reasons,·since·GObject·properties·and·signals·are·traditionally·kebab-case.\n\n", 
212 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/index.html#syntax-ident" 
213 ····}, 
214 ····"Syntax·NUMBER":·{ 
215 ········"content":·"\n##·NUMBER\n\nNumbers·begin·with·an·ASCII·digit·and·consist·of·ASCII·digits,·underscores,·dots·`.`,·and·letters·(for·radix·pre-/suffixes).·More·than·one·dot·in·a·number·is·not·allowed.·Underscores·are·permitted·for·increased·readability,·and·are·ignored.\n\nHexadecimal·numbers·may·be·specified·using·the·`0x`·prefix·and·may·use·uppercase·or·lowercase·letters,·or·a·mix.·Hexadecimal·values·may·not·have·a·fractional·part.·They·are·generally·converted·to·decimal·in·the·output.\n\n", 
216 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/index.html#syntax-number" 
217 ····}, 
218 ····"Syntax·QUOTED":·{ 
219 ········"content":·"\n##·QUOTED\n\nQuotes·begin·with·an·ASCII·single·quote·`'`·or·double·quote·`\"`·and·end·with·the·same·character·they·started·with.·An·ASCII·backslash·`\\`·begins·an·escape·sequence;·this·allows·newlines·`\\n`,·tabs·`\\t`,·and·quotes·`\\'`,·`\\\"`·to·be·inserted.·It·also·allows·multiline·strings·by·escaping·a·newline·character,·which·will·be·ignored.\n", 
220 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/index.html#syntax-quoted" 
221 ····}, 
222 ····"Syntax·Menu":·{ 
223 ········"content":·"\n##·Menus\n\n```text\nMenu·=·'menu'·<id:IDENT>?·'{'·MenuChild*·'}'\nMenuChild·=·(·MenuSection·|·MenuSubmenu·|·MenuItemShorthand·|·MenuItem·)\nMenuSection·=·'section'·<id:IDENT>?·'{'·(·MenuChild·|·MenuAttribute·)*·'}'\nMenuSubmenu·=·'submenu'·<id:IDENT>?·'{'·(·MenuChild·|·MenuAttribute·)*·'}'\nMenuItem·=·'item'·'{'·MenuAttribute*·'}'\nMenuAttribute·=·<name:IDENT>·':'·StringValue·';'\n```\n\nMenus,·such·as·the·application·menu,·are·defined·using·the·`menu`·keyword.·Menus·have·the·type·[Gio.MenuModel](https://docs.gtk.org/gio/class.MenuModel.html)·and·can·be·referenced·by·ID.·They·cannot·be·defined·inline.\n\n###·Example\n\n```blueprint\nmenu·my_menu·{\n··submenu·{\n····label:·_(\"File\");\n····item·{\n······label:·_(\"New\");\n······action:·\"app.new\";\n······icon:·\"document-new-symbolic\";\n····}\n··}\n}\n\nMenuButton·{\n··menu-model:·my_menu;\n}\n```\n\n", 
224 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/menus.html#syntax-menu" 
225 ····}, 
226 ····"Syntax·MenuItemShorthand":·{ 
227 ········"content":·"\n##·Item·Shorthand\n\n```text\nMenuItemShorthand·=·'item'·'('·StringValue·(·','·(·StringValue·(·','·StringValue?·)?·)?·)?·')'\n```\n\nThe·most·common·menu·attributes·are·`label`,·`action`,·and·`icon`.·Because·they're·so·common,·Blueprint·provides·a·shorter·syntax·for·menu·items·with·just·these·properties.\n\n###·Example\n\n```blueprint\nmenu·{\n··item·(\"label\")\n··item·(\"label\",·\"action\")\n··item·(\"label\",·\"action\",·\"icon\")\n}\n```\n\n", 
228 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/menus.html#syntax-menuitemshorthand" 
229 ····}, 
230 ····"Syntax·Template":·{ 
231 ········"content":·"\n##·Composite·Templates\n\n```text\nTemplate·=·'template'·TypeName·(·':'·TypeName·)?·ObjectContent\n```\n\nWidget·subclassing·is·one·of·the·primary·techniques·for·structuring·an·application.·For·example,·a·maps·app·might·have·a·[Gtk.ApplicationWindow](https://docs.gtk.org/gtk4/class.ApplicationWindow.html)·subclass,·`MapsApplicationWindow`,·that·implements·the·functionality·of·its·main·window.·But·a·maps·app·has·a·lot·of·functionality,·so·the·headerbar·might·be·split·into·its·own·[Gtk.HeaderBar](https://docs.gtk.org/gtk4/class.HeaderBar.html)·subclass,·`MapsHeaderBar`,·for·the·sake·of·organization.\n\nYou·could·implement·this·with·the·following·blueprint:\n\n```blueprint\nusing·Gtk·4.0;\n\n$MapsApplicationWindow·window·{\n··$MapsHeaderBar·{\n····/*·probably·a·lot·of·buttons·...·*/\n··}\n\n··$MapsMainView·{\n····/*·a·lot·more·UI·definitions·...·*/\n··}\n}\n```\n\nThere·are·two·problems·with·this·approach:\n\n1.·The·widget·code·may·be·organized·neatly·into·different·files,·but·the·UI·is·not.·This·blueprint·contains·the·entire·UI·definition·for·the·app.\n\n2.·Widgets·aren't·in·control·of·their·own·contents.·It·shouldn't·be·up·to·the·caller·to·construct·a·widget·using·the·correct·blueprint--that's·an·implementation·detail·of·the·widget.\n\nWe·can·solve·these·problems·by·giving·each·widget·its·own·blueprint·file,·which·we·reference·in·the·widget's·constructor.·Then,·whenever·the·widget·is·instantiated·(by·another·blueprint,·or·by·the·application),·it·will·get·all·the·children·and·properties·defined·in·its·blueprint.\n\nFor·this·to·work,·we·need·to·specify·in·the·blueprint·which·object·is·the·one·being·instantiated.·We·do·this·with·a·template·block:\n\n```blueprint\nusing·Gtk·4.0;\n\ntemplate·$MapsHeaderBar·:·Gtk.HeaderBar·{\n··/*·probably·a·lot·of·buttons·...·*/\n}\n\nGio.ListStore·bookmarked_places_store·{\n··/*·This·isn't·the·object·being·instantiated,·just·an·auxillary·object.·GTK·knows·this·because·it·isn't·the\n·····one·marked·with·'template'.·*/\n}\n```\n\nThis·blueprint·can·only·be·used·by·the·`MapsHeaderBar`·constructor.·Instantiating·it·with·`Gtk.Builder`·won't·work·since·it·needs·an·existing,·under-construction·`MapsHeaderBar`·to·use·for·the·template·object.·The·`template`·block·must·be·at·the·top·level·of·the·file·(not·nested·within·another·object)·and·only·one·is·allowed·per·file.\n\nThis·`MapsHeaderBar`·class,·along·with·its·blueprint·template,·can·then·be·referenced·in·another·blueprint:\n\n```blueprint\nusing·Gtk·4.0;\n\nApplicationWindow·{\n··$MapsHeaderBar·{\n····/*·Nothing·needed·here,·the·widgets·are·in·the·MapsHeaderBar·template.·*/\n··}\n}\n```\n\n###·Type·&·Parent·Parameters\n\nThe·type·name·that·directly·follows·the·`template`·keyword·is·the·type·of·the·template·class.·In·most·cases,·this·will·be·an·extern·type·starting·with·`$`·and·matching·the·class·name·in·the·application·code.·Templates·for·use·in·a·[Gtk.BuilderListItemFactory](https://docs.gtk.org/gtk4/class.BuilderListItemFactory.html)·use·`ListItem`·as·the·type·name·instead.\n\nThe·parent·type·is·optional,·and·may·only·be·present·if·the·template·type·is·extern.·It·enables·limited·type·checking·for·the·properties·and·signals·of·the·template·object.\n\n\n##·Referencing·a·Template\n\nTo·reference·the·template·object·in·a·binding·or·expression,·use·the·`template`·keyword:\n\n```blueprint\ntemplate·$MyTemplate·{\n··prop1:·\"Hello,·world!\";\n··prop2:·bind·template.prop1;\n}\n```\n\n##·Language·Implementations\n\n-·**C**·`gtk_widget_class_set_template·()`:·https://docs.gtk.org/gtk4/class.Widget.html#building-composite-widgets-from-template-xml\n-·**gtk-rs**·`#[template]`:·https://gtk-rs.org/gtk4-rs/stable/latest/book/composite_templates.html\n-·**GJS**·`GObject.registerClass()`:·https://gjs.guide/guides/gtk/3/14-templates.html\n-·**PyGObject**·`@Gtk.Template`:·https://pygobject.gnome.org/guide/gtk_template.html\n", 
232 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/templates.html#syntax-template" 
233 ····}, 
234 ····"Syntax·Value":·{186 ····"Syntax·Value":·{
235 ········"content":·"\n##·Values\n\n```text\nValue·=·Translated·|·Flags·|·Literal\n```\n\n",187 ········"content":·"\n##·Values\n\n```text\nValue·=·Translated·|·Flags·|·Literal\n```\n\n",
236 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/values.html#syntax-value"188 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/values.html#syntax-value"
237 ····},189 ····},
238 ····"Syntax·Literal":·{190 ····"Syntax·Literal":·{
239 ········"content":·"\n##·Literals\n\n```text\nLiteral·=·TypeLiteral·|·QuotedLiteral·|·NumberLiteral·|·IdentLiteral\nQuotedLiteral·=·<value:QUOTED>\nNumberLiteral·=·(·'-'·|·'+'·)?·<value:NUMBER>\nIdentLiteral·=·<ident:IDENT>\n```\n\nLiterals·are·used·to·specify·values·for·properties.·They·can·be·strings,·numbers,·references·to·objects,·`null`,·types,·boolean·values,·or·enum·members.\n\n",191 ········"content":·"\n##·Literals\n\n```text\nLiteral·=·TypeLiteral·|·QuotedLiteral·|·NumberLiteral·|·IdentLiteral\nQuotedLiteral·=·<value:QUOTED>\nNumberLiteral·=·(·'-'·|·'+'·)?·<value:NUMBER>\nIdentLiteral·=·<ident:IDENT>\n```\n\nLiterals·are·used·to·specify·values·for·properties.·They·can·be·strings,·numbers,·references·to·objects,·`null`,·types,·boolean·values,·or·enum·members.\n\n",
240 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/values.html#syntax-literal"192 ········"link":·"https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/values.html#syntax-literal"
Offset 262, 9 lines modifiedOffset 214, 57 lines modified
262 ····"Syntax·StringValue":·{214 ····"Syntax·StringValue":·{
263 ········"content":·"\n##·String·Values\n\n```text\nStringValue·=·Translated·|·QuotedLiteral\n```\n\nMenus,·as·well·as·some·[extensions](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extension),·have·properties·that·can·only·be·string·literals·or·translated·strings.\n\n",215 ········"content":·"\n##·String·Values\n\n```text\nStringValue·=·Translated·|·QuotedLiteral\n```\n\nMenus,·as·well·as·some·[extensions](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/reference/extensions.html#syntax-extension),·have·properties·that·can·only·be·string·literals·or·translated·strings.\n\n",
Max diff block lines reached; 12942/49957 bytes (25.91%) of diff not shown.