shared/ Zero-dependency types and utilities used by both layers
docs-engine/ Documentation resolution library (no VS Code dependency)
extension/ VS Code extension — wires the editor API to docs-engine
The dependency rule is strict: shared ← docs-engine ← extension. Nothing in docs-engine may import from extension.
# Install all workspace dependencies
cd docs-engine && npm install
cd ../extension && npm install# Compile the extension (output goes to extension/out/)
cd extension && npm run compile- Open the repo root in VS Code.
- Press
F5to launch the Extension Development Host.
- TypeScript strict mode is enabled in both packages.
- Run
npm run lintinside either package to check for ESLint violations. - Keep
docs-enginefree of VS Code imports — use theILoggerinterface fromshared/logger.tsfor any logging needs, injected viasetEngineLoggerat activation time.
- Add a new value to
ResolutionSourceinshared/types.ts. - Implement the strategy inside
docs-engine/src/. - Wire it into the fallback chain in
docs-engine/src/docResolver.ts. - Update
extension/src/ui/hoverRenderer.tsif the new source needs a distinct UI treatment.
- Open a pull request against
main. - Describe what changed and why in the PR body.
- If the change affects hover output, include a before/after screenshot.