Skip to content

Releases: couimet/rangeLink

VS Code Extension v2.0.0

Choose a tag to compare

@couimet couimet released this 13 Jun 01:04
0b20c8f

Added

  • RangeLink Menu (R-M) - Press Cmd+R Cmd+M (Mac) / Ctrl+R Ctrl+M (Win/Linux) or click the 🔗 RangeLink status bar item to access ⚡ quick actions
    • Jump to Bound Destination (shows quick pick of available destinations when unbound)
    • Unbind Destination (when bound)
    • Go to Link
    • Show Version Info
  • Bind to Destination (R-D) - Direct keybinding to open the destination picker and bind (#330)
    • Keyboard shortcut: Cmd+R Cmd+D (Mac) / Ctrl+R Ctrl+D (Win/Linux)
    • Shows all available destinations (terminals, text editors, AI assistants) in a single picker
    • Smart bind handles the already-bound case with a confirmation dialog
    • Also available via Command Palette as "RangeLink: Bind to Destination"
  • Terminal Picker - Choose which terminal to bind to instead of auto-binding the active one (#255)
    • Command Palette "Bind to Terminal" shows a QuickPick list of eligible terminals
    • Active terminal marked with "active" badge, bound terminal marked with "bound" badge (dual badge "bound · active" when same terminal)
    • Terminals sorted: bound first, active second, rest in natural order — bound terminal never hidden behind "More terminals..."
    • Hidden IDE terminals (e.g., Cursor's background terminal) are automatically filtered out
    • Extension-managed pty terminals (Jest test runners, task runners, debug consoles, etc.) are filtered out across every entry point — picker, context-menu "Bind Here", and the "Bind to Terminal" command — so you can only target shell terminals that actually accept input (#592)
    • Configurable inline threshold: rangelink.terminalPicker.maxInline (default: 5)
    • When more terminals than the threshold exist, extras collapse into "More terminals..." which opens a secondary picker
    • Escaping the secondary picker returns to the destination picker
    • Terminal picker also appears inline in the RangeLink Menu (R-M) and destination picker when unbound
  • File Picker - Choose a specific open file as text editor destination (#355, #356)
    • Open files appear as individual items inline in the destination picker; active file (frontmost tab) per tab group shown first
    • Bound file marked with "bound" badge and sorted to the top
    • Files with duplicate names show path disambiguation
    • When more open files exist beyond the inline list, extras collapse into "More files..." which opens a secondary picker
    • Secondary picker organizes all open files into "Active Files" section + per-"Tab Group N" sections
    • Escaping the secondary picker returns to the destination picker
  • Gemini Code Assist Integration - Paste destination for Google's Gemini Code Assist (#529)
    • Automatically inserts links and selected text directly into Gemini Code Assist
    • Requires Gemini Code Assist extension (Google.geminicodeassist)
    • Configurable cold-start timing: rangelink.destinations.gemini.coldStartDelayMs (default: 2500) and rangelink.destinations.gemini.coldRefocusIntervalMs (default: 300) — tune for your machine's speed; increase the delay on slower hardware if the initial paste after binding silently fails to reach the Gemini panel
  • Custom AI Assistants - Connect RangeLink to any AI tool with a VS Code extension (#500)
    • New setting rangelink.customAiAssistants: three-tier command schema — insertCommands (direct text delivery), focusAndPasteCommands (focus + auto-paste), focusCommands (focus + manual paste toast)
    • Custom assistants appear in the destination picker (R-D) alongside built-in destinations
    • Lazy tier resolution: RangeLink checks which commands are registered on first use and caches the winning tier — no per-operation overhead
    • Override built-in assistants (Cursor, Claude Code, Copilot) via config with automatic fallback to hardcoded commands
    • ${content} template interpolation for insert commands with non-standard argument formats
  • Claude Code Cold-Start Timing - Configurable cold-start settings for the Claude Code Extension destination
    • rangelink.destinations.claudeCode.coldStartDelayMs (default: 2500) and rangelink.destinations.claudeCode.coldRefocusIntervalMs (default: 300) — tune for your machine's speed; increase the delay on slower hardware if the initial paste after binding silently fails to reach the Claude Code panel
  • Release Notifier - Once-per-upgrade notification so new versions don't go unnoticed (#525)
    • On upgrade, shows "RangeLink updated to vX.Y.Z. See what changed!" with "What's New" and "Skip for this version" buttons
    • "What's New" opens the GitHub releases page; "Skip for this version" silences without opening the browser
    • Dismissing (X) is temporary — the notification reappears on the next activation until you act
  • Clipboard Preservation - RangeLink no longer silently overwrites your clipboard (#353)
    • New setting rangelink.clipboard.preserve ("always" | "never", default: "always")
    • Under "always", your prior clipboard content is saved before each transport operation (R-L, R-V, R-F, AI assistant paste, terminal paste) and restored afterward — your clipboard is only permanently overwritten when you explicitly ask for it (R-C)
    • Under "never", your clipboard always contains the last RangeLink output (previous behavior)
  • Send File Path Commands - Send file paths directly to bound destinations (#243)
    • Context menu commands - See "Context Menu Integrations" section below for full details
    • Command palette commands - For the currently active editor
      • "Send Current File Path" - Sends workspace-relative path (default)
      • "Send Current File Path (Absolute)" - Sends absolute path
    • Keyboard shortcuts - Cmd+R Cmd+F for relative, Cmd+R Cmd+Shift+F for absolute
    • Shell-safe quoting - Paths with special characters (spaces, parentheses, etc.) are automatically wrapped in single quotes when sent to any destination, matching Cursor's drag-drop behavior. Clipboard retains the unquoted path.
    • Includes separate smartPadding.pasteFilePath setting (default: both) for controlling whitespace around pasted paths
    • Copies to clipboard + sends to bound destination (like other send commands)
    • Shows quick pick to bind a destination when unbound
  • Context Menu Integrations - Right-click access to RangeLink commands (#73, #243, #246)
    • Explorer (right-click on files):
      • "RangeLink: Send File Path" - Send absolute path to bound destination
      • "RangeLink: Send Relative File Path" - Send relative path to bound destination
      • "RangeLink: Bind Here" - Open file and bind it as text editor destination (#247)
      • "RangeLink: Unbind" - Unbind current destination (when bound, files only)
    • Editor Tab (right-click on tabs):
      • "RangeLink: Send File Path" - Send absolute path to bound destination
      • "RangeLink: Send Relative File Path" - Send relative path to bound destination
      • "RangeLink: Bind Here" - Bind this editor as destination (file/untitled only)
      • "RangeLink: Unbind" - Unbind current destination (when bound)
    • Editor Content (right-click inside editor):
      • "RangeLink: Send RangeLink" - Send relative path link to destination (has selection)
      • "RangeLink: Send RangeLink (Absolute)" - Send absolute path link to destination (has selection)
      • "RangeLink: Send Portable Link" - Send BYOD portable link to destination (has selection)
      • "RangeLink: Send Portable Link (Absolute)" - Send BYOD portable link to destination (has selection)
      • "RangeLink: Send Selected Text" - Send selected text to bound destination (has selection)
      • ─── visual separator ───
      • "RangeLink: Send This File's Path" - Send absolute path to bound destination
      • "RangeLink: Send This File's Relative Path" - Send relative path to bound destination
      • "RangeLink: Bind Here" - Bind this editor as destination (file/untitled only)
      • "RangeLink: Unbind" - Unbind current destination (when bound)
    • Terminal Tab (right-click on tabs):
      • "RangeLink: Bind Here" - Bind this terminal as destination
      • "RangeLink: Unbind" - Unbind current destination (when bound)
    • Terminal Content (right-click inside terminal):
      • "RangeLink: Send Selected Text" - Send the selected terminal text to the bound destination (hidden when the terminal IS the bound destination; opens the destination picker if nothing is bound)
      • "RangeLink: Bind Here" - Bind this terminal as destination
      • "RangeLink: Unbind" - Unbind current destination (when bound)
  • Navigation clamping feedback - Navigation now warns when a link points beyond file boundaries instead of silently landing at the nearest valid position
  • Navigation toast settings - Control which toasts appear after clicking a RangeLink (#54)
    • rangelink.navigation.showNavigatedToast (default: true) — suppress the "Navigated to …" info toast for a quieter workflow
    • rangelink.navigation.showClampingWarning (default: true) — suppress the clamping warning when navigation is adjusted to file boundaries
    • Navigation itself is unaffected — only the feedback toasts are controlled
  • Dirty Buffer Warning - Warning when generating a link from a file with unsaved changes (#298)
    • Shows a dialog with options: "Save & Generate", "Generate Anyway", or dismiss to abort
    • Controlled by rangelink.warnOnDirtyBuffer setting (default: true)
    • Helps avoid creating links that may point to incorrect positions after the file is saved
    • Also applies to Send File Path (R-F) commands — warns when the file has unsaved changes that may cause the AI tool to read stale content from disk (#513)
  • Send Terminal Selection (R-V) - Send terminal text to your bound destination (#331)
    • Keyboard shortcut: Cmd+R Cmd+V (Mac) / ...
Read more

VS Code Extension v1.0.0

Choose a tag to compare

@couimet couimet released this 16 Dec 01:14

Added

  • Fully automatic paste for Claude Code and Cursor AI - Zero-friction workflow completes the v0.3.0 vision
    • v0.3.0 required manual Cmd+V paste after link was copied — that friction is gone
    • Now uses clipboard + programmatic paste technique for seamless auto-insertion
    • All AI chat destinations now provide identical UX: select code → link appears → keep typing
    • "One Keybinding to Rule Them All" — now it truly does
    • Switch AI assistants without relearning shortcuts — same R-keybindings, any AI
  • GitHub Copilot Chat Integration - Paste destination for GitHub Copilot Chat
    • Automatically inserts links and selected text directly into GitHub Copilot Chat
    • Command: "Bind RangeLink to GitHub Copilot Chat Destination"
    • Requires GitHub Copilot Chat extension
    • Consistent with RangeLink's unified paste destination workflow (auto-focus, cursor positioning)
  • Smart bind with confirmation - Quick switching between paste destinations
    • Run any "Bind to..." command when already bound to automatically replace with confirmation
    • QuickPick dialog shows current and new destination before replacing
    • No need to manually unbind first - flow handles unbind → bind seamlessly
    • Prevents accidental binding to same destination (shows info message instead)
    • Toast notifications show replacement info: "Unbound X, now bound to Y"
    • Integrated with all bind commands (Claude Code, Cursor AI, GitHub Copilot Chat, Terminal, Text Editor)
  • Paste Selected Text to Destination (R-V) 🚐 - Send selected text directly to bound destinations, not just links
    • New command: "Paste Selected Text to Bound Destination" (Cmd+R Cmd+V / Ctrl+R Ctrl+V)
    • Works with all destination types: Claude Code Extension, Cursor AI, GitHub Copilot Chat, Terminal, Text Editor
    • Supports single and multi-selection (concatenates with newlines)
    • Clipboard fallback when no destination bound
    • Perfect for quickly sharing code snippets with AI assistants
    • Consistent with existing paste destination workflow (auto-focus, cursor positioning)
    • Why 🚐 (RV emoji)? Keybinding preserves R prefix (like RangeLink's R+L), and V mirrors the standard paste gesture (Cmd+V). The RV/camper emoji is a playful reminder of this mnemonic.
  • Jump to Bound Destination (R-J) - Quickly focus your currently bound destination
    • New command: "Jump to Bound Destination" (Cmd+R Cmd+J / Ctrl+R Ctrl+J)
    • Instantly brings focus to terminal, text editor, or AI chat destination
    • No more hunting for bound destinations buried under tabs or panes
  • RangeLink Clipboard-Only Mode (R-C) - Generate RangeLinks directly to clipboard, bypassing paste destinations
    • New commands: "Copy Range Link (Clipboard Only)" (Cmd+R Cmd+C / Ctrl+R Ctrl+C)
    • Generates formatted RangeLinks (e.g., src/auth.ts#L42C10-L58C25) with relative or absolute paths
    • Useful for sharing absolute-path links across projects or IDE instances without requiring to unbind a destination first.
    • Gives explicit control over when links paste to bound destinations vs clipboard only
  • i18n foundation - Message code system for future localization support. English only currently.

Changed

  • Less intrusive auto-unbind notifications - When a bound text editor document closes, the auto-unbind notification now appears in the status bar (2 seconds) instead of as a popup dialog. This makes the background cleanup less disruptive to your workflow.

Fixed

  • Single-position navigation - Fixed regression introduced in v0.3.0 where navigating to single-position links (e.g., file.ts#L32C1) showed invisible cursors instead of visible 1-character selections.

VS Code Extension v0.3.0

Choose a tag to compare

@couimet couimet released this 12 Nov 03:51

Added

  • Paste Destinations System - Universal paste destination framework for auto-sending links
    • Unified architecture supports AI chat integrations, terminal and text editor
    • One destination active at a time (Claude Code OR Cursor AI OR terminal OR text editor)
    • Seamless workflow: select code → link appears where you need it
  • Claude Code Extension Integration - Streamlined clipboard workflow for Anthropic's official Claude extension
    • Automatically copies link and opens Claude Code chat panel
    • Works in both VSCode and Cursor IDE
    • One-paste workflow: user pastes with Cmd/Ctrl+V (workaround for API limitation)
    • Command: "Bind RangeLink to Claude Code Destination"
  • Cursor AI Integration - Streamlined clipboard workflow for Cursor IDE
    • Automatically copies link and opens Cursor chat panel
    • One-paste workflow: user pastes with Cmd/Ctrl+V (workaround for API limitation)
    • Command always discoverable in Command Palette for both VSCode and Cursor
    • Shows helpful message in VSCode directing users to Cursor IDE
    • Command: "Bind RangeLink to Cursor AI"
  • Text Editor Destination - Paste generated links directly into any text-based editor
    • Works with untitled/scratch files, markdown, code files, any text document
    • Perfect for drafting AI prompts before sending to AI assistants
    • Bind any text editor as paste destination (Command Palette → "Bind RangeLink to Text Editor Destination")
    • Requires split editor (2+ tab groups) and bound file must be topmost tab for auto-paste
    • Auto-paste links at cursor position with smart padding
    • Auto-focuses bound editor after paste (RangeLink's unified UX pattern across all destinations)
    • Clipboard fallback with reminder when bound file hidden behind other tabs
    • Blocks binary files (images, PDFs, archives) - only text-like files
    • Auto-unbinds when editor closes with notification
    • See README for full workflow details
  • Editor Link Navigation - Click RangeLinks in any editor file to navigate
    • Primary use case: Validate links in scratchpad files before sending to claude-code
    • Works in all file types: markdown, text, code, untitled files
    • Hover tooltips show full navigation details
    • Supports all link formats: single-line, ranges, columns, rectangular mode
    • Reuses terminal navigation logic for consistency

Changed

  • Unified Paste Destination Management - Single manager replaces separate terminal/chat systems
    • Command renamed: rangelink.unbindTerminalrangelink.unbindDestination
    • Simplified bind/unbind commands work consistently across all destination types
    • Improved error handling and user feedback
  • Terminology Updates - Harmonized vocabulary across extension
    • "Terminal Binding" → "Terminal Paste Destination"
    • Consistent "Paste Destinations" terminology in UI and docs

VS Code Extension v0.2.1

Choose a tag to compare

@couimet couimet released this 06 Nov 15:27
4852362

Fixed

  • Critical packaging bug - Fixed "Cannot find module" errors in v0.2.0
    • Separated dist/ (production bundle) from out/ (development output)
    • Follows official VSCode extension conventions
    • Prevents TypeScript compiler from overwriting esbuild's production bundle
    • Eliminates root cause of runtime module loading failures

VS Code Extension v0.2.0

Choose a tag to compare

@couimet couimet released this 06 Nov 04:43

Added

  • Terminal Link Navigation - The killer feature for AI-assisted workflows
    • Click RangeLinks in your terminal to jump directly to code
    • Cmd+Click (Mac) or Ctrl+Click (Windows/Linux) to navigate
    • Instant file opening with precise cursor positioning
    • Works with single-line, and multi-line ranges
    • Smart path resolution for workspace-relative and absolute paths
    • Helpful tooltips showing the exact location that will be opened
    • Parse validation prevents navigation on invalid links
  • Terminal Binding - Auto-send generated links to integrated terminal
    • Zero copy/paste friction for AI-assisted development
    • Links appear instantly where claude-code and other tools can see them
  • Link validation with informative tooltips displaying full range context

Changed

  • Broader VSCode compatibility - Minimum version lowered from 1.80.0 to 1.49.0
    • Now supports 31 additional VSCode versions (3 years of releases)
    • Benefits users on stable corporate environments and older machines
    • Based on registerTerminalLinkProvider API availability (introduced in v1.49.0)
  • Centralized asset management with build-time sync from monorepo /assets/ directory
  • README significantly streamlined: combined redundant sections, added compelling opening quote, removed overpromising claims
  • Tool mentions now lead with claude-code (origin story) before other editors
  • Refactored internal architecture with RangeLinkService for better maintainability

Fixed

  • Extension README now uses GitHub raw URL for logo (displays correctly in installed extensions, marketplace, and GitHub)
  • Fixed ESLint configuration for better monorepo build reliability
  • Fixed marketplace version badge URL in README (was using wrong publisher/extension name)
  • Build process now explicitly deletes target files to prevent stale artifacts
  • CHANGELOG now focuses only on extension changes (removed monorepo/internal documentation items)

VS Code Extension v0.1.0

Choose a tag to compare

@couimet couimet released this 02 Nov 20:16

Initial release of RangeLink VS Code Extension 🎉

Features

  • Link Generation - Create shareable links to code ranges with relative or absolute paths
  • GitHub-Style Notation - Familiar #L10-L25 format developers already know
  • Rectangular Selection - Column selection support with ## notation
  • BYOD (Portable Links) - Links that work across different delimiter configurations
  • Custom Delimiters - Configure notation to match your preferences
  • Validation - Comprehensive error handling and recovery with fallback to defaults
  • Commands & Keybindings - Quick access via Cmd+R Cmd+L / Ctrl+R Ctrl+L
  • Context Menu - Right-click integration for easy access
  • Status Bar Feedback - Visual confirmation when links are created

Installation

Install from the VS Code Marketplace

Or search for "RangeLink" in the Extensions view (Ctrl+Shift+X / Cmd+Shift+X)

What's Next

See ROADMAP.md for upcoming features including:

  • Link navigation (click to jump to code)
  • Enhanced BYOD support
  • Multi-range links
  • And more!

Documentation