Commands
Reference of xbsl commands and options: checking sources, the LSP and MCP servers, the web panel, code templates.
This reference is generated from the tool itself – the same text xbsl --help prints, gathered on one page.
With no command xbsl checks the paths you give it: that is the default mode and its options are in the first block. The other commands address the rest of the toolkit.
The output language follows --lang, the XBSL_LANG variable, or the system locale.
No command: checking sources
Linter for 1C:Element sources (.yaml/.xbsl pairs).
usage: xbsl [paths] [options] (no command: check the sources)
xbsl <command> [options]
Arguments
| Option | Description |
|---|---|
paths |
files or directories to check |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--select ID/GROUP/TIER |
check only these rules (comma-separated or by repeating the flag: id, group – the part of the id before ‘/’ (e.g. style) – or a tier letter A/B/C/D) |
--ignore ID/GROUP/TIER |
exclude these rules (comma-separated or by repeating the flag: id, group or tier letter) |
--enable ID/GROUP/TIER |
add rules disabled by default ON TOP of the standard set (--select replaces the set); the value forms are the same |
--other-system SYSTEM |
another system the project names in its comments: comment/unknown-name does not judge a name next to it. Repeatable; several names comma-separated |
--as-ci [FILE] |
check by the rule set the project’s CI job runs: the --select/--ignore/--enable flags and the baseline come from .gitlab-ci.yml (or a GitHub workflow) next to the project; the file can be named explicitly |
--as-ci-job JOB |
which job of the CI file to take: a pipeline runs the linter more than once when the project checks a second tree (a translation) by a set of its own; a part of the name is enough (--as-ci-job english), implies --as-ci |
--baseline FILE |
suppress findings frozen in a baseline file (created by --write-baseline); new findings are reported as usual |
--write-baseline FILE |
instead of a report, write all current findings to a baseline file (freeze the debt; paths in the file are relative to its directory) |
--no-baseline |
do not look for a baseline file next to the sources (by default a discovered .xbsllint-baseline is applied on its own) |
--stale-baseline |
list the baseline entries that no longer suppress anything, with their reasons (together with --baseline) |
--prune-baseline |
list the stale baseline entries with their reasons and remove them from the file (together with --baseline; the file’s order and the counts of live entries are left alone) |
--fix |
apply unambiguous formatting and code fixes outside the baseline and report the remaining findings |
--jobs N |
processes for file-scope rules: 0 – auto (turns on for large runs), 1 – sequential, N – an explicit number of worker processes |
--list-rules |
print the list of rules (with their parameters and values) and exit; together with --select/--ignore the list narrows the way a run’s rule set does, and --rules-filter narrows it further; with --format json the same records are printed as data |
--rules-filter WORD |
narrow --list-rules. A word that IS a group (the part of an id before ‘/’) lists that group alone; any other word is looked for as an id substring or a word of the title or description - every i18n text registered under the rule’s id (the title and its message templates), in either language, plus the English docstring; docs/RULES.md is not read. Case-insensitive; combines with --select/--ignore |
--where |
show the engine location, interpreter and Element data (path, source, versions) and exit |
--element-version VERSION |
Element data version (default: env XBSL_ELEMENT_VERSION, otherwise the default in index.json of the data root) |
--data-dir DIR |
Element data root (a directory with index.json); also env XBSL_DATA_DIR |
--lang {ru,en} |
linter output language (default: env XBSL_LANG / system locale / ru) |
--format {text,json,codeclimate} |
output format: text (default), json (machine-readable: diagnostics + summary) or codeclimate (a GitLab Code Quality report – the merge request widget) |
--out FILE |
write the check report to a UTF-8 file without BOM instead of stdout (shell redirection on Windows adds a BOM that breaks JSON parsing); applies to every --format value |
--summary |
print the counts by rule instead of the findings: the rule, its files and its findings, with the totals of the run below |
--compare FILE |
compare the findings with the run saved in FILE and print only the difference: what appeared and what disappeared; this run is saved to the same file. The first run prints the counts, as --summary does |
--stdin |
check a single buffer from stdin (for editor integration); --filename sets the file kind and the reported path |
--index |
instead of checking, print a JSON project index (objects, methods, form components) for editor navigation; the path is the project root |
--filename NAME |
name of the buffer checked with --stdin (e.g. Form.xbsl); the extension sets the file kind |
--version |
show the version and engine location and exit |
Commands
| Command | Description |
|---|---|
lint <paths> |
check the sources – the same as with no command |
lsp |
LSP server for the editor |
mcp |
MCP server for the agent |
web |
web panel |
templates |
code templates: list, export, import, save |
baseline |
the baseline of accepted findings: add - append one rule’s findings with a reason |
extract |
generate the language data from an Element distribution (--dist) |
data-diff |
compare two data versions: what changed in the platform |
data-pack |
Pack data into a shared catalog |
data-export |
Export data into the legacy format |
data-verify |
Verify data integrity |
data-prune |
Find or remove unused shared objects |
translate |
translate the project sources into English spellings |
self-update |
update xbsl by unpacking the wheel from PyPI |
mcp-log |
the MCP server journal: when servers started, how they ended and who stopped them |
fold-comments |
fold the yaml comments into the description of the node the environment reads: by default only show the plan |
Command options: xbsl <command> --help. The options above apply to the check mode.
xbsl lsp
The xbsl LSP server (stdio)
usage: xbsl-lsp [-h] [--project-root PROJECT_ROOT] [--select SELECT] [--ignore IGNORE]
[--enable ENABLE] [--other-system OTHER_SYSTEM] [--as-ci [AS_CI]]
[--as-ci-job AS_CI_JOB] [--baseline BASELINE] [--templates TEMPLATES]
[--data-dir DATA_DIR] [--lang {ru,en}]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--project-root PROJECT_ROOT |
the source root (absolute or relative to the workspace folder) |
--select SELECT |
these rules only (comma-separated) |
--ignore IGNORE |
exclude these rules (comma-separated) |
--enable ENABLE |
enable rules on top of the default set |
--other-system OTHER_SYSTEM |
other systems the project names in its comments, comma-separated (for comment/unknown-name) |
--as-ci [AS_CI] |
judge by the rule set the project’s CI job runs: the --select/--ignore/--enable flags and the baseline come from the xbsl command of the pipeline file (the file can be named); with no pipeline file the settings’ set stands and the reason goes to stderr |
--as-ci-job AS_CI_JOB |
which job of the CI file to take (implies --as-ci); a part of the name is enough |
--baseline BASELINE |
the baseline file (absolute or relative to the workspace folder) – the findings listed there are suppressed; a missing file is not an error, it appears with the first exclusion |
--templates TEMPLATES |
the code templates file (absolute or relative to the workspace folder) – it extends the builtin set and replaces templates of the same name |
--data-dir DATA_DIR |
the Element data root (the folder with index.json) |
--lang {ru,en} |
the language of the diagnostics text |
xbsl mcp
The xbsl MCP server (stdio): linting, the Element documentation and metadata scaffolding as agent tools.
usage: xbsl mcp [-h]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
No flags: the server starts without parameters and talks over stdio. The diagnostics language follows XBSL_LANG (then the system locale, then ru). xbsl-mcp runs this server behind a supervisor, so the session outlives an update of the engine. Registration in Claude Code: claude mcp add xbsl – xbsl-mcp
xbsl web
The XBSL linter web interface
usage: xbsl-web [-h] [--host HOST] [--port PORT]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--host HOST |
the address (default 127.0.0.1) |
--port PORT |
the port (default 8771) |
xbsl templates
code templates: the builtin set and the user’s file (EDT export format)
usage: xbsl templates [-h] {list,export,import,save} ...
Arguments
| Option | Description |
|---|---|
list |
list templates (builtin and user) |
export |
export templates to an EDT-format file |
import |
merge an export into the user’s templates file |
save |
replace the user’s templates file (a JSON envelope from stdin) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
xbsl templates list
usage: xbsl templates list [-h] [--format {text,json}] [--file FILE]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--format {text,json} |
output format: text (default) or json |
--file FILE |
the user’s templates file (default .xbsl-templates.json); it extends the builtin set and overrides same-named templates |
xbsl templates export
usage: xbsl templates export [-h] --output OUTPUT [--custom-only] [--file FILE]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--output OUTPUT |
where to write the export |
--custom-only |
user templates only, without the builtin ones |
--file FILE |
the user’s templates file (default .xbsl-templates.json); it extends the builtin set and overrides same-named templates |
xbsl templates import
usage: xbsl templates import [-h] [--file FILE] source
Arguments
| Option | Description |
|---|---|
source |
an export (ours or from 1C:EDT) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--file FILE |
the user’s templates file (default .xbsl-templates.json); it extends the builtin set and overrides same-named templates |
xbsl templates save
usage: xbsl templates save [-h] [--file FILE]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--file FILE |
the user’s templates file (default .xbsl-templates.json); it extends the builtin set and overrides same-named templates |
xbsl baseline
Baseline: targeted edits of the accepted findings file.
usage: xbsl baseline [-h] {add} ...
Arguments
| Option | Description |
|---|---|
add |
append the new findings of one rule under the given paths to the baseline: order and other reasons stay untouched, a repeated call changes nothing |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
xbsl baseline add
usage: xbsl baseline add [-h] --rule ID/GROUP/TIER [--reason REASON] [--baseline FILE]
[--format {text,json}] [--jobs N] [--lang {ru,en}]
[--element-version VERSION] [--data-dir DIR]
paths [paths ...]
Arguments
| Option | Description |
|---|---|
paths |
files or directories whose findings to freeze |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--rule ID/GROUP/TIER |
the rule (a group or a tier - as in --select) whose findings to append; repeatable |
--reason REASON |
the reason for the exclusion: written on new entries and on entries without one, recorded reasons are never replaced |
--baseline FILE |
the baseline file; without the flag .xbsllint-baseline is looked up above the checked paths |
--format {text,json} |
output format: text - the list of what was added, json - {baseline, added, findings, written} |
--jobs N |
processes for file-scope rules: 0 – auto (turns on for large runs), 1 – sequential, N – an explicit number of worker processes |
--lang {ru,en} |
linter output language (default: env XBSL_LANG / system locale / ru) |
--element-version VERSION |
Element data version (default: env XBSL_ELEMENT_VERSION, otherwise the default in index.json of the data root) |
--data-dir DIR |
Element data root (a directory with index.json); also env XBSL_DATA_DIR |
xbsl self-update
update xbsl by unpacking the wheel from PyPI
usage: xbsl self-update [-h] [--version VERSION] [--stop-holders [{servers,all}]]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--version VERSION |
target version (default: the latest from PyPI) |
--stop-holders [{servers,all}] |
stop the servers holding the installation (the editor’s LSP server, MCP sessions) and update. Running xbsl commands of other sessions are named by pid and left alone; with the value all they are stopped too, and such a command ends without a result. Without the flag the holders are only named |
xbsl mcp-log
the MCP server journal: when servers started, how they ended and who stopped them
usage: xbsl mcp-log [-h] [--last LAST] [--json]
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--last LAST |
how many newest events to show (default 20; 0 - all) |
--json |
the events as JSON, an object per journal line |
xbsl fold-comments
fold the yaml comments into the description of the node the environment reads: by default only show the plan
usage: xbsl fold-comments [-h] [--write] [--all] [--format {text,json}] [--compact]
paths [paths ...]
Arguments
| Option | Description |
|---|---|
paths |
files and directories with element descriptions |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--write |
write the folded files; a file that fails the audit is not written |
--all |
apply the proposed moves too - the ones that may be read two ways |
--format {text,json} |
output format: text - the plan and the diff, json - for agents |
--compact |
briefly: the moves counted per file and the disputed ones instead of every move and the diff (with --format json - the short report meta_fold_comments gives with compact) |
Metadata scaffolding
These commands create and edit sources: objects, fields, routes, methods, forms, subsystems. Each prints its result as JSON and lints what it wrote; --dry-run computes the changes without touching the files.
xbsl new-project
create a project: Project.yaml + Project.xbsl + a subsystem; see also add-subsystem and new-object, which fill the new project
usage: xbsl new-project [-h] [--representation REPRESENTATION] [--version VERSION]
[--compatibility COMPATIBILITY] [--subsystem SUBSYSTEM] [--library]
[--dry-run]
root vendor name
Arguments
| Option | Description |
|---|---|
root |
the directory where the vendor/name pair will appear (usually .) |
vendor |
the vendor – the first part of the project namespace |
name |
the project name; its folder takes the same name |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--representation REPRESENTATION |
the project presentation in the interface (defaults to the name) |
--version VERSION |
the project version, three numbers (default 1.0.0) |
--compatibility COMPATIBILITY |
the platform version the project is compatible with (default 9.0) |
--subsystem SUBSYSTEM |
the name of the first subsystem (default Main) |
--library |
create a library (ProjectKind: Library) rather than an application |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl new-object
create a configuration object (yaml + a module by kind); see also add-field for its items and add-form for its forms
usage: xbsl new-object [-h] [--scope SCOPE] [--environment ENVIRONMENT] [--access ACCESS]
[--routes ROUTES] [--report REPORT] [--presentation PRESENTATION]
[--object-presentation OBJECT_PRESENTATION]
[--record-presentation RECORD_PRESENTATION] [--periodicity PERIODICITY]
[--base BASE] [--dry-run]
directory kind name
Arguments
| Option | Description |
|---|---|
directory |
the subsystem folder to create the object in |
kind |
the object kind in the project language: Catalog, Document, VirtualTable, …; an unknown kind lists what is available |
name |
the object name |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--scope SCOPE |
the visibility scope; the platform default is InSubsystem |
--environment ENVIRONMENT |
the environment – for CommonModule and Structure |
--access ACCESS |
the access method, in either language (e.g. PermitEveryone): for HttpService it goes to Permissions.Call, for data objects to Permissions.Default (individual rights are set by set-access) |
--routes ROUTES |
HttpService routes: “GET /, POST /, GET /{id}” |
--report REPORT |
report description (JSON: source, rows, columns, measures) |
--presentation PRESENTATION |
the element caption: written where the kind keeps it - into Presentation or, for a catalog, a document, a register, a constants set and a processing, into the Interface section; for a catalog, a document, a register and a periodic constants set it is the list caption, and --object-presentation gives the object one, --record-presentation the record one of an information register or a periodic set (without a caption the very first lint answers naming/presentation) |
--object-presentation OBJECT_PRESENTATION |
the object caption in the singular: written into Interface.Object.Presentation of a catalog, a document, an exchange plan and a settings storage, any other kind refuses it; with --presentation the new object passes naming/presentation |
--record-presentation RECORD_PRESENTATION |
the record caption in the singular: written into Interface.Record.Presentation of an information register or a periodic constants set, any other kind refuses it (the record caption of a set that is not periodic is what --presentation writes); with --presentation the new register or set passes naming/presentation |
--periodicity PERIODICITY |
the periodicity of a constants set: Day, Month, Quarter or Year (NonPeriodic is the default); a periodic set has a list, so --presentation writes the list caption and --record-presentation the record one; any other kind refuses it |
--base BASE |
the base type of an interface component (Group, ObjectForm<Goods.Object>); the InterfaceComponent kind only |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl add-field
add an item to a section of an object: an attribute, a dimension, a tabular section and more (field_kind lists the kinds); see also set-field-property for an item that already exists and set-localization for the texts of a LocalizedStrings string per language
usage: xbsl add-field [-h] [--type TYPE] [--tabular TABULAR] [--prop КЛЮЧ=ЗНАЧЕНИЕ] [--doc DOC]
[--dry-run]
yaml_path field_kind name
Arguments
| Option | Description |
|---|---|
yaml_path |
the yaml of the object to add the field to |
field_kind |
реквизит (attribute), измерение (dimension), ресурс (resource), значение (value), параметр (parameter), поле (field), константа (constant), свойство (property), событие (event), операция (operation), индекс (index), параметр-запроса (query-parameter), табличная-часть (tabular-part), строка (string), шаблон (template) |
name |
the field name |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--type TYPE |
the field type (default String, ComponentEvent for a component event; a standard attribute takes its class default); for the kind строка or шаблон the text in the default language, the key itself when omitted |
--tabular TABULAR |
tabular section name (the attribute is added into it) |
--prop КЛЮЧ=ЗНАЧЕНИЕ |
an item property (repeatable): DefaultValue=https://example.com, Presentation=Service address; a nested block by a dotted key: Autonumbering.Prefix=RQ |
--doc DOC |
the field description – its documentation comment: the ## lines at the head of the item, which the development environment shows and keeps |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl add-route
add routes to an existing HttpService; see also new-object --routes, which takes the routes at creation time
usage: xbsl add-route [-h] [--dry-run] yaml_path routes
Arguments
| Option | Description |
|---|---|
yaml_path |
the yaml of the HttpService to add the routes to |
routes |
the routes, comma-separated: “DELETE /{id}, GET /health” |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl add-method
add a method to an .xbsl module without breaking annotations; see also form-handlers for a stub bound to a component event
usage: xbsl add-method [-h] [--params PARAMS] [--returns RETURNS] [--annotations ANNOTATIONS]
[--after AFTER] [--before BEFORE] [--body BODY] [--dry-run]
module_path name
Arguments
| Option | Description |
|---|---|
module_path |
the .xbsl module to add the method to |
name |
the method name |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--params PARAMS |
parameter list as in the signature |
--returns RETURNS |
return value type |
--annotations ANNOTATIONS |
annotations separated by spaces, e.g. ‘OnServer InProject’ |
--after AFTER |
insert after this method |
--before BEFORE |
insert before this method |
--body BODY |
a one-line body instead of the // TODO stub |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl add-form
create the object’s forms and register them in Interface; see also form-tree for the tree of the new form and form-handlers for its handlers
usage: xbsl add-form [-h] [--name NAME] [--path PATH] [--forms FORMS]
[--card-min-width CARD_MIN_WIDTH] [--card-placeholder CARD_PLACEHOLDER]
[--overwrite] [--dry-run]
root
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--name NAME |
the object to create the forms for |
--path PATH |
the object’s yaml (instead of --name) |
--forms FORMS |
a subset object,list,list-cards,report,processing comma-separated (list-cards – a card list, instead of list; processing – a data processor form) |
--card-min-width CARD_MIN_WIDTH |
card grid column width (default 400, 250 with a photo) |
--card-placeholder CARD_PLACEHOLDER |
placeholder image expression, e.g. “Resource{Аккаунт.svg}.Link” |
--overwrite |
overwrite the forms if they already exist |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl add-subsystem
create a subsystem (a folder + Subsystem.yaml); see also new-object, which creates an object inside such a folder
usage: xbsl add-subsystem [-h] [--representation REPRESENTATION] [--no-auto-interface]
[--uses USES] [--dry-run]
parent_dir name
Arguments
| Option | Description |
|---|---|
parent_dir |
the folder to create the subsystem inside |
name |
the subsystem name |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--representation REPRESENTATION |
the subsystem presentation in the interface |
--no-auto-interface |
keep the subsystem out of the auto-interface |
--uses USES |
subsystem names, comma-separated |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl add-dependency
attach a library to the project (the Libraries section of Project.yaml); see also project-info for the libraries already attached
usage: xbsl add-dependency [-h] [--path PATH] [--dry-run] root vendor name version
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
vendor |
library vendor |
name |
library name |
version |
library release version, e.g. 2.0 |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--path PATH |
Project.yaml (when there are several projects under the root) |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl add-localization
add a translation file (the Localization section) to a LocalizedStrings element; see also set-localization, which writes the text of a string into every language
usage: xbsl add-localization [-h] [--dry-run] yaml_path language
Arguments
| Option | Description |
|---|---|
yaml_path |
the yaml of the LocalizedStrings element |
language |
the translation language: its name in either project language (Vietnamese) or the folder code (Vi); the languages and the compatibility mode each one needs come from the platform data |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl set-localization
write one localized string into every language at once: the element and its translations; see also add-localization for a language and add-field for the string itself
usage: xbsl set-localization [-h] [--value ЯЗЫК=ТЕКСТ] [--section SECTION] [--entries-file FILE]
[--entry КЛЮЧ=JSON] [--full-text] [--dry-run]
yaml_path [name]
Arguments
| Option | Description |
|---|---|
yaml_path |
the yaml of the LocalizedStrings element |
name |
the key of the localized string (one word) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--value ЯЗЫК=ТЕКСТ |
the text in one language: --value Russian=Text --value En=Text (repeatable) |
--section SECTION |
the section: Strings or Templates (default - the one the key already lives in, else Strings) |
--entries-file FILE |
many keys from a JSON or YAML file: {Key: {Language: Text}}; combines with name and with --entry |
--entry КЛЮЧ=JSON |
one more key of the batch: --entry Title={“English”:“Text”} (repeatable, combines with name and with --entries-file) |
--full-text |
with --dry-run: add the full text of the changed files next to the per-key summary |
--dry-run |
show the per-key summary (language, file, the value before and after) without writing anything; --full-text adds the full text of the files too |
xbsl set-field-property
set properties of an existing section item (a constant, an attribute, a property or an event of a component …); see also add-field to add one and rename-object to rename it
usage: xbsl set-field-property [-h] --prop КЛЮЧ=ЗНАЧЕНИЕ [--tabular TABULAR] [--dry-run]
yaml_path field_kind name
Arguments
| Option | Description |
|---|---|
yaml_path |
the yaml of the object whose item gets the properties |
field_kind |
реквизит (attribute), измерение (dimension), ресурс (resource), значение (value), параметр (parameter), поле (field), константа (constant), свойство (property), событие (event), операция (operation), индекс (index), параметр-запроса (query-parameter), табличная-часть (tabular-part) |
name |
the name of the item in the section |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--prop КЛЮЧ=ЗНАЧЕНИЕ |
an item property (repeatable): DefaultValue=https://example.com, Presentation=Service address; a nested block by a dotted key: Autonumbering.Prefix=RQ |
--tabular TABULAR |
tabular section name (the attribute is in it) |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl rename-object
rename an object (files, forms) and update references across the whole project; see also delete-object, which removes the same set of files
usage: xbsl rename-object [-h] [--new-presentation NEW_PRESENTATION]
[--old-presentation OLD_PRESENTATION] [--path PATH] [--dry-run]
root old_name new_name
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
old_name |
the object’s current name |
new_name |
the new name – both the files and the project-wide references are renamed |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--new-presentation NEW_PRESENTATION |
new Presentation/Title (default: the new name) |
--old-presentation OLD_PRESENTATION |
the old presentation (to replace in Title/Presentation) |
--path PATH |
the object’s yaml (when several objects share one name) |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl delete-object
delete an object whole (the yaml+xbsl pair, forms, the list row) and list the remaining mentions; without --apply - the plan only; see also rename-object, which renames instead of removing
usage: xbsl delete-object [-h] [--name NAME] [--path PATH] [--apply] [--dry-run] root
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--name NAME |
the object name in the project |
--path PATH |
the object’s yaml (instead of --name) |
--apply |
perform the deletion (without the flag the plan is printed: deletion is irreversible) |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl move-object
move an object into another folder of its project - a package of the subsystem (a new folder becomes a package), its root or another subsystem; adds the import of the new namespace where it is needed now and rewrites the full names; see also rename-package, which renames a package
usage: xbsl move-object [-h] [--dry-run] root yaml_path target_dir
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
yaml_path |
the yaml of the object to move; its forms, modules and list row move along |
target_dir |
the target folder - a subsystem or a package folder (a missing one is created) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl rename-package
rename a package of a subsystem: its folder with every file and the Subsystem::Package names in imports and full names across the project; see also move-object, which moves an object into a package
usage: xbsl rename-package [-h] [--dry-run] root package_dir new_name
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
package_dir |
the package folder (inside a subsystem folder) |
new_name |
the new package name - an identifier |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl move-resource
move a resource file or a folder into another folder of the same Resources folder (a missing folder is created): the Resource{…} keys and the image property values naming the moved files are rewritten, the lookups by a string are listed in the notes; see also rename-resource-folder, which renames a folder
usage: xbsl move-resource [-h] [--dry-run] root resource_path target_dir
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
resource_path |
a resource file or a folder inside the Resources folder of a subsystem or a package |
target_dir |
the target folder in the same Resources folder, or that folder itself |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl rename-resource-folder
rename a folder inside a Resources folder: the files move, the Resource{…} keys naming them are rewritten across the project, the lookups by a string are listed in the notes; see also move-resource, which moves a resource into a folder, and delete-resource-folder
usage: xbsl rename-resource-folder [-h] [--dry-run] root folder_dir new_name
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
folder_dir |
a folder inside the Resources folder of a subsystem or a package |
new_name |
the new folder name - it becomes a part of the resource key |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl delete-resource-folder
delete a folder inside a Resources folder with every file and list the Resource{…} keys and the lookups by a string naming them; without --apply - the plan only; see also rename-resource-folder, which renames instead of removing
usage: xbsl delete-resource-folder [-h] [--apply] [--dry-run] root folder_dir
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
folder_dir |
a folder inside the Resources folder of a subsystem or a package |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--apply |
perform the deletion (without the flag the plan is printed: deletion is irreversible) |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl set-access
set the object’s AccessControl.Permissions; see also object-info for the current rights and the set this kind has
usage: xbsl set-access [-h] [--name NAME] [--path PATH] [--default DEFAULT]
[--permission RIGHT=METHOD] [--calc-by CALC_BY] [--dry-run]
root
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--name NAME |
the object name in the project |
--path PATH |
the object’s yaml (instead of --name) |
--default DEFAULT |
the method for the Default right, in either language (e.g. PermitEveryone) |
--permission RIGHT=METHOD |
the method for a single right (repeatable), in either language, e.g. Read=PermitEveryone |
--calc-by CALC_BY |
ComputePermissionsBy fields, comma-separated (required for PermissionsComputedForEachObject) |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl object-info
object summary: attributes, tabular sections, forms, namespace
usage: xbsl object-info [-h] [--name NAME] [--path PATH] root
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--name NAME |
the object name in the project |
--path PATH |
the object’s yaml (instead of --name) |
xbsl project-info
sources overview: projects, subsystems, objects
usage: xbsl project-info [-h] [--kind KIND] [--subsystem SUBSYSTEM] [--package PACKAGE]
[--project PROJECT] [--brief] [--reference]
root
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--kind KIND |
only the objects of this kind |
--subsystem SUBSYSTEM |
only the objects of this subsystem (its packages included) |
--package PACKAGE |
only the objects of this package: the path under the subsystem or Subsystem::Package; a nested package belongs to the one it lies in |
--project PROJECT |
walk only the projects of this name (Name or Vendor::Name) or the project in this folder – a repository root holds more than one project |
--brief |
no lists of objects and packages: the counts by kind and the reference sections |
--reference |
add the reference sections (object kinds, section kinds, access methods) – about 4 KB, independent of the sources |
xbsl resource-references
find the places that name a resource file or a folder: Resource{…} keys, image property values and lookups by a string; the answer is JSON with the file, the range and the line of each place; see also move-resource, which moves a resource and rewrites its keys
usage: xbsl resource-references [-h] [--limit LIMIT] root resource_path
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
resource_path |
a resource file or a folder inside the Resources folder of a subsystem or a package |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--limit LIMIT |
list at most N places in references; total counts every place, and hasMore: true with a line on stderr says the list is cut (default: 100, as in meta_resource_references) |
xbsl unused-resources
find files under Resources folders not reached by static references, bounded computed paths, or links from reached JSON/CSS/HTML/SVG/JS files; results are review candidates and the command deletes nothing
usage: xbsl unused-resources [-h] [--include-protected] [--limit LIMIT] root
Arguments
| Option | Description |
|---|---|
root |
the project root – the folder with Project.yaml (usually .) |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--include-protected |
also return files protected by bounded dynamic or uncertain paths |
--limit LIMIT |
return at most N items in each list; totals stay complete (default: 100) |
xbsl localization-info
the languages and translations of a LocalizedStrings element (candidates for add-localization; the texts are written by set-localization)
usage: xbsl localization-info [-h] yaml_path
Arguments
| Option | Description |
|---|---|
yaml_path |
the yaml of the LocalizedStrings element |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
xbsl form-tree
interface component tree (nodes, slots, properties with spans); see also form-edit for edits by node id and form-handlers for their handlers
usage: xbsl form-tree [-h] [--at OFFSET] [--node NODE] [--name NAME] [--max-depth LEVELS]
[--no-properties] [--brief]
yaml_path
Arguments
| Option | Description |
|---|---|
yaml_path |
the form yaml |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--at OFFSET |
instead of the tree, return the node at a file offset (cursor sync) |
--node NODE |
the subtree of this node instead of the whole form (a path from the tree or a component Name unique in the form) |
--name NAME |
the subtree of the component with this Name; several matches come in “roots” |
--max-depth LEVELS |
how many levels to unfold (0 - no limit); a cut node gets childrenOmitted |
--no-properties |
no property records - names and ids only, plus propertyCount |
--brief |
the skeleton: id, kind, type, name and slot per node - no spans, no properties |
xbsl form-edit
form-designer operation: a pinpoint edit of an interface component’s yaml. A node is given by its path from the tree or by a component Name unique in the form; see also form-tree for the node paths the edits address
usage: xbsl form-edit [-h] [--parent PARENT] [--slot SLOT] [--type TYPE] [--name NAME]
[--node NODE] [--nodes ID[,ID...]] [--new-parent NEW_PARENT]
[--container CONTAINER] [--new-name NEW_NAME] [--before BEFORE]
[--after AFTER] [--key KEY] [--value VALUE] [--value-yaml VALUE_YAML]
[--fragment FRAGMENT] [--fragment-file FILE] [--new-type NEW_TYPE]
[--dry-run]
yaml_path operation
Arguments
| Option | Description |
|---|---|
yaml_path |
the form yaml |
operation |
insert, insert-fragment, move, move-nodes, remove, remove-nodes, wrap, unwrap, duplicate, rename, set-property, reset-property, property-add, property-retype, property-remove, property-rename |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--parent PARENT |
container node: a path or a component Name (insert/insert-fragment) |
--slot SLOT |
children slot: Content, Pages, Columns, … (insert/move) |
--type TYPE |
Type of the new component (insert) or property (property-add) |
--name NAME |
Name of the new component (insert), the wrapper (wrap) or a Properties-section property (property-*) |
--node NODE |
operation node: a path or a component Name unique in the form (move/remove/wrap/unwrap/duplicate/rename/set-property/reset-property) |
--nodes ID[,ID...] |
nodes of a batch operation (move-nodes/remove-nodes): paths or component names, comma-separated or by repeating the flag; order does not matter |
--new-parent NEW_PARENT |
new container: a path or a component Name (move/move-nodes) |
--container CONTAINER |
Type of the wrapper container (wrap) |
--new-name NEW_NAME |
the node’s new Name (rename) or property’s (property-rename); for rename without the flag, Name is removed |
--before BEFORE |
sibling (a path or a Name): insert/move BEFORE it |
--after AFTER |
sibling (a path or a Name): insert/move AFTER it |
--key KEY |
node property name (set-property/reset-property) |
--value VALUE |
scalar value or binding (set-property) |
--value-yaml VALUE_YAML |
a composite value as a ready yaml fragment (set-property) |
--fragment FRAGMENT |
a yaml block of one component or several – a “-” list or blocks in a row (insert-fragment) |
--fragment-file FILE |
a file with a component’s yaml block (insert-fragment, instead of --fragment) |
--new-type NEW_TYPE |
the property’s new Type (property-retype) |
--dry-run |
show the changes (with file texts) without writing anything |
xbsl form-handlers
handlers of the component’s paired module: a method list or a handler stub; see also form-tree for the node ids and add-method for a method outside any event
usage: xbsl form-handlers [-h] [--node NODE] [--key KEY] [--method METHOD] [--signature SIGNATURE]
[--dry-run]
yaml_path
Arguments
| Option | Description |
|---|---|
yaml_path |
the form yaml |
Options
| Option | Description |
|---|---|
-h, --help |
show this help message and exit |
--node NODE |
node: a path or a component Name (handler creation; without --node/--key – the module’s method list) |
--key KEY |
node event key: OnClick, AfterCreate, … |
--method METHOD |
handler method name (default <Name узла><Key>; an existing method – only the binding in yaml) |
--signature SIGNATURE |
event signature from the ui schema, e.g. “(Button, OnClickEvent)->ничто” (without the flag it is looked up in the local data) |
--dry-run |
show the changes (with file texts) without writing anything |