Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Flyworks NPL ToolboxNew to Visual Studio Code? Get it now.
Flyworks NPL Toolbox

Flyworks NPL Toolbox

airbus-avionics-software

|
2 installs
| (0) | Free
Toolbox for the New Product Line -- a.k.a. New Way Of Working : Syntax highlight, Navigation ...
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

TL0097 - VSCode NPL Toolbox

How-To Install 🧩

  • Download here
  • Drop the VSIX file on VSCode Extension ◳ side-panel
✈️ Other Airbus-Recommended Extensions

⚠️ Always install from trusted (☑️) publisher

  • TITV-runner + X11: To Run Integration Test
  • AsciiDoc preview
  • GIT Graph: Visual commits tree
  • HTML report preview: Useful to preview tests results directly
  • XLSM Editor: Work with REQtify, but fail to open Excel 2021 generated XLSM
  • ROBOT Language : You'll still need TITV plugin to run tests
  • C/C++ Intellisense: ⚠️1.23.5+ fail in RHEL7⚠️ (very slow + RAM hungry) only usefull for GDB
  • Hex Editor: Display/Edit any binary file (shopzone, payload, dump)
  • PlantUML editor: Not a VSCode Extension, But only easy editor that do not need an external server

Features

Click on the ➤ for details:

🧭 NPL Languages Navigation via Ctrl+Click

In addition to Syntax Highlighting, Symbols are indexed to offer

[!TIP]
You can re-index anytime from the status bar {} icon

  • Ctrl + Click Navigation between declaration/implementation
    image
  • Callgraph by REQ/Service/Global in DCSL
    image
  • Dependency Graph for CoDDa machine
    image
  • Symbol Outline (in Explorer tab)
    image

This Feature can also be used via a code-cli alias (see definition in the "Command line interface" chapter)

code-cli npl.language.parse codda > ast.json
code-cli npl.language.parse codda | jq '.[].entries[].name'
code-cli npl.language.parse codda graph | jq -r | dot -Tpdf
💭 Tracability/Languages Tooltip via Mouse-over

Symbols indexing can also offer quick overview on a Symbol or Requirement

image

📊 XLSM - JSON bi-directional converter

Collaborate, Merge and resolve tracability matrixes in a more textual diff-friendly format

image

You can also convert to/from JSON-folder if you prefere a per-documents JSON file structure.

This Feature can also be used by git (without vscode) to display diff between 2 XLSM.

To setup, declare in $HOME/.gitconfig:

[diff "excel"]
    binary = true
    textconv = /home/dpmgr/tools/QJS/qjs --std $HOME/.vscode-server/extensions/airbus-avionics-software.npl-*/cli.js npl.xlsm.parse

and in your project .gitattributes :

*.xlsm diff=excel
*.xlsx diff=excel

This Feature can also be used via a code-cli alias (see it declaration in the "Command line interface" chapter)

code-cli npl.xlsm.parse      /path/to/src/spec/C01234_RAM-HLR.xlsm > RAM-HLR.json
code-cli npl.xlsm.parse      /path/to/src/spec/C01234_RAM-HLR.xlsm | jq .matrix[].Text
code-cli npl.xlsm.toFolder   /path/to/src/spec/C01234_RAM-HLR.xlsm
code-cli npl.xlsm.fromFolder /path/to/src/spec/C01234_RAM-HLR/
code-cli npl.prf.update      /path/to/src/spec/C01234_RAM-HLR.xlsm

This alias can also be used to display/compare XLSM from various sources/branches:

# get the file from "master" ref
git show master:src/spec/C00048_RAM-HLR.xlsm > tmp.xlsm
# show the diff using vimdiff
vimdiff <(code-cli npl.xlsm.parse tmp.xlsm) <(code-cli npl.xlsm.parse src/spec/C00048_RAM-HLR.xlsm)
# bonus: use sed to trim trailing \n
vimdiff <(code-cli npl.xlsm.parse tmp.xlsm | sed 's/ *\\n *"/"/') <(code-cli npl.xlsm.parse src/spec/C00048_RAM-HLR.xlsm | sed 's/ *\\n *"/"/')

[!CAUTION]
XLSM to JSON do not preserve style/color.
XLSM to JSON do not modify cells values, so trailling whitespace are kept, but Excel trim them uppon XLSM save.

[!WARNING]
This extension do not offer JSON spreadsheet editor, since Excel (or this VSCode extension) can already edit XLSM-converted JSON.

[!NOTE]
You can replace XLSM with JSON in your git tree for easier workflow, but XLSM are still the official format for publish and reqtify input/output

📜 JSON (ConfGen, RAM ...) Validator & Helper via JSON Schemas

Schemas found in /external/ are automatically enforced to ConfGen*.json files.

If none have been found (for example if no /external/ existed when VSCode started), you can manually reload from the status bar {} icon.

image

You can benefit from automatic validation, autocompletion, value check, ...

image

Thanks to JSON Schema, REQ engineering rules can by applied to CRAM/RAM/DRAM JSON files to detect rules violation, bad attributes ...

image image

🐛 TITV debug via ms-vscode.cpptools (1.23.4) GDB integration

This allows to connect VSCode to the running BSWtool GDB for inline code steppin, variable details, stackTrace, assembly view and much more

image

📚 Review Database Generation/Refresh

Hash all requirements from a *RAM*.xlsm file (and optionaly /src/verif/integration/* files) into a sqar/prf/*.reqs.json database file.

If the destination *.reqs.json already exist:

  • Created XLSM REQs are append to the JSON
  • Updated XLSM REQs are refreshed in the currentHash JSON field (other fields are kept untouched)
  • Deleted XLSM REQs are deleted from JSON

[!NOTE]
Generated Database support bidirectional JSON<->XLSM convert, so you can edit it with Excel

image

🔒 Safe Artifactory Authentication via Gradle Environment

Gradle can read project values from Environment variables (examples: ORG_GRADLE_PROJECT_artifactory_password) instead of .gradle/gradle.properties file. This allows to have password-less gradle.properties since VSCode can forward them on its terminal from it SecretStorage.

image

[!WARNING]
This forwarding method shall be adapted to your other clients (MobaXTerm, 'ssh', ...) if you want them to work on artifactory-dependant build steps (f_o_i ...).

🔍 JSON manipulation/query via JQ

Using JQ, you can query/edit any current JSON file attribute using the 🔍 top menu icon: image

The query result can be injected back into the JSON file, using the top "replace" button (next to the x "close" button).

You can then, add this query snippets to the list of pre-configured 🛠️ npl.jqSnippets to be displayed as grey menu in the editor. image

JQ Tips : merge a .userdata.json + .cpntdata.json into .matrix.json:

jq --argfile user src/spec/C00119_RAM-HLR/AD.userdata.json '. as $current | ([$user|paths] - [$current|paths]) as $new | reduce $new[] as $p ($current; setpath($p; $user|getpath($p))) ' src/spec/C00119_RAM-HLR/AD.cpntdata.json > src/spec/C00119_RAM-HLR/AD.matrix.json
🔗 Jira Auto-Links

Offer clickable jira link from any output in the terminal

image

Note: This won't make other extension (ex: gitlens) commit link clickable.

Refere to your extension documentation. Here is an example to enable autolick for gitlens extension:

"gitlens.autolinks": [
    { "prefix": "C00215-", "url": "https://cisas.eu.airbus.corp:8343/1V32_jira/browse/C00215-<num>" },
    { "prefix": "C00216-", "url": "https://cisas.eu.airbus.corp:8343/1V32_jira/browse/C00216-<num>" }
]
🛠️ Fully Configurable via GUI

All features can be customized to your needs. Use the Extension > Extension settings menu.

image

🔁 Always Up-to-date via Jenkins

All commits are built and deployed so that users will be notified to all users at VSCode boot. This ensure up-to-date error-reporting. Note that you can also manualy check from update from the extension menu:

image

💻 Command line interface via QJS

Using the QuickJS engine, you can run the cli.js wrapper to execute some VSCode command without VSCode.

Simply define this alias in your .kshrc or .bashrc or .zshrc profile file:

declare NPL=$(echo $HOME/.vscode-server/extensions/airbus-avionics-software.npl-*|awk '{print $1;}')
alias code-cli="/home/dpmgr/tools/QJS/qjs --std $NPL/cli.js"

Source this profile file and the following command shall now list all possible actions:

code-cli
🤖 On-premise AI assistant

Using the Llama.cpp LLM inference engine, you can ask via the 🤖NPL AI status icon or via the 💡 editor icon on the left side. Use vscode lm API, which currently vendor-locked once available.

image

Need something more ? Request a feature

Contribute

To debug or contribute to this project:

  • Clone and open this repos in VSCode
  • Open any .js/.mjs file (e.g. extension/main.js)
  • In top vscode menu select : Run > Debug > VSCode Extension
  • A new window with your current code will open
  • Don't hesitate to add breakpoint and use the debug console (first window)
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft