Thank you for your interest in contributing to REST Lens IDE! This document provides guidelines and instructions for contributing.
Please be respectful and constructive in all interactions. We welcome contributors of all backgrounds and experience levels.
- Node.js 18+
- npm 9+
- VS Code (for testing the extension)
-
Clone the repository:
git clone https://github.com/restlens/restlens-ide.git cd restlens-ide -
Install dependencies:
npm install
-
Build all packages:
npm run build
restlens-ide/
├── packages/
│ ├── shared/ # Shared types and utilities
│ ├── lsp-server/ # Language Server Protocol implementation
│ └── vscode-extension/ # VS Code extension
├── fixtures/ # Sample OpenAPI specs for testing
└── ...
# Build all packages
npm run build
# Build specific package
cd packages/lsp-server && npm run build# Run all tests
npm test
# Test the extension in VS Code
# 1. Open the project in VS Code
# 2. Press F5 to launch Extension Development Host
# 3. Open a sample OpenAPI file from fixtures/- Open the project in VS Code
- Go to Run and Debug (Ctrl+Shift+D)
- Select "Launch Extension" or "Attach to Server"
- Set breakpoints and press F5
- Create a feature branch from
main - Use descriptive branch names:
feature/add-hover-docs,fix/token-refresh
- Write clear, concise commit messages
- Reference issues when applicable:
Fix token refresh (#123)
- Ensure all tests pass
- Update documentation if needed
- Add a clear description of changes
- Request review from maintainers
The Language Server handles:
- Document validation
- API communication with REST Lens
- Converting violations to LSP diagnostics
- Caching results
Key files:
packages/lsp-server/src/server.ts- Main serverpackages/lsp-server/src/api-client.ts- REST Lens API clientpackages/lsp-server/src/diagnostics.ts- Violation conversion
The extension handles:
- OAuth authentication flow
- User interface (status bar, commands)
- LSP client communication
- Configuration management
Key files:
packages/vscode-extension/src/extension.ts- Entry pointpackages/vscode-extension/src/auth/- OAuth implementationpackages/vscode-extension/src/ui/- UI components
By contributing, you agree that your contributions will be licensed under the GPL-3.0 license.
- Open an issue for bugs or feature requests
- Check existing issues before creating new ones