vscode-ajsbutler

The vscode-ajsbutler extension offers a convenient way to display definition
information for JP1/AJS3 from Hitachi in a human-readable format.
Features
- Displays JP1/AJS3 definition information in an easily readable format.
- Set the editor’s language mode to ‘jp1ajs’ to view the formatted
definition items.
- Switch the editor to enable a list-style display of the information.

- Select which items to display in the unit list.

- View unit definitions.

- Save data in CSV format.
- Switch the editor to enable a flow-style display of the information.

- Highlights the current node, ancestor path, and root jobnet more clearly in
the flow viewer.
- Supports web extensions.
Recent Updates
- Flow viewer now supports inline nested jobnet expansion, current-scope flow
search, and list/flow bridge navigation.
- Flow viewer visuals and layout behavior are more stable in both desktop and
web hosts.
Extension Settings
This extension does not require any specific configuration settings.
Usage
To use this extension:
- Install the extension.
- Set the editor’s language mode to ‘jp1ajs’ to view the formatted
definitions.
- Switch the editor to enable either a list-style or flow-style display.
Development
This repository uses Specification-Driven Development (SDD) as the standard
process for non-trivial changes.
- SDD workflow and document roles:
docs/specs/README.md
- Agent-facing repository rules and routing:
AGENTS.md
- Durable behavior contracts:
docs/requirements/use-cases/
- Copilot CLI entry point:
.github/copilot-instructions.md
- Codex workflows:
.codex/skills/
Keep README as an overview and command reference. Detailed development rules,
approval gates, feature artifact responsibilities, and agent routing live in
the documents above.
Browser-based extension testing uses @vscode/test-web, which currently
requires Node.js 20 or later.
If you manage Node with nodebrew, switch to a Node 20 release before running
browser tooling:
nodebrew install-binary v20.19.0
nodebrew use v20.19.0
hash -r
corepack enable
pnpm install
pnpm exec playwright install chromium-headless-shell
After switching, you can run:
pnpm run qlty
pnpm run test:full
pnpm test
pnpm run test:web
pnpm run build
ANTLR parser generation is explicit. Normal build and test commands consume
the committed parser artifacts in src/generate/parser. When changing
src/antlr/*.g4, ANTLR command options, or the generator version, run:
pnpm run antlr4ts
Then commit any generated parser artifact changes with the grammar change.
Desktop and web test commands are compatible from a clean checkout:
pnpm test prepares the desktop extension and editor bundles, compiles
tests, then runs the desktop extension tests.
pnpm run test:web prepares the web extension and editor bundles, compiles
tests, then runs the web extension smoke tests.
pnpm run test:full prepares all development bundles and compiled tests
once, then runs both desktop and web test runners.
The sample/ directory contains reusable JP1/AJS definition files for parser,
normalization, unit-list, and flow-graph regression tests. Prefer those shared
fixtures over ad hoc large inline definitions when adding broader coverage.
For manual browser-side verification during development, use the VS Code
launch configuration Launch Extension(web) in .vscode/launch.json.
pnpm run test:web runs the extension test suite against VS Code for the Web
in headless Chromium.
pnpm run test:full prepares development bundles and compiled tests once
before running both desktop and web extension tests.
GitHub Actions also runs pnpm run lint:md, pnpm run build,
pnpm run test:compile, pnpm run test:desktop:run, and
pnpm run test:web:run on pull requests. The workflow caches Playwright
browser downloads while still running the Playwright install command, so cache
misses remain valid.
For AI Agents
Agent development rules are centralized in AGENTS.md and
docs/specs/README.md. README intentionally stays at overview level to avoid
duplicating the SDD workflow.
Telemetry
This extension collects telemetry data to improve the experience of using this
extension with VS Code. We collect anonymous operational metadata such as
extension lifecycle, command usage, viewer readiness or close events, and
anonymous viewer action and search outcomes such as CSV export, navigation, or
no-match searches, anonymous diagnostic categories and hover outcomes, and
coarse performance buckets for operations such as parsing, unit-list build,
flow graph build, and CSV export. We do not collect names, addresses, paths,
definition contents, diagnostic messages, hover token text, search text,
commands, server names, credentials, or other personal identifiers. The
extension respects the telemetry.enableTelemetry setting. You can learn more
about that setting in our FAQ.
License
MIT