mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
244 lines
12 KiB
Markdown
244 lines
12 KiB
Markdown
# v0.16.0
|
|
|
|
## Added
|
|
- Added more "go to reference" implementations in the language server
|
|
- Added semantic token support for flag members in the language server
|
|
- Added property documentation to the hover tooltip for notify signals
|
|
- The language server now shows relevant sections of the reference documentation when hovering over keywords and symbols
|
|
- Added `not-swapped` flag to signal handlers, which may be needed for signal handlers that specify an object
|
|
- Added expression literals, which allow you to specify a Gtk.Expression property (as opposed to the existing expression support, which is for property bindings)
|
|
|
|
## Changed
|
|
- The formatter adds trailing commas to lists (Alexey Yerin)
|
|
- The formatter removes trailing whitespace from comments (Alexey Yerin)
|
|
- Autocompleting a commonly translated property automatically adds the `_("")` syntax
|
|
- Marking a single-quoted string as translatable now generates a warning, since gettext does not recognize it when using the configuration recommended in the blueprint documentation
|
|
|
|
## Fixed
|
|
- Added support for libgirepository-2.0 so that blueprint doesn't crash due to import conflicts on newer versions of PyGObject (Jordan Petridis)
|
|
- Fixed a bug when decompiling/porting files with enum values
|
|
- Fixed several issues where tests would fail with versions of GTK that added new deprecations
|
|
- Addressed a problem with the language server protocol in some editors (Luoyayu)
|
|
- Fixed an issue where the compiler would crash instead of reporting compiler errors
|
|
- Fixed a crash in the language server that occurred when a detailed signal (e.g. `notify::*`) was not complete
|
|
- The language server now properly implements the shutdown command, fixing support for some editors and improving robustness when restarting (Alexey Yerin)
|
|
- Marking a string in an array as translatable now generates an error, since it doesn't work
|
|
-
|
|
|
|
## Documentation
|
|
- Added mention of `null` in the Literal Values section
|
|
- Add apps to Built with Blueprint section (Benedek Dévényi, Vladimir Vaskov)
|
|
- Corrected and updated many parts of the documentation
|
|
|
|
# v0.14.0
|
|
|
|
## Added
|
|
- Added a warning for unused imports.
|
|
- Added an option to not print the diff when formatting with the CLI. (Gregor Niehl)
|
|
- Added support for building Gtk.ColumnViewRow, Gtk.ColumnViewCell, and Gtk.ListHeader widgets with Gtk.BuilderListItemFactory.
|
|
- Added support for the `after` keyword for signals. This was previously documented but not implemented. (Gregor Niehl)
|
|
- Added support for string arrays. (Diego Augusto)
|
|
- Added hover documentation for properties in lookup expressions.
|
|
- The decompiler supports action widgets, translation domains, `typeof<>` syntax, and expressions. It also supports extension syntax for Adw.Breakpoint, Gtk.BuilderListItemFactory, Gtk.ComboBoxText, Gtk.SizeGroup, and Gtk.StringList.
|
|
- Added a `decompile` subcommand to the CLI, which decompiles an XML .ui file to blueprint.
|
|
- Accessibility relations that allow multiple values are supported using list syntax. (Julian Schmidhuber)
|
|
|
|
## Changed
|
|
- The decompiler sorts imports alphabetically.
|
|
- Translatable strings use `translatable="yes"` instead of `translatable="true"` for compatibility with xgettext. (Marco Köpcke)
|
|
- The first line of the documentation is shown in the completion list when using the language server. (Sonny Piers)
|
|
- Object autocomplete uses a snippet to add the braces and position the cursor inside them. (Sonny Piers)
|
|
- The carets in the CLI diagnostic output now span the whole error message up to the end of the first line, rather than just the first character.
|
|
- The decompiler emits double quotes, which are compatible with gettext.
|
|
|
|
## Fixed
|
|
- Fixed deprecation warnings in the language server.
|
|
- The decompiler no longer duplicates translator comments on properties.
|
|
- Subtemplates no longer output a redundant `@generated` comment.
|
|
- When extension syntax from a library that is not available is used, the compiler emits an error instead of crashing.
|
|
- The language server reports semantic token positions correctly. (Szepesi Tibor)
|
|
- The decompiler no longer emits the deprecated `bind-property` syntax. (Sonny Piers)
|
|
- Fixed the tests when used as a Meson subproject. (Benoit Pierre)
|
|
- Signal autocomplete generates correct syntax. (Sonny Piers)
|
|
- The decompiler supports templates that do not specify a parent class. (Sonny Piers)
|
|
- Adw.Breakpoint setters that set a property on the template no longer cause a crash.
|
|
- Fixed type checking with templates that do not have a parent class.
|
|
- Fixed online documentation links for interfaces.
|
|
- The wording of edit suggestions is fixed for insertions and deletions.
|
|
- When an input file uses tabs instead of spaces, the diagnostic output on the CLI aligns the caret correctly.
|
|
- The decompiler emits correct syntax when a property binding refers to the template object.
|
|
|
|
## Documentation
|
|
- Fixed typos in "Built with Blueprint" section. (Valéry Febvre, Dexter Reed)
|
|
|
|
# v0.12.0
|
|
|
|
## Added
|
|
|
|
- Add support for Adw.AlertDialog (Sonny Piers)
|
|
- Emit warnings for deprecated APIs - lsp and compiler
|
|
- lsp: Document symbols
|
|
- lsp: "Go to definition" (ctrl+click)
|
|
- lsp: Code action for "namespace not imported" diagnostics, that adds the missing import
|
|
- Add a formatter - cli and lsp (Gregor Niehl)
|
|
- Support for translation domain - see documentation
|
|
- cli: Print code actions in error messages
|
|
|
|
## Changed
|
|
|
|
- compiler: Add a header notice mentionning the file is generated (Urtsi Santsi)
|
|
- decompiler: Use single quotes for output
|
|
|
|
## Fixed
|
|
|
|
- Fixed multine strings support with the escape newline character
|
|
- lsp: Fixed the signal completion, which was missing the "$"
|
|
- lsp: Fixed property value completion (Ivan Kalinin)
|
|
- lsp: Added a missing semantic highlight (for the enum in Gtk.Scale marks)
|
|
- Handle big endian bitfields correctly (Jerry James)
|
|
- batch-compile: Fix mixing relative and absolute paths (Marco Köpcke )
|
|
|
|
## Documentation
|
|
|
|
- Fix grammar for bindings
|
|
- Add section on referencing templates
|
|
|
|
# v0.10.0
|
|
|
|
## Added
|
|
|
|
- The hover documentation now includes a link to the online documentation for the symbol, if available.
|
|
- Added hover documentation for the Adw.Breakpoint extensions, `condition` and `setters`.
|
|
|
|
## Changed
|
|
|
|
- Decompiling an empty file now produces an empty file rather than an error. (AkshayWarrier)
|
|
- More relevant documentation is shown when hovering over an identifier literal (such as an enum value or an object ID).
|
|
|
|
## Fixed
|
|
|
|
- Fixed an issue with the language server not conforming the spec. (seshotake)
|
|
- Fixed the signature section of the hover documentation for properties and signals.
|
|
- Fixed a bug where documentation was sometimes shown for a different symbol with the same name.
|
|
- Fixed a bug where documentation was not shown for accessibility properties that contain `-`.
|
|
- Number literals are now correctly parsed as floats if they contain a `.`, even if they are divisible by 1.
|
|
|
|
## Removed
|
|
|
|
- The `bind-property` keyword has been removed. Use `bind` instead. The old syntax is still accepted with a warning.
|
|
|
|
## Documentation
|
|
|
|
- Fixed the grammar for Extension, which was missing ExtAdwBreakpoint.
|
|
|
|
|
|
# v0.8.1
|
|
|
|
## Breaking Changes
|
|
|
|
- Duplicates in a number of places are now considered errors. For example, duplicate flags in several places, duplicate
|
|
strings in Gtk.FileFilters, etc.
|
|
|
|
## Fixed
|
|
|
|
- Fixed a number of bugs in the XML output when using `template` to refer to the template object.
|
|
|
|
## Documentation
|
|
|
|
- Fixed the example for ExtListItemFactory
|
|
|
|
# v0.8.0
|
|
|
|
## Breaking Changes
|
|
|
|
- A trailing `|` is no longer allowed in flags.
|
|
- The primitive type names `gboolean`, `gchararray`, `gint`, `gint64`, `guint`, `guint64`, `gfloat`, `gdouble`, `utf8`, and `gtype` are no longer permitted. Use the non-`g`-prefixed versions instead.
|
|
- Translated strings may no longer have trailing commas.
|
|
|
|
## Added
|
|
|
|
- Added cast expressions, which are sometimes needed to specify type information in expressions.
|
|
- Added support for closure expressions.
|
|
- Added the `--typelib-path` command line argument, which allows adding directories to the search path for typelib files.
|
|
- Added custom compile and decompile commands to the language server. (Sonny Piers)
|
|
- Added support for [Adw.MessageDialog](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.MessageDialog.html#adwmessagedialog-as-gtkbuildable) custom syntax.
|
|
- Added support for inline sub-templates for [Gtk.BuilderListItemFactory](https://docs.gtk.org/gtk4/class.BuilderListItemFactory.html). (Cameron Dehning)
|
|
- Added support for [Adw.Breakpoint](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Breakpoint.html) custom syntax.
|
|
- Added a warning when an object ID might be confusing.
|
|
- Added support for [Gtk.Scale](https://docs.gtk.org/gtk4/class.Scale.html#gtkscale-as-gtkbuildable) custom syntax.
|
|
|
|
## Changed
|
|
|
|
Some of these changes affect syntax, but the old syntax is still accepted with a purple "upgrade" warning, so they are not breaking changes yet. In editors that support code actions, such as Visual Studio Code, the blueprint language server can automatically fix these warnings.
|
|
|
|
- The XML output uses the integer value rather than GIR name for enum values.
|
|
- Compiler errors are now printed to stderr rather than stdout. (Sonny Piers)
|
|
- Introduced `$` to indicate types or callbacks that are provided in application code.
|
|
- Types that are provided by application code are now begin with a `$` rather than a leading `.`.
|
|
- The handler name in a signal is now prefixed with `$`.
|
|
- Closure expressions, which were added in this version, are also prefixed with `$`.
|
|
- When a namespace is not found, errors are supressed when the namespace is used.
|
|
- The compiler bug message now reports the version of blueprint-compiler.
|
|
- The `typeof` syntax now uses `<>` instead of `()` to match cast expressions.
|
|
- Menu sections and subsections can now have an ID.
|
|
- The interactive porting tool now ignores hidden folders. (Sonny Piers)
|
|
- Templates now use the typename syntax rather than an ID to specify the template's class. In most cases, this just means adding a `$` prefix to the ID, but for GtkListItem templates it should be shortened to ListItem (since the Gtk namespace is implied). The template object is now referenced with the `template` keyword rather than with the ID.
|
|
|
|
## Fixed
|
|
|
|
- Fixed a bug in the language server's acceptance of text change commands. (Sonny Piers)
|
|
- Fixed a bug in the display of diagnostics when the diagnostic is at the beginning of a line.
|
|
- Fixed a crash that occurred when dealing with array types.
|
|
- Fixed a bug that prevented Gio.File properties from being settable.
|
|
|
|
## Documentation
|
|
|
|
- Added a reference section to the documentation. This replaces the Examples page with a detailed description of each syntax feature, including a formal specification of the grammar.
|
|
|
|
# v0.6.0
|
|
|
|
## Breaking Changes
|
|
- Quoted and numeric literals are no longer interchangeable (e.g. `"800"` is no longer an accepted value for an
|
|
integer type).
|
|
- Boxed types are now type checked.
|
|
|
|
## Added
|
|
- There is now syntax for `GType` literals: the `typeof()` pseudo-function. For example, list stores have an `item-type`
|
|
property which is now specifiable like this: `item-type: typeof(.MyDataModel)`. See the documentation for more details.
|
|
|
|
## Changed
|
|
- The language server now logs to stderr.
|
|
|
|
## Fixed
|
|
- Fix the build on Windows, where backslashes in paths were not escaped. (William Roy)
|
|
- Remove the syntax for specifying menu objects inline, since it does not work.
|
|
- Fix a crash in the language server that was triggered in files with incomplete `using Gtk 4.0;` statements.
|
|
- Fixed compilation on big-endian systems.
|
|
- Fix an issue in the interactive port tool that would lead to missed files. (Frank Dana)
|
|
|
|
## Documentation
|
|
- Fix an issue for documentation contributors where changing the documentation files would not trigger a rebuild.
|
|
- Document the missing support for Gtk.Label `<attributes>`, which is intentional, and recommend alternatives. (Sonny
|
|
Piers)
|
|
- Add a prominent warning that Blueprint is still experimental
|
|
|
|
|
|
# v0.4.0
|
|
|
|
## Added
|
|
- Lookup expressions
|
|
- With the language server, hovering over a diagnostic message now shows any
|
|
associated hints.
|
|
|
|
## Changed
|
|
- The compiler now uses .typelib files rather than XML .gir files, which reduces
|
|
dependencies and should reduce compile times by about half a second.
|
|
|
|
## Fixed
|
|
- Fix the decompiler/porting tool not importing the Adw namespace when needed
|
|
- Fix a crash when trying to compile an empty file
|
|
- Fix parsing of number tokens
|
|
- Fix a bug where action widgets did not work in templates
|
|
- Fix a crash in the language server that occurred when a `using` statement had
|
|
no version
|
|
- If a compiler bug is reported, the process now exits with a non-zero code
|