Repository navigation
Releases: keyfire/xbsl
Release list
v1.1.0
Added
- An opt-in rule checks Unicode class
\pin client Pattern literals. Enable
code/client-pattern-unicode-classafter 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
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Added
-
Platform data can share identical content across versions.
data-packbuilds the shared
catalog,data-exportrestores the earlier layout, anddata-verifychecks its contents.
data-prunepreviews 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/reindexProjectreturns 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
xbsllintcommands and Python import are removed. Usexbsland 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
Full Changelog: v0.128.1...v1.0.0
vscode-v1.0.0
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
xbsland removes obsolete feature-version notes. The extension and
engine are prepared as 1.0.0. (#173)
What's Changed
Full Changelog: vscode-v0.80.0...vscode-v1.0.0
v0.128.1
Added
- The properties panel offers only the values the compatibility mode of the project allows.
xbsl extractdates the enumeration values the platform limits to some modes, the panel reads
the mode the way the build does, and MCPmetadata_schemareturns the limits inenum_modes. (#171) localization-infogives the English name of each candidate language too. Thenames_en
field stands next tonamesin the command, in MCPmeta_localization_infoand in the language
server, so a client can name a language in the language of its own interface. (#170)
Changed
translateand the properties panel spell a value by its own enumeration.xbsl extract
writes the English spelling of every value intometamodel.json, and both read it there
instead of guessing it by the tables of the interface. SoComparisonKindof an integration
process predicate isEqualsnow, and a value the flat table had no English for gets one. (#171)translatekeeps the prefix of a deprecated name. An entry that does not start with
Deprecatedgets it in front, sonaming/presentationknows 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 extractreads 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 extractputs 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 codeSNof a number spellout parameter gets its pair. A caption such as
Half yearis 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 insummary.projects, andlint_pathswithcompactkeeps within 12,000 characters. (#171) from xbsl import scaffoldworks 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_usagefailed the same way. (#170)xbsl extractlists the values of properties typed by compiled enumerations.Importance
of a command,WeekDaysandMonthsof a schedule,Periodicityof 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, andtranslatespells them too. (#170)xbsl extractchecks 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 extractno 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
Full Changelog: v0.128.0...v0.128.1
v0.128.0
Added
- The properties panel offers only the values the compatibility mode of the project allows.
xbsl extractdates the enumeration values the platform limits to some modes, the panel reads
the mode the way the build does, and MCPmetadata_schemareturns the limits inenum_modes. (#171) localization-infogives the English name of each candidate language too. Thenames_en
field stands next tonamesin the command, in MCPmeta_localization_infoand in the language
server, so a client can name a language in the language of its own interface. (#170)
Changed
translateand the properties panel spell a value by its own enumeration.xbsl extract
writes the English spelling of every value intometamodel.json, and both read it there
instead of guessing it by the tables of the interface. SoComparisonKindof an integration
process predicate isEqualsnow, and a value the flat table had no English for gets one. (#171)translatekeeps the prefix of a deprecated name. An entry that does not start with
Deprecatedgets it in front, sonaming/presentationknows 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 extractputs 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 codeSNof a number spellout parameter gets its pair. A caption such as
Half yearis 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 insummary.projects, andlint_pathswithcompactkeeps within 12,000 characters. (#171) from xbsl import scaffoldworks 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_usagefailed the same way. (#170)xbsl extractlists the values of properties typed by compiled enumerations.Importance
of a command,WeekDaysandMonthsof a schedule,Periodicityof 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, andtranslatespells them too. (#170)xbsl extractchecks 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 extractno 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
Full Changelog: v0.127.0...v0.128.0
vscode-v0.80.0
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
Added
localization-infogives the English name of each candidate language too. Thenames_en
field stands next tonamesin the command, in MCPmeta_localization_infoand in the language
server, so a client can name a language in the language of its own interface. (#170)
Changed
translatekeeps the prefix of a deprecated name. An entry that does not start with
Deprecatedgets it in front, sonaming/presentationknows 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 scaffoldworks 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_usagefailed the same way. (#170)xbsl extractlists the values of properties typed by compiled enumerations.Importance
of a command,WeekDaysandMonthsof a schedule,Periodicityof 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, andtranslatespells them too. (#170)xbsl extractchecks 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 extractno 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
Added
new-object --periodicitycreates a periodic constants set. It takesDay,Month,
QuarterorYear, in either language. Such a set has a list beside its record, so
--presentationwrites the list caption and--record-presentationthe record one, and the
new set passesnaming/presentation. MCPmeta_new_objectand the language server call it
periodicity. (#166)
Changed
naming/presentationexpects(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.translateadds(not used)itself when a dictionary entry leaves it out. (#169)- The localization tools know every language of the platform.
localization-infoand
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 ofLocalizationLanguagesthe data does not know is named in the
notes. (#169) yaml/duplicate-subtreeno longer compares the translations of one localized-strings
dictionary. Two languages of one dictionary repeat each other key for key. (#169)translateswaps 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/presentationnow 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, andnew-object --presentationwrites the caption right there. (#167)data-diffno longer says "no changes" where the data changed. It now compares the whole
stdlib catalog, module handlers and signatures included, as well asuiterms.json,
terms_full.jsonand the text of the help pages. The text report keeps to a count and the first
names;--limit 0lists them all. (#168)
Fixed
xbsl extractreads the languages of a project. The data gains the language table and the
English names of the newer languages, sotranslate --strictno 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
dataand a new worker answers the call; the language server asks for a restart. (#168) xbsl extractno longer writes into the package. The grammar step used to cache the grammar
files next to the package code whatever--data-dirsaid; now it reads them from the
distribution in memory, and an installed package stays as it was. (#168)- The help of
--element-versionnames the real default. It said "the latest in the
bundle", while the version comes fromXBSL_ELEMENT_VERSIONor, without it, from thedefault
ofindex.jsonin 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 extractno 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 asReceivedNumber; 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. Runxbsl 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 saidSentNumber. 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
Added
new-object --periodicitycreates a periodic constants set. It takesDay,Month,
QuarterorYear, in either language. Such a set has a list beside its record, so
--presentationwrites the list caption and--record-presentationthe record one, and the
new set passesnaming/presentation. MCPmeta_new_objectand the language server call it
periodicity. (#166)
Changed
naming/presentationnow 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, andnew-object --presentationwrites the caption right there. (#167)data-diffno longer says "no changes" where the data changed. It now compares the whole
stdlib catalog, module handlers and signatures included, as well asuiterms.json,
terms_full.jsonand the text of the help pages. The text report keeps to a count and the first
names;--limit 0lists 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
dataand a new worker answers the call; the language server asks for a restart. (#168) xbsl extractno longer writes into the package. The grammar step used to cache the grammar
files next to the package code whatever--data-dirsaid; now it reads them from the
distribution in memory, and an installed package stays as it was. (#168)- The help of
--element-versionnames the real default. It said "the latest in the
bundle", while the version comes fromXBSL_ELEMENT_VERSIONor, without it, from thedefault
ofindex.jsonin 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 extractno 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 asReceivedNumber; 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. Runxbsl 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 saidSentNumber. 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
Added
- Three more rules link to the documentation:
code/constant-unavailable,
yaml/document-date-requiredandyaml/soap-handler-nameopen their pages from the
Problems panel. (#163) - Two more rules link to the documentation:
code/module-type-unavailableand
code/qualified-member-unavailableopen 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