diff --git a/README.md b/README.md index 95328cd..ea162c4 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,92 @@ # CodeTide VS Code Extension -**CodeTide** helps you extract, manage, and retrieve just the right code context for your favorite LLMs and Copilot workflows in Visual Studio Code. +**CodeTide** is an intelligent code context manager that helps developers extract, organize, and retrieve the perfect code snippets for LLM-assisted workflows in Visual Studio Code. It automatically parses and indexes your entire codebase, providing flexible context generation for GitHub Copilot and other AI coding assistants. -## Features +![CodeTide in Action](assets/codetide-demo.gif) *(Example GIF showing context selection and Copilot integration)* -- Parse your project and extract code snippets with unique IDs -- Fuzzy autocomplete for snippet ID selection -- Retrieve code snippets by ID (with deep context support) -- Add selected snippets to Copilot/LLM context -- Refresh cached IDs for up-to-date autocomplete -- Python backend integration for advanced code analysis +## Key Features + +- **Automatic Codebase Parsing** - Intelligently indexes your entire project structure +- **Flexible Context Generation** - Multiple output formats (shallow, deep, tree views) +- **Seamless Copilot Integration** - Directly add relevant context to your Copilot prompts +- **Fuzzy Search** - Quickly find code snippets with intelligent autocomplete +- **Clipboard Support** - Copy context to clipboard for use anywhere +- **Python Backend** - Advanced code analysis powered by custom Python processing ## Installation -1. Install [Python 3.8+](https://www.python.org/downloads/) and ensure it is in your PATH. -2. Install the extension from the VS Code Marketplace or via `.vsix` package. -3. On first use, required Python dependencies (including `codetide`) will be installed automatically. Alternatively, run: - ``` - pip install git+https://github.com/BrunoV21/codetide - ``` +### Prerequisites +- [Python 3.8+](https://www.python.org/downloads/) installed and in your PATH +- [VS Code](https://code.visualstudio.com/) 1.100.0 or later + +### Steps +1. Install from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=BrunoV21.codetide) +2. Open a project in VS Code +3. On first run, the extension will automatically: + - Set up a Python virtual environment + - Install required dependencies (including `codetide` backend) + +*Manual installation option:* +```bash +pip install git+https://github.com/BrunoV21/codetide +``` ## Usage -Open the Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`) and search for: +### Core Workflow +1. **Initialize** your project with `CodeTide: Initialize Project` +2. **Select** code context using the fuzzy search interface +3. **Retrieve** in your preferred format (Copilot, clipboard, etc.) + +### Command Reference + +#### Project Management +| Command | Description | +|---------|-------------| +| `CodeTide: Initialize Project` | Parse workspace and extract code context | +| `CodeTide: Refresh the project` | Update cached IDs and context | + +#### Context Retrieval +| Command | Output Target | Context Depth | +|---------|---------------|---------------| +| `CodeTide: Get by IDs (Add to Copilot)` | Copilot Context | Standard | +| `CodeTide: Get by IDs (Copy to Clipboard)` | Clipboard | Standard | +| `CodeTide: Get by IDs - Shallow` | Copilot Context | Minimal | +| `CodeTide: Get by IDs - Deep` | Copilot Context | Extended | + +#### Tree Views +| Command | Includes | +|---------|----------| +| `CodeTide: Get Tree View` | Basic structure | +| `CodeTide: Get Tree View - with Modules` | + Module dependencies | +| `CodeTide: Get Tree View - with Modules & Types` | + Type annotations | + +#### Python Environment +| Command | Description | +|---------|-------------| +| `CodeTide: Reinstall Python Environment` | Clean reinstall of dependencies | +| `CodeTide: Update Python Dependencies` | Update to latest versions | +| `CodeTide: Check Python Environment Status` | Verify installation status | + +## First Run Guide +1. Open your project in VS Code +2. Run `CodeTide: Initialize Project` to parse your codebase +3. Use the context retrieval commands as needed +4. For Copilot integration, select snippets and choose "Add to Copilot" + +## Technical Requirements +- **Backend**: Requires [codetide Python package](https://github.com/BrunoV21/codetide) +- **System**: Python 3.8+ must be installed and accessible +- **Permissions**: Needs read access to your project files + +## Troubleshooting +- **Python not found**: Ensure Python is in your PATH or reinstall it +- **Missing dependencies**: Run `CodeTide: Reinstall Python Environment` +- **Cached IDs not updating**: Use `CodeTide: Refresh the project` + +## Contributing +We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. -- **CodeTide: Initialize Project** – Parse your workspace and extract code context. -- **CodeTide: Get by IDs** – Retrieve code snippets by their IDs (with autocomplete). -- **CodeTide: Add IDs to Copilot Context** – Add selected snippets to your Copilot/LLM context. -- **CodeTide: Refresh Cached IDs** – Update the list of available snippet IDs. \ No newline at end of file +## License +Apache 2.0 - See [LICENSE](LICENSE) for details. \ No newline at end of file diff --git a/package.json b/package.json index 8dafe88..331e411 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ + { - "name": "codetide", - "publisher": "BrunoV21", + "name": "codetide", + "publisher": "BrunoV21", "displayName": "CodeTide", "description": "Get just the right context for your favourite LLMs!", "version": "0.0.14", @@ -12,14 +13,14 @@ "type": "git", "url": "git://github.com/BrunoV21/CodeTide-vsExtension" }, - "categories": [ - "AI", - "Chat", + "categories": [ + "AI", + "Chat", "Snippets", "Programming Languages", "Other" - ], - "main": "./dist/extension.js", + ], + "main": "./out/extension.js", "files": [ "dist", "python", @@ -30,84 +31,84 @@ ], "contributes": { "commands": [ - { - "command": "extension.runParser", - "title": "CodeTide: Initialize Project" - }, - { - "command": "extension.getByIds", - "title": "CodeTide: Get by IDs (Add to Copilot)" - }, - { - "command": "extension.getByIdsClipboard", - "title": "CodeTide: Get by IDs (Copy to Clipboard)" - }, - { - "command": "extension.getByIdsShallow", - "title": "CodeTide: Get by IDs - Shallow (Add to Copilot)" - }, - { - "command": "extension.getByIdsShallowClipboard", - "title": "CodeTide: Get by IDs - Shallow (Copy to Clipboard)" - }, - { - "command": "extension.getByIdsDeep", - "title": "CodeTide: Get by IDs - Deep (Add to Copilot)" - }, - { - "command": "extension.getByIdsDeepClipboard", - "title": "CodeTide: Get by IDs - Deep (Copy to Clipboard)" - }, - { - "command": "extension.getTreeView", - "title": "CodeTide: Get Tree View (Add to Copilot)" - }, - { - "command": "extension.getTreeViewClipboard", - "title": "CodeTide: Get Tree View (Copy to Clipboard)" - }, - { - "command": "extension.getTreeViewModules", - "title": "CodeTide: Get Tree View - with Modules (Add to Copilot)" - }, - { - "command": "extension.getTreeViewModulesClipboard", - "title": "CodeTide: Get Tree View - with Modules (Copy to Clipboard)" - }, - { - "command": "extension.getTreeViewModulesAnnotated", - "title": "CodeTide: Get Tree View - with Modules & Types (Add to Copilot)" - }, - { - "command": "extension.getTreeViewModulesAnnotatedClipboard", - "title": "CodeTide: Get Tree View - with Modules & Types (Copy to Clipboard)" - }, - { - "command": "extension.parseFile", - "title": "CodeTide: Parse Current File" - }, - { - "command": "extension.refresh", - "title": "CodeTide: Refresh the project" - }, - { - "command": "extension.reinstallPythonEnv", - "title": "CodeTide: Reinstall Python Environment" - }, - { - "command": "extension.updatePythonDependencies", - "title": "CodeTide: Update Python Dependencies" - }, - { - "command": "extension.checkPythonEnv", - "title": "CodeTide: Check Python Environment Status" - } - ] + { + "command": "extension.runParser", + "title": "CodeTide: Initialize Project" + }, + { + "command": "extension.getByIds", + "title": "CodeTide: Get by IDs (Add to Copilot)" + }, + { + "command": "extension.getByIdsClipboard", + "title": "CodeTide: Get by IDs (Copy to Clipboard)" + }, + { + "command": "extension.getByIdsShallow", + "title": "CodeTide: Get by IDs - Shallow (Add to Copilot)" + }, + { + "command": "extension.getByIdsShallowClipboard", + "title": "CodeTide: Get by IDs - Shallow (Copy to Clipboard)" + }, + { + "command": "extension.getByIdsDeep", + "title": "CodeTide: Get by IDs - Deep (Add to Copilot)" + }, + { + "command": "extension.getByIdsDeepClipboard", + "title": "CodeTide: Get by IDs - Deep (Copy to Clipboard)" + }, + { + "command": "extension.getTreeView", + "title": "CodeTide: Get Tree View (Add to Copilot)" + }, + { + "command": "extension.getTreeViewClipboard", + "title": "CodeTide: Get Tree View (Copy to Clipboard)" }, + { + "command": "extension.getTreeViewModules", + "title": "CodeTide: Get Tree View - with Modules (Add to Copilot)" + }, + { + "command": "extension.getTreeViewModulesClipboard", + "title": "CodeTide: Get Tree View - with Modules (Copy to Clipboard)" + }, + { + "command": "extension.getTreeViewModulesAnnotated", + "title": "CodeTide: Get Tree View - with Modules & Types (Add to Copilot)" + }, + { + "command": "extension.getTreeViewModulesAnnotatedClipboard", + "title": "CodeTide: Get Tree View - with Modules & Types (Copy to Clipboard)" + }, + { + "command": "extension.parseFile", + "title": "CodeTide: Parse Current File" + }, + { + "command": "extension.refresh", + "title": "CodeTide: Refresh the project" + }, + { + "command": "extension.reinstallPythonEnv", + "title": "CodeTide: Reinstall Python Environment" + }, + { + "command": "extension.updatePythonDependencies", + "title": "CodeTide: Update Python Dependencies" + }, + { + "command": "extension.checkPythonEnv", + "title": "CodeTide: Check Python Environment Status" + } + ] + }, "scripts": { "vscode:prepublish": "npm run package", "compile": "webpack", - "watch": "webpack --watch", + "watch": "webpack --watch --mode development", "package": "webpack --mode production --devtool hidden-source-map", "compile-tests": "tsc -p . --outDir out", "watch-tests": "tsc -p . -w --outDir out", @@ -129,4 +130,4 @@ "@vscode/test-cli": "^0.0.10", "@vscode/test-electron": "^2.5.2" } -} +} \ No newline at end of file