hovercraft
- File Based Hover Provider
hovercraft
is a VSCode extension that provides customizable hover information for any programming
language using simple CSV or JSON files. Define your own hover tooltips for keywords, functions,
APIs, or any text pattern in your codebase.
Features
- 🎯 Language Agnostic - Works with any file type or programming language
- 📝 Simple CSV or JSON Format - Define hovers using CSV or JSON files
- 🏢 Workspace Specific - Each project can have its own hover definitions
- 🔧 Zero Configuration - Just drop CSV or JSON files in
.data
or .vscode
folder
Installation
From VSCode Marketplace
- Open VSCode
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Hovercraft"
- Click Install
Getting Started
- Create a
.data
folder in your workspace (if it doesn't exist)
- Add a CSV or JSON file named
.data/hovercraft.<extension>.csv
or
.data/hovercraft.<extension>.json
:
- Columns:
keyword
: The text to match in your code
description
: The hover text to display
source_file
: (optional) The source file where this hover is defined
category
: (optional) A category for grouping hovers
url
: (optional) A URL to link to for more information
- Array of objects, each with:
keyword
: The text to match in your code
description
: The hover text to display
source_file
: (optional) The source file where this hover is defined
category
: (optional) A category for grouping hovers
url
: (optional) A URL to link to for more information
The file extension in the filename determines which files the hover applies to. The convention is:
.data/hovercraft.<file-extension>.csv
.data/hovercraft.<file-extension>.json
Examples:
hovercraft.py.csv
→ Python files (.py)
hovercraft.py.json
→ Python files (.py)
hovercraft.md.csv
→ Markdown files (.md)
hovercraft.md.json
→ Markdown files (.md)
hovercraft.custom.csv
→ Custom files (.custom)
hovercraft.custom.json
→ Custom files (.custom)
Requirements
- VSCode 1.75.0 or higher
- Python environment is automatically managed by the extension using
uv
Configuration
You can configure the location of your uv
executable using VSCode settings:
- Open Command Palette (Cmd+Shift+P / Ctrl+Shift+P)
- Type
Preferences: Open Settings (UI)
- Search for
Hovercraft: UV Path
- Set the path to your
uv
executable (e.g. /usr/local/bin/uv
)
Alternatively, add this to your settings.json
:
{
"hovercraft.uvPath": "/path/to/your/uv"
}
If not set, the extension will use the default uv
in your system PATH. If uv
is not available,
it will be installed automatically by the extension.
Development
Running Tests
# All tests
./scripts/e2e.sh
# VSCode extension tests only
npm test
# Python language server tests only
cd hovercraft && uv run python -m pytest tests/ -v
Troubleshooting
No hovers appearing
- Check CSV/JSON file location: Must be in
.data
folder or in the .data
folder
- Check CSV/JSON filename: Must match pattern
hovercraft.<ext>.csv
or hovercraft.<ext>.json
- Check CSV format: Must have
keyword
and description
columns
- Check JSON format: Must be an array of objects with
keyword
and description
fields
- Check Output panel: View → Output → "Hovercraft Language Server"
Extension not activating
- Check if
uv
is being installed: View → Output → "Hovercraft Language Server Setup"
- Reload window: Ctrl+R / Cmd+R
- Check extension is enabled: Extensions → Hovercraft → Enable