Skip to content

Releases: keyfire/xbsl

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 04:32

Added

  • An opt-in rule checks Unicode class \p in client Pattern literals. Enable
    code/client-pattern-unicode-class after confirming that the target client rejects
    this class. Server and dynamic patterns are excluded.
    (#174)

Fixed

  • Test datasets work with shared platform data. Five fixtures now copy logical JSON
    files instead of relying on physical per-version files. Their existing assertions are preserved.
    (#174)

What's Changed

  • Проверять классы клиентского Образец и читать логические данные в тестах by @keyfire in #174

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 05:38

Added

  • Platform data can share identical content across versions. data-pack builds the shared
    catalog, data-export restores the earlier layout, and data-verify checks its contents.
    data-prune previews unused files and removes them only with --apply. (#173)

  • Standard method completion items include documentation. Selecting an item loads its
    signatures, a short description and parameter details from the declaring type. (#173)

  • xbsl/reindexProject returns after rebuilding the index and checking the project.
    Standard LSP progress includes stages, completed and remaining files or rules, and the active
    rule. Editors can show elapsed time. The final 100% follows diagnostic publication. (#173)

Changed

  • Data readers and extractors support the shared layout. JSON views, documentation searches
    and image paths keep their previous meaning; the earlier layout remains readable. (#173)

Removed

  • The retired xbsllint commands and Python import are removed. Use xbsl and its named
    server commands. (#173)

Fixed

  • Completion recognizes grouped numeric expressions and conditional locals. A calculation
    followed by a dot offers the methods of its result type. (#173)
  • Module constants show their type and documentation on hover. Local names and qualified
    references keep their own meaning. (#173)

What's Changed

  • Версия 1.0.0: общее хранение, подсказки и полная проверка проекта by @keyfire in #173

Full Changelog: v0.128.1...v1.0.0

vscode-v1.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 05:43

2026-10-03.

Added

  • A status-bar refresh icon reindexes and checks the project. While it spins, the stage
    and its percentage appear beside it. The tooltip shows completed and remaining file or rule
    counts, the active project rule and elapsed time. After diagnostics are published and the
    check finishes, the text disappears; repeated clicks share the same run. (#173)
  • Standard method suggestions show signatures, a short description and parameters.
    Documentation loads when the item is selected. (#173)

Fixed

  • Grouped numeric calculations offer methods, and module constants show their documentation.
    Both use the current source text. (#173)

Changed

  • Current help uses xbsl and removes obsolete feature-version notes. The extension and
    engine are prepared as 1.0.0. (#173)

What's Changed

  • Версия 1.0.0: общее хранение, подсказки и полная проверка проекта by @keyfire in #173

Full Changelog: vscode-v0.80.0...vscode-v1.0.0

v0.128.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 04:20

Added

  • The properties panel offers only the values the compatibility mode of the project allows.
    xbsl extract dates the enumeration values the platform limits to some modes, the panel reads
    the mode the way the build does, and MCP metadata_schema returns the limits in enum_modes. (#171)
  • localization-info gives the English name of each candidate language too. The names_en
    field stands next to names in the command, in MCP meta_localization_info and in the language
    server, so a client can name a language in the language of its own interface. (#170)

Changed

  • translate and the properties panel spell a value by its own enumeration. xbsl extract
    writes the English spelling of every value into metamodel.json, and both read it there
    instead of guessing it by the tables of the interface. So ComparisonKind of an integration
    process predicate is Equals now, and a value the flat table had no English for gets one. (#171)
  • translate keeps the prefix of a deprecated name. An entry that does not start with
    Deprecated gets it in front, so naming/presentation knows the element in the English tree
    and asks for (not used) there. A word that only begins like the prefix no longer counts. (#170)

Fixed

  • xbsl extract reads event handler names correctly. It used to pair most of them with
    neighbouring words from the same class, so the compiler dictionary offered the wrong English
    names. The extractor now uses the name pairs declared by the platform. (#172)
  • xbsl extract puts the pairs a class writes Russian first into the compiler dictionary.
    Such a pair only checked the neighbour on its left, and now it is a source too, screened like
    the others: the code SN of a number spellout parameter gets its pair. A caption such as
    Half year is no name and stays out. (#171)
  • Two worktrees of one project in one run are no longer merged into one project. Shared names
    gave a finding each, and one tree's baseline judged the other. Each root now gets its own check
    and record in summary.projects, and lint_paths with compact keeps within 12,000 characters. (#171)
  • from xbsl import scaffold works as the first import of a process. It used to fail on a
    circular import: loading the engine loads the rules, and a rule takes a name from the
    scaffolding module. import xbsl.resource_usage failed the same way. (#170)
  • xbsl extract lists the values of properties typed by compiled enumerations. Importance
    of a command, WeekDays and Months of a schedule, Periodicity of a constants set and ten more
    properties were typed as blocks with no values, and the values had no English spelling. The
    metadata schema and the properties panel now offer them, an English project gets each value the
    way its own enumeration spells it, and translate spells them too. (#170)
  • xbsl extract checks the names of languages against the language table. Enumerations of
    the languages and a reader of the project descriptor put the name of one language next to the
    name of another, and the compiler dictionary paired them that way, so the Russian name of Russian
    lost its common spelling. A pair the table contradicts is dropped now. (#170)
  • xbsl extract no longer takes the word before a Russian name for its English. A class that
    localizes a word Russian first, English right after it, left on the left of the word the name
    of an enumeration constant or the English of the previous parameter. The check reads the calls
    of the class, not the shape of the word, so abbreviations the platform declares stay. (#170)

What's Changed

  • Исправить пары названий обработчиков событий в словаре компилятора by @keyfire in #172

Full Changelog: v0.128.0...v0.128.1

v0.128.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 03:10

Added

  • The properties panel offers only the values the compatibility mode of the project allows.
    xbsl extract dates the enumeration values the platform limits to some modes, the panel reads
    the mode the way the build does, and MCP metadata_schema returns the limits in enum_modes. (#171)
  • localization-info gives the English name of each candidate language too. The names_en
    field stands next to names in the command, in MCP meta_localization_info and in the language
    server, so a client can name a language in the language of its own interface. (#170)

Changed

  • translate and the properties panel spell a value by its own enumeration. xbsl extract
    writes the English spelling of every value into metamodel.json, and both read it there
    instead of guessing it by the tables of the interface. So ComparisonKind of an integration
    process predicate is Equals now, and a value the flat table had no English for gets one. (#171)
  • translate keeps the prefix of a deprecated name. An entry that does not start with
    Deprecated gets it in front, so naming/presentation knows the element in the English tree
    and asks for (not used) there. A word that only begins like the prefix no longer counts. (#170)

Fixed

  • xbsl extract puts the pairs a class writes Russian first into the compiler dictionary.
    Such a pair only checked the neighbour on its left, and now it is a source too, screened like
    the others: the code SN of a number spellout parameter gets its pair. A caption such as
    Half year is no name and stays out. (#171)
  • Two worktrees of one project in one run are no longer merged into one project. Shared names
    gave a finding each, and one tree's baseline judged the other. Each root now gets its own check
    and record in summary.projects, and lint_paths with compact keeps within 12,000 characters. (#171)
  • from xbsl import scaffold works as the first import of a process. It used to fail on a
    circular import: loading the engine loads the rules, and a rule takes a name from the
    scaffolding module. import xbsl.resource_usage failed the same way. (#170)
  • xbsl extract lists the values of properties typed by compiled enumerations. Importance
    of a command, WeekDays and Months of a schedule, Periodicity of a constants set and ten more
    properties were typed as blocks with no values, and the values had no English spelling. The
    metadata schema and the properties panel now offer them, an English project gets each value the
    way its own enumeration spells it, and translate spells them too. (#170)
  • xbsl extract checks the names of languages against the language table. Enumerations of
    the languages and a reader of the project descriptor put the name of one language next to the
    name of another, and the compiler dictionary paired them that way, so the Russian name of Russian
    lost its common spelling. A pair the table contradicts is dropped now. (#170)
  • xbsl extract no longer takes the word before a Russian name for its English. A class that
    localizes a word Russian first, English right after it, left on the left of the word the name
    of an enumeration constant or the English of the previous parameter. The check reads the calls
    of the class, not the shape of the word, so abbreviations the platform declares stay. (#170)

What's Changed

  • Партия 46: значения перечислений и раздельная проверка корней проекта by @keyfire in #171

Full Changelog: v0.127.0...v0.128.0

vscode-v0.80.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 09:08

Fixed

  • "Add localization" shows every language name in the editor's language. The engine
    supplies the languages available to the project through the language server or CLI.
    If the engine is unavailable, the command shows an installation prompt. (change)

Full Changelog: v0.128.1...vscode-v0.80.0

v0.127.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 21:33

Added

  • localization-info gives the English name of each candidate language too. The names_en
    field stands next to names in the command, in MCP meta_localization_info and in the language
    server, so a client can name a language in the language of its own interface. (#170)

Changed

  • translate keeps the prefix of a deprecated name. An entry that does not start with
    Deprecated gets it in front, so naming/presentation knows the element in the English tree
    and asks for (not used) there. A word that only begins like the prefix no longer counts. (#170)

Fixed

  • from xbsl import scaffold works as the first import of a process. It used to fail on a
    circular import: loading the engine loads the rules, and a rule takes a name from the
    scaffolding module. import xbsl.resource_usage failed the same way. (#170)
  • xbsl extract lists the values of properties typed by compiled enumerations. Importance
    of a command, WeekDays and Months of a schedule, Periodicity of a constants set and ten more
    properties were typed as blocks with no values, and the values had no English spelling. The
    metadata schema and the properties panel now offer them, an English project gets each value the
    way its own enumeration spells it, and translate spells them too. (#170)
  • xbsl extract checks the names of languages against the language table. Enumerations of
    the languages and a reader of the project descriptor put the name of one language next to the
    name of another, and the compiler dictionary paired them that way, so the Russian name of Russian
    lost its common spelling. A pair the table contradicts is dropped now. (#170)
  • xbsl extract no longer takes the word before a Russian name for its English. A class that
    localizes a word Russian first, English right after it, left on the left of the word the name
    of an enumeration constant or the English of the previous parameter. The check reads the calls
    of the class, not the shape of the word, so abbreviations the platform declares stay. (#170)

What's Changed

  • Batch 45: compiled enumerations, language and constant pairs, deprecated names, language names, first imports by @keyfire in #170

Full Changelog: v0.126.0...v0.127.0

v0.126.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 15:50

Added

  • new-object --periodicity creates a periodic constants set. It takes Day, Month,
    Quarter or Year, in either language. Such a set has a list beside its record, so
    --presentation writes the list caption and --record-presentation the record one, and the
    new set passes naming/presentation. MCP meta_new_object and the language server call it
    periodicity. (#166)

Changed

  • naming/presentation expects (not used) from an English project. A deprecated element
    starts its presentation and captions with that mark, and the rule does not count the mark of
    the other language. translate adds (not used) itself when a dictionary entry leaves it out. (#169)
  • The localization tools know every language of the platform. localization-info and
    add-localization, with their MCP and language server twins, take the languages from the data
    together with the compatibility mode each one needs, so Chinese, Vietnamese and Tajik join
    Russian and English. A value of LocalizationLanguages the data does not know is named in the
    notes. (#169)
  • yaml/duplicate-subtree no longer compares the translations of one localized-strings
    dictionary.
    Two languages of one dictionary repeat each other key for key. (#169)
  • translate swaps the base only with the translation into the target language. Its folder
    is found in any letter case, and a translation into another language keeps its place on purpose. (#169)
  • naming/presentation now asks a processing for its caption. A processing keeps it in
    Interface.Presentation: the form and the command that opens it are named by it, and without it
    both carry the element name. The standard lists processings among the elements whose
    presentation is mandatory, and new-object --presentation writes the caption right there. (#167)
  • data-diff no longer says "no changes" where the data changed. It now compares the whole
    stdlib catalog, module handlers and signatures included, as well as uiterms.json,
    terms_full.json and the text of the help pages. The text report keeps to a count and the first
    names; --limit 0 lists them all. (#168)

Fixed

  • xbsl extract reads the languages of a project. The data gains the language table and the
    English names of the newer languages, so translate --strict no longer reports a platform gap
    on a descriptor that lists one of them. (#169)
  • The cards of the help no longer run together. The links of a card grid used to merge into one
    line, and an example lost the icon that told a right one from a wrong one. The help now lists link
    cards, labels right and wrong examples, and keeps the code fragment of a card as code. (#165)
  • Servers no longer answer from data replaced under them. An MCP worker that read the term pairs
    just before a reinstall rewrote them kept answering from the old ones. Now it refuses with reason
    data and a new worker answers the call; the language server asks for a restart. (#168)
  • xbsl extract no longer writes into the package. The grammar step used to cache the grammar
    files next to the package code whatever --data-dir said; now it reads them from the
    distribution in memory, and an installed package stays as it was. (#168)
  • The help of --element-version names the real default. It said "the latest in the
    bundle", while the version comes from XBSL_ELEMENT_VERSION or, without it, from the default
    of index.json in the data root. (#168)
  • The translator spells the standard attributes of an exchange plan in ComputePermissionsBy.
    The number of the sent message and this node stayed Russian in the list, so the English exchange
    plan named fields its object does not have. Now the kind spells them: SentNumber, ThisNode. (#168)
  • xbsl extract no longer pairs a name of an element model with its neighbour. Such a class
    writes the Russian name first, and this node of an exchange plan read as ReceivedNumber; a dozen
    words of the compiler dictionary were wrong as well, and the name of a Java constant passed for
    the English of the word it holds. Run xbsl extract --dist ... --only terms. (#168)
  • A second translation of the same file no longer leaves the schedule kind Russian. The
    translator wrote the English kind back into the parsed file kept with the source, so the next
    pass in the same process found nothing to change. It now leaves the parsed file as it was. (#168)
  • The translator names a declared standard attribute the way its kind does. An exchange
    plan that declared the number of the sent message kept it Russian and asked the project for
    an entry, while its own list already said SentNumber. An entry of the project still wins. (#168)

What's Changed

  • Batch 44: (not used) for English projects, languages of the project, disputed property by @keyfire in #169

Full Changelog: v0.125.0...v0.126.0

v0.125.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 03:55

Added

  • new-object --periodicity creates a periodic constants set. It takes Day, Month,
    Quarter or Year, in either language. Such a set has a list beside its record, so
    --presentation writes the list caption and --record-presentation the record one, and the
    new set passes naming/presentation. MCP meta_new_object and the language server call it
    periodicity. (#166)

Changed

  • naming/presentation now asks a processing for its caption. A processing keeps it in
    Interface.Presentation: the form and the command that opens it are named by it, and without it
    both carry the element name. The standard lists processings among the elements whose
    presentation is mandatory, and new-object --presentation writes the caption right there. (#167)
  • data-diff no longer says "no changes" where the data changed. It now compares the whole
    stdlib catalog, module handlers and signatures included, as well as uiterms.json,
    terms_full.json and the text of the help pages. The text report keeps to a count and the first
    names; --limit 0 lists them all. (#168)

Fixed

  • The cards of the help no longer run together. The links of a card grid used to merge into one
    line, and an example lost the icon that told a right one from a wrong one. The help now lists link
    cards, labels right and wrong examples, and keeps the code fragment of a card as code. (#165)
  • Servers no longer answer from data replaced under them. An MCP worker that read the term pairs
    just before a reinstall rewrote them kept answering from the old ones. Now it refuses with reason
    data and a new worker answers the call; the language server asks for a restart. (#168)
  • xbsl extract no longer writes into the package. The grammar step used to cache the grammar
    files next to the package code whatever --data-dir said; now it reads them from the
    distribution in memory, and an installed package stays as it was. (#168)
  • The help of --element-version names the real default. It said "the latest in the
    bundle", while the version comes from XBSL_ELEMENT_VERSION or, without it, from the default
    of index.json in the data root. (#168)
  • The translator spells the standard attributes of an exchange plan in ComputePermissionsBy.
    The number of the sent message and this node stayed Russian in the list, so the English exchange
    plan named fields its object does not have. Now the kind spells them: SentNumber, ThisNode. (#168)
  • xbsl extract no longer pairs a name of an element model with its neighbour. Such a class
    writes the Russian name first, and this node of an exchange plan read as ReceivedNumber; a dozen
    words of the compiler dictionary were wrong as well, and the name of a Java constant passed for
    the English of the word it holds. Run xbsl extract --dist ... --only terms. (#168)
  • A second translation of the same file no longer leaves the schedule kind Russian. The
    translator wrote the English kind back into the parsed file kept with the source, so the next
    pass in the same process found nothing to change. It now leaves the parsed file as it was. (#168)
  • The translator names a declared standard attribute the way its kind does. An exchange
    plan that declared the number of the sent message kept it Russian and asked the project for
    an entry, while its own list already said SentNumber. An entry of the project still wins. (#168)

What's Changed

  • The help keeps its card grids readable by @keyfire in #165
  • Batch 42: parity seeds, constants set caption probe, new-object --periodicity by @keyfire in #166
  • naming/presentation asks a processing for its caption by @keyfire in #167
  • Batch 43: stale data in servers, data-diff coverage, terms extractor and translator fixes by @keyfire in #168

Full Changelog: v0.124.0...v0.125.0

vscode-v0.79.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 03:49

Added

  • Three more rules link to the documentation: code/constant-unavailable,
    yaml/document-date-required and yaml/soap-handler-name open their pages from the
    Problems panel. (#163)
  • Two more rules link to the documentation: code/module-type-unavailable and
    code/qualified-member-unavailable open the page on module execution from the Problems panel. (#164)

What's Changed

  • The help keeps its card grids readable by @keyfire in #165
  • Batch 42: parity seeds, constants set caption probe, new-object --periodicity by @keyfire in #166
  • naming/presentation asks a processing for its caption by @keyfire in #167
  • Batch 43: stale data in servers, data-diff coverage, terms extractor and translator fixes by @keyfire in #168

Full Changelog: v0.124.0...vscode-v0.79.0