From bcee660ed47f9fc79d8d194646ef43596d773f2d Mon Sep 17 00:00:00 2001 From: BrunoV21 <120278082+BrunoV21@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:47:17 +0100 Subject: [PATCH] Update README and package.json with improved documentation and formatting Enhanced the README with detailed feature descriptions, installation steps, usage examples, and troubleshooting guidance. Also cleaned up formatting in package.json and updated the build script configuration. --- README.md | 99 +++++++++++++++++++++++++------ package.json | 165 ++++++++++++++++++++++++++------------------------- 2 files changed, 163 insertions(+), 101 deletions(-) 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