The OpenFastTrace IntelliJ Plugin adds editor and navigation support for OpenFastTrace (OFT) artifacts directly in JetBrains IDEs based on the IntelliJ Platform.
It helps users work with OFT specification items and trace links in the same environment where they already edit code and documentation.
This repository contains the plugin implementation, tests, and OpenFastTrace-based product documentation.
SonarCloud status:
User Guides
- OpenFastTrace IntelliJ Plugin User Guide
- OpenFastTrace User Guide
- OpenFastTrace in IDE Help Action
- OpenFastTrace IntelliJ Plugin Demo
News and Discussions
Information for Contributors
Use an IntelliJ Platform IDE and install/build this plugin to get OFT support while editing project files.
For installation and workflow instructions, see the OpenFastTrace IntelliJ Plugin User Guide.
The plugin currently focuses on:
- syntax highlighting for OFT items in supported files
- navigation support (
Go To Declaration, symbol search, and related navigation paths) - completion for existing specification item IDs while editing
Covers:entries in supported specification documents and coverage-tag targets in files supported by the OpenFastTrace Tag Importer - bundled OFT live templates for common specification items, including a scenario template
- project-wide or selected-resource OFT tracing from
Tools | OpenFastTrace | Trace Projector through custom OpenFastTrace run configurations - clickable specification item IDs directly from the trace output window, including generated IDs created from coverage tags
- IntelliJ Test Runner UI output for OpenFastTrace traces by default, grouped by source file, specification item, and trace link
- quick access to the OpenFastTrace user guide from the IDE help menu
For expected behavior and scope details, see:
Clone this repository and build the plugin with Gradle:
./gradlew buildFor manual IDE testing, launch a sandbox IDE with the plugin:
./gradlew manualTestIdeAfter the sandbox IDE opens a project, configure trace scope under Settings | Tools | OpenFastTrace. By default, Trace Project scans the whole opened project. If you switch to selected-resource tracing, the plugin includes IntelliJ source roots, IntelliJ test roots, and one default additional project-relative path entry, doc/, until you change it. Additional files or directories are entered one per line.
You can create and run a dedicated OpenFastTrace run configuration from the IDE's run/debug toolbar. The plugin traces the configured inputs in the background and shows the result in IntelliJ's Test Runner UI by default. The result tree groups source files, specification items, and trace links with pass/fail status and navigation back to source.
Run configurations can select plain text output instead. In that mode, the plugin shows the text report in an IDE output tab with ANSI colors preserved. You can click specification item IDs in the report to jump to their declarations, including source-side items generated from coverage tags.
The plugin also bundles an OpenFastTrace live-template group under Settings | Editor | Live Templates. Use abbreviations such as feat, req, dsn, and scn in a supported editing context, then press Tab to insert an OFT item skeleton. The scn template inserts a scenario stub with placeholders for Given, When, Then, and the covered requirement. While the caret is still in a template's covered-item field, use basic completion to select an existing specification item ID from the project index.
You need a JetBrains IDE based on the IntelliJ Platform (for example, IntelliJ IDEA Community Edition) to run the plugin.
To build and test from source, use the project’s configured Gradle wrapper and a compatible JDK.
To package the plugin with generated Marketplace change notes, install Pandoc
on PATH or set PANDOC to the executable path.
The plugin logo asset src/main/resources/META-INF/pluginIcon.svg and the run-configuration icon asset src/main/resources/icons/openfasttrace.svg are derived from the OpenFastTrace logo artwork in this repository and use the same Apache 2.0 license as the project.
To understand product intent and implementation scope, start with:
To run the local pre-release checks, including automated tests and IntelliJ Plugin Verifier compatibility checks:
./gradlew check verifyPluginTo check for newer dependency, Gradle plugin, and Gradle wrapper versions:
./gradlew --no-configuration-cache --no-parallel dependencyUpdates -Drevision=releaseAfter intentionally changing dependency or Gradle plugin versions, refresh the committed Gradle lock file:
./gradlew --write-locks dependenciesMarketplace-facing descriptor metadata is maintained in doc/marketplace, with Pandoc generating change-note HTML from the active Markdown entry under doc/changes.
Example OFT files for manual testing are available under examples/ in this project.
For a guided live demonstration, use the script in doc/demo/plugin-demo.md with the isolated example project in doc/demo/example.
This project is licensed under the Apache 2.0 license.
