Skip to main content

VS Code extension

The VS Code extension starts argon-analyzer for each Argon project you open, shows the GUI in a panel beside your source, and adds the Argon commands to the Command Palette. A project is the nearest directory above a .ar file that contains lib.ar.

Install​

The extension is built from a checkout of the Argon repository. Building it also builds the GUI as WebAssembly, which needs the wasm32-unknown-unknown Rust target and a wasm-bindgen CLI matching the wasm-bindgen version in Cargo.lock. From the root of the checkout:

rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --locked --version "$(cargo pkgid wasm-bindgen | sed 's/.*@//')"
cd plugins/vscode
npm ci
npx @vscode/vsce package
code --install-extension argon-*.vsix

If code isn't on your PATH, install the .vsix file from the Extensions view instead: open its … menu and choose Install from VSIX….

The extension runs argon-analyzer from your PATH. To use another executable, set argon.analyzer.path.

The GUI panel​

Argon: Focus GUI opens the GUI in a panel beside the source, and opening a cell opens it too. The panel keeps running in the background when you switch tabs, and closing it disconnects the GUI.

To show the GUI in a window of its own instead, as argone --terminal does, set argon.gui.location to window and run Argon: Restart Analyzer. That window needs argone on your PATH.

Commands​

CommandDescription
Argon: Focus GUIFocus the GUI, opening its panel if it isn't open. Ctrl+Backslash in an Argon file.
Argon: Focus SourceFocus the Argon source you last used, opening it beside the GUI if it isn't visible. Ctrl+Backslash in the GUI.
Argon: Open CellCompile and show a cell, such as top(100.).
Argon: New CellInsert an empty cell in the current module and open it.
Argon: Rename CellRename the open cell and every reference to it.
Argon: Place InstancePlace an instance of a cell from the GUI, in the layout view.
Argon: Place Schematic InstancePlace a schematic instance of a cell from the GUI, in the schematic view.
Argon: Place DevicePlace a device from the GUI, such as Nmos "nch", w=1., l=0.15. See placing devices.
Argon: Show DiagnosticsOpen the Problems panel.
Argon: Follow Agent EditsMake the current editor group follow agent edits. Argon: Stop Following Agent Edits turns it off.
Argon: Reload ConfigurationReload the configuration file and apply it to the GUI.
Argon: Set ConfigurationSet or unset a configuration key for this session, such as agent.approval "always". Values use TOML syntax.
Argon: Save ConfigurationWrite the current configuration to a path, or to the default location.
Argon: Open LogOpen the Argon log.
Argon: Restart AnalyzerRestart the current project's analyzer.

Commands that take an argument open a prompt. For Open Cell, Place Instance, and Place Schematic Instance, the prompt lists completions from the open project, the same ones the Neovim plugin offers. Choose one with the arrow keys and Enter to insert it, or choose Run to run the command.

Focus handoff​

Ctrl+Backslash switches focus between the source and the GUI. When the GUI opens a command, such as placing an instance, the prompt opens in VS Code. Focus returns to the GUI once you run or cancel it.

How edits flow​

VS Code owns the source. Edits made from the GUI or by an agent are applied to the open document, so they mark it modified and can be undone. Undo and redo in the GUI revert and reapply the GUI's edits to the document it last edited; once that document has changed in other ways, they use VS Code's own undo and redo.

A file an agent creates opens as an unsaved document and is written when you save it. When a file changes on disk, VS Code reloads it if it has no unsaved changes; otherwise the analyzer warns you.

Agent edits​

Each agent edit briefly highlights the text it wrote. With agent.approval = "always", VS Code shows each edit as a diff and asks before applying it.