Skip to content

Feature: Rename OpenFastTrace specification item IDs #60

Description

@redcatbear

Description

Support IntelliJ's rename refactoring for OpenFastTrace specification item IDs. IDs, not names, since that is what is used in references.

When a user renames an OFT item such as req~old-name~1, the plugin should update the item declaration and all indexed references to that ID across supported OpenFastTrace files and source-tag usages.

Scope

  • Support rename from the declaration of an OFT specification item.
  • Support rename when invoked from a reference or usage of an OFT item ID.
  • Update references in supported specification documents, including links such as Covers: and Depends:.
  • Update references in supported source-tag contexts, for example coverage markers like [impl->req~old-name~1].
  • Show the standard IntelliJ rename preview and usages so the user can review the affected files before applying the change.
  • Validate conflicts when the target ID already exists.

Motivation

The plugin already supports navigation and completion for OFT item IDs, but ID changes still need to be done manually. That is slow and error-prone, especially when an item is referenced from multiple specification documents and source files.

Rename refactoring would make common maintenance tasks, such as fixing typos or aligning naming, much safer and more efficient while keeping the trace model consistent.

Technical Notes

  • This should reuse the plugin's existing symbol resolution and navigation/indexing infrastructure.
  • Renaming in the editor should work as refactoring "rename" works: inline in the editor, updating all instances of the renamed ID at in parallel
  • The refactoring should update only actual OFT ID declarations and references, not arbitrary matching text.
  • The main use case is non-semantic renames, such as correcting or improving an ID name. Semantic changes that intentionally break trace links can remain a manual workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureProduct feature

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions