Treqs Vscode
T-Reqs is a text-based requirements management solution based on the git version control system. With it's success and rising in recent years, we identified a need for the tool's VS Code extension that includes graphical interface enhancements to provide a more user-friendly experience. The goal of this project is to build a VS Code extension with a GUI for T-Reqs.
This extension is currently in early development (Cycle 1). Bugs and issues may occur and it is not yet suited for production use.
Table of Contents
Project status
This extension is in early development. Bugs and issues may occur and it is not yet suited for production use.
Description
T-Reqs has proven to be a suitable tool for managing requirements in agile and large scale projects in recent years. Howvwer, its lack of a user-friendly interface has created obstacles for broaders adoption and users who are not familiar with the command line interface.
With this project, we bring T-Reqs functionalities in a VS Code extension as well as we offer a user-friendly GUI while we keep the strendths of the original tool.
At the current state, the extension has the following features:
- Generate UIDs automatically
- Visualize requirement structures
- Users can interact with T-Reqs through an extension interface
- View referenced elements inline via inlay hints
- Navigate requirements via "Go to Definition"
- Quick create and edit <treqs-element>
as well as <treqs-link>
tags via autocompletion
- A dedicated sidebar for custom webview panel
- Command palette that has all T-Reqs commands
- Visualize T-Reqs elements using a dynamic table view with editable fields
- A metadata (ttim.yaml
) for requirement modeling
- Using Tree-sitter for fast and robust parsing
- Create T-Reqs elements
- Create T-Reqs links
- List T-Reqs elements
- Automatically test & publish extension in pipeline
- Create Tree-sitter grammar for the T-Reqs markup language
- Create Tree-sitter parser
- Show diagnostic messages for errors in T-Reqs elements and links
- Parse ttim.yaml
file into T-Reqs model for error checking and suggestions
- Show documentation while typing tag
- Show entire <treqs-element>
information while hovering on target ID
Cycle 2 daft plan:
- Reinstall python packages on extension update (#70)
- Add duplicate element ID check to diagnostics (#69)
- Make diagnostics project-wide (#68)
- Create other method for creating links (#66)
- Modify tree-sitter-treqs grammar (#53)
- Fix linking target ID by using parser (#47)
- Syntax highlight LSP (#44)
- Automatically save treqs list changes (#43)
- Add open treqs terminal command (#42)
- Add file tree commands (#41)
- Allow custom path for `.treqs-ignore` (#38)
- Allow creation of multiple treqs elements at once (#37)
- Initialize treqs model when a new workspace/project is opened (#34)
- Setup treqs project command (#24)
- Optimise extension package (#??)
- Add main use-cases (#61)
Requirements documentation
The requirements for the project are documented in the GitLab wiki.
Badges
Visuals
Usage
DEMO video for current available frature
Some screenshots of the extension in action:

Installation
Requirements:
- Python (>= 3.8.0)
- VS Code (>= 1.0.0)
You can use npm to install the dependencies.
npm install
dependencies that have to be installed manually, also add a Requirements subsection.
Support
Contact the authors team for support.
Roadmap
Cycle 1: 15/03/2025 - 25/04/2025
Cycle 2: 28/04/2025 - 06/06/2025
Contributing
[TODO]
To be discussed.
Authors and acknowledgment
Created by:
Piotr Ostrowski
Yingchao Ji
Linh Pham
Shiyao Xin
János Litkei
Henrik Lagrosen
Supervisor: Eric Knauss
License
Licensed with the MIT License.
Publish
Automatically
Create a semantic tag in the format vX.Y.Z
in the GitLab repository. This will trigger the GitLab pipeline to publish the extension to the marketplace automatically. The version code needs to be higher than the last version in the marketplace.
Manually
npm i
# In the node_modules directories in client and server, there is now a symlink to treqs-ts which will prevent vsce package from working. You have to remove them and replace them with the real treqs-ts package.
npx vsce login treqs-vscode
npx vsce package --follow-symlinks --no-git-tag-version -o extension.vsix
# Publish as pre-release
npx vsce publish --pre-release --follow-symlinks --no-git-tag-version -i extension.vsix
More info can be found in the VS Code guide