Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
06e2e50
feat: add initial LSP client extension
jimisola Mar 17, 2026
dec5e49
fix: resolve TypeScript compile errors
jimisola Mar 17, 2026
614d6a6
fix: add missing test infra, launch config, and error handling
jimisola Mar 18, 2026
a017994
docs: expand Option B vsix local testing instructions
jimisola Mar 18, 2026
28b8a57
fix: remove duplicate command registration; add tracing output channe…
jimisola Mar 18, 2026
de422d9
fix: trust hover MarkdownString to enable command: URI links
jimisola Mar 18, 2026
7057e2d
feat: add reqstool.refresh, reqstool.openDetails, and details panel
jimisola Mar 22, 2026
5536a10
fix: remove duplicate command registration; add tracing output channe…
jimisola Mar 22, 2026
06fce84
fix: guard openDetails against missing args; hide from Command Palette
jimisola Mar 22, 2026
07fbbda
feat: details view — lifecycle colors, clickable SVCs, test status
jimisola Mar 22, 2026
169f8f2
fix: make all REQ/SVC/MVR IDs clickable in details views; add link st…
jimisola Mar 22, 2026
35f8d3c
fix: show green badge for effective/active lifecycle state
jimisola Mar 22, 2026
b980ad6
feat: clickable FQN in implementations table navigates to source symbol
jimisola Mar 22, 2026
8063223
fix: use class name for workspace symbol search; navigate to member i…
jimisola Mar 22, 2026
825a2de
fix: handle Java LS method name suffix and add delay for symbol readi…
jimisola Mar 22, 2026
d850a6b
feat: replace floating panel with dockable sidebar WebviewViewProvider
jimisola Mar 22, 2026
658ba48
fix: expand FQN to Fully Qualified Name in table headers
jimisola Mar 22, 2026
cf63e93
feat: add outline tree view with project/file scope toggle
jimisola Mar 22, 2026
1a231ca
fix: read lifecycle.state from details response; guard undefined in l…
jimisola Mar 23, 2026
2c3dbca
feat: replace serverPath with configurable serverCommand and add LSP …
jimisola Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build VS Code extension

on:
workflow_call:
workflow_dispatch:
push:
branches:
- main
pull_request:
types:
- opened
- reopened
- synchronize

jobs:
linting:
name: Reuse linting job
uses: ./.github/workflows/lint.yml

build:
needs: linting
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24

- name: Install dependencies
run: npm ci

- name: Install reqstool LSP
run: pipx install "reqstool[lsp]"

- name: Run headless test
run: npm run test-with-report

- name: Run UI tests
run: xvfb-run --auto-servernum npm run test:ui

- name: Build project
run: npm run build

- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: dist
path: "*.vsix"
10 changes: 10 additions & 0 deletions .github/workflows/check-semantic-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Check Semantic PR
on:
pull_request:
types: [opened, edited, synchronize, reopened]
pull_request_target:
types: [opened, edited, synchronize, reopened]

jobs:
check:
uses: reqstool/.github/.github/workflows/check-semantic-pr.yml@main
11 changes: 11 additions & 0 deletions .github/workflows/check_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Lint
on:
workflow_call:

jobs:
check-release:
runs-on: ubuntu-latest
steps:
- name: Check branch and tag
if: github.event_name == 'push' && !(github.ref == 'refs/heads/main' && startsWith(github.ref, 'refs/tags/v'))
run: exit 1
17 changes: 17 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Lint
on:
workflow_dispatch:
workflow_call:

jobs:
linting:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
- run: |
npm ci
npm run lint
36 changes: 36 additions & 0 deletions .github/workflows/publish_vscode_ext.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Publish to Open VSX Registry and Visual Studio Marketplace

on:
release:
types: [created]

jobs:
check-release:
name: Reuse check release
uses: ./.github/workflows/check_release.yml

build:
name: Reuse build
uses: ./.github/workflows/build.yml

publish-vscode-extension:
needs:
- build
- check-release

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
- run: npm ci
- name: Publish to Open VSX Registry
uses: HaaLeo/publish-vscode-extension@v2
with:
pat: ${{ secrets.OPEN_VSX_TOKEN }}
- name: Publish to Visual Studio Marketplace
uses: HaaLeo/publish-vscode-extension@v2
with:
pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
registryUrl: https://marketplace.visualstudio.com
122 changes: 122 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# Created by https://www.toptal.com/developers/gitignore/api/node,visualstudiocode,intellij+all
# Edit at https://www.toptal.com/developers/gitignore?templates=node,visualstudiocode,intellij+all

### Intellij+all ###
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
.idea/**/aws.xml
.idea/**/contentModel.xml
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
.idea/**/gradle.xml
.idea/**/libraries
cmake-build-*/
.idea/**/mongoSettings.xml
*.iws
out/
.idea_modules/
atlassian-ide-plugin.xml
.idea/replstate.xml
.idea/sonarlint/
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
.idea/httpRequests
.idea/caches/build_file_checksums.ser

### Intellij+all Patch ###
.idea/*

!.idea/codeStyles
!.idea/runConfigurations

### Node ###
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
pids
*.pid
*.seed
*.pid.lock
lib-cov
coverage
*.lcov
.nyc_output
.grunt
bower_components
.lock-wscript
build/Release
node_modules/
jspm_packages/
web_modules/
*.tsbuildinfo
.npm
.eslintcache
.stylelintcache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
.node_repl_history
*.tgz
.yarn-integrity
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
.cache
.parcel-cache
.next
out
.nuxt
dist
.cache/
.vuepress/dist
.temp
.docusaurus
.serverless/
.fusebox/
.dynamodb/
.tern-port
.vscode-test
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

### Node Patch ###
.webpack/
.svelte-kit

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
.history/
*.vsix

### VisualStudioCode Patch ###
.history
.ionide

# Claude Code
.claude/
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
registry=https://registry.npmjs.org
9 changes: 9 additions & 0 deletions .vscode-test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { defineConfig } from '@vscode/test-cli'

export default defineConfig({
files: 'out/test/*.test.js',
launchArgs: ['--headless', '--disable-gpu'],
mocha: {
reporter: 'mocha-junit-reporter',
},
})
17 changes: 17 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"preLaunchTask": "${defaultBuildTask}"
}
]
}
18 changes: 18 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
11 changes: 11 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.vscode/**
.vscode-test/**
src/**
.gitignore
.yarnrc
vsc-extension-quickstart.md
**/tsconfig.json
**/.eslintrc.json
**/*.map
**/*.ts
**/.vscode-test.*
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Change Log

All notable changes to the reqstool extension will be documented in this file.

Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.

## [Unreleased]

- Initial release with LSP client support
Loading
Loading