Jutge VSCode Extension
A Visual Studio Code extension for interacting with Jutge.org, a programming learning platform.
Installation
From VSCode Marketplace
Install the extension from the VSCode Marketplace.
Building and packaging the extension
- Clone the repository:
git clone https://github.com/jutge-org/jutge-vscode.git
cd jutge-vscode
- Install dependencies:
bun install
- Build and package the extension:
make vsix
- Install the extension from the
.vsix file by following the docs in VSCode Marketplace
Development
Prerequisites
- Node.js v21.7.1 or higher
- bun v1.0.0 or higher
- Visual Studio Code v1.87.0 or higher
- esbuild-problem-matchers VSCode extension
Building from source
- Clone the repository:
git clone https://github.com/jutge-org/jutge-vscode.git
cd jutge-vscode
- Install dependencies and build:
make
- Open the project in VSCode and press
F5 or select Run > Start Debugging
Project Structure
jutge-vscode/
├── src/
│ ├── extension.ts # Extension entry point
│ ├── context.ts # Extension context management
│ ├── jutge_client_api.ts # API client for Jutge.org, installed from api.jutge.org/clients#typescript
│ ├── providers/ # VSCode providers
│ │ ├── WebviewProvider.ts # Problem viewer implementation
│ │ └── TreeViewProvider.ts # Sidebar tree view
│ ├── runners/ # Code execution handlers
│ ├── services/ # Business logic services
│ ├── utils/ # Helper functions and types
│ └── webview/ # Webview UI components
├── dist/ # Compiled extension files
└── esbuild.js # Build configuration
Key Components
WebviewProvider: Handles the problem viewer interface, showing problem statements and test cases.
TreeViewProvider: Handles the sidebar tree view, showing the problems and submissions.
Services:
- AuthService: Manages authentication with Jutge.org
- FileService: Handles file operations
- SubmissionService: Manages problem submissions
- ConfigService: Manages configuration
- Runners: Executes code against test cases for different programming languages
Contributing
We welcome contributions from the community! Here's how you can help:
Development Setup
- Follow the installation instructions above to set up your development environment
- Familiarize yourself with the project structure and key components
- Check the GitHub issues for tasks that need assistance (look for the "help wanted" or "good first issue" labels)
Coding Standards
- The project uses ESLint and Prettier for code formatting and linting
- Run
bun lint to check your code for issues
- Run
bun format to auto-format code
Pull Request Process
- Fork the repository and create a feature branch
- Make your changes, following the coding standards
- Add tests for new functionality if applicable
- Update documentation as needed
- Submit a pull request with a clear description of the changes
License
See the LICENSE file for details.
Known Issues
See the issues page for current known issues.
| |