Extract 10,000 paths in 0.3 seconds β’ 50x faster than manual searching
JavaScript, TypeScript, JSON, HTML, CSS, TOML, CSV, and Environment files
Before: Manually searching through 500 lines for import paths (15 minutes)
import { Button } from './components/Button'
import { Header } from '../layout/Header'
// ... 50 more imports scattered across filesAfter: One command extracts all 52 paths in 0.3 seconds
./components/Button (line 1)
../layout/Header (line 2)
./utils/helpers (line 15)
... (52 paths total)
Time Saved: 15 minutes β 1 second β‘
- 10,000 paths in 0.3 seconds - 50x faster than manual searching
- Zero Config - Install β Press
Cmd+Alt+Pβ Done - Battle-Tested - 289 unit tests, 93.55% coverage, zero critical vulnerabilities
- Security-Hardened - 64 tests prevent path traversal, symlink exploits, injection attacks
Perfect for refactoring, dependency audits, and import analysis.
If Paths-LE saves you time, a quick rating helps other developers discover it:
β Open VSX β’ VS Code Marketplace
- Complete path detection - Absolute, relative, Windows, Unix formats
- Powerful post-processing - Deduplicate and sort (alphabetically or by length)
- Dependency analysis - Identify missing files and circular dependencies
- 9 file formats - JavaScript, TypeScript, JSON, HTML, CSS, TOML, CSV, ENV, Log
- Smart filtering - Excludes npm packages (like 'react' or 'lodash')
- Cross-platform - Handles both Windows and Unix paths
- Canonical resolution π - Monorepo and symlink support (disabled by default for security)
- 13 languages - English, Chinese, German, Spanish, French, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Ukrainian, Vietnamese
- String-LE - Extract user-visible strings for i18n and validation β’ VS Code Marketplace
- Numbers-LE - Extract and analyze numeric data with statistics β’ VS Code Marketplace
- EnvSync-LE - Keep .env files in sync with visual diffs β’ VS Code Marketplace
- URLs-LE - Audit API endpoints and external resources β’ VS Code Marketplace
- Scrape-LE - Validate scraper targets before debugging β’ VS Code Marketplace
- Colors-LE - Extract and analyze colors from stylesheets β’ VS Code Marketplace
- Dates-LE - Extract temporal data from logs and APIs β’ VS Code Marketplace
- Import Analysis - Extract local imports from JS/TS (auto-excludes npm packages)
- Asset Auditing - Find all images, scripts, and styles referenced in HTML/CSS
- Config Validation - Pull file paths from JSON/TOML configs for verification
- Dependency Mapping - Track file references across your codebase
Extract file paths from configuration files:
# Extract from config.toml
[paths]
data_dir = "./data"
log_file = "/var/log/app.log"
backup_path = "C:\\backups\\app"# Extract from .env
DATABASE_PATH=./data/app.db
LOG_FILE=/var/log/app.log
BACKUP_DIR=C:\backupsExtract paths from CSV data files:
path,type,description
./src/main.js,file,Main application file
/var/log/app.log,file,Application log
C:\Users\Name\data,dir,User data directory
- Map file dependencies across JavaScript/TypeScript projects
- Identify missing or broken references in HTML/CSS
- Validate configuration file paths
- Analyze import patterns and detect circular dependencies
- Install from Open VSX or VS Code Marketplace
- Open any supported file (
.js,.ts,.json,.html,.css,.toml,.csv,.env) - Run
Paths-LE: Extract Paths(Cmd+Alt+P/Ctrl+Alt+P) - Use Deduplicate Paths or Sort Paths commands for post-processing
Paths-LE provides 9 commands accessible via Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
- Extract Paths (
Cmd/Ctrl+Alt+P) - Extract all file paths from current document
- Deduplicate Paths - Remove duplicate path entries while preserving order
- Sort Paths - Sort extracted paths with multiple modes:
- Alphabetical (A β Z)
- Alphabetical (Z β A)
- By Length (Short β Long)
- By Length (Long β Short)
- Open Settings - Quick access to extension settings
- Help & Troubleshooting - Comprehensive in-editor documentation
- Export/Import/Reset Settings - Manage extension configuration
- Create Test Fixture - Generate a complete test environment for canonical path resolution
Paths-LE has minimal configuration to keep things simple. Most settings are available in VS Code's settings UI under "Paths-LE".
Key settings include:
- Output format preferences (side-by-side, clipboard copy)
- Safety warnings and thresholds for large files
- Notification levels (silent, important, all)
- Status bar visibility
- Local telemetry logging for debugging
For the complete list of available settings, open VS Code Settings and search for "paths-le".
Paths-LE supports 9 file types for path extraction:
| File Type | Extensions | What Gets Extracted |
|---|---|---|
| JavaScript | .js, .mjs, .cjs |
import/require/export with local paths |
| TypeScript | .ts, .tsx, .mts, .cts |
import/require/export with local paths |
| JSON | .json |
Path-like strings (absolute, relative, URLs) |
| HTML | .html |
src, href, data, action, poster, etc. |
| CSS | .css, .scss, .less |
url() and @import paths |
| TOML | .toml |
All string values that look like paths |
| CSV | .csv |
Path values in any column |
| Environment | .env, .env.local |
Path values in environment variables |
| Log/Text | .log, .txt |
Pre-extracted paths for analysis |
- JavaScript/TypeScript: Excludes npm package namesβonly extracts local file paths
- HTML: Automatically excludes
data:andjavascript:URLs - CSS: Automatically excludes
data:URLs - All types: Handles Windows (
C:\) and Unix (/) paths, plus URLs
13 languages: English, German, Spanish, French, Indonesian, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Ukrainian, Vietnamese, Chinese (Simplified)
VS Code 1.70.0+ β’ Platform Windows, macOS, Linux
Memory 200MB recommended for large files
100% local processing. No data leaves your machine. Optional logging: paths-le.telemetryEnabled
Paths-LE is built for speed and handles files from 100KB to 30MB+. See detailed benchmarks.
| Format | File Size | Throughput | Duration | Memory | Tested On |
|---|---|---|---|---|---|
| HTML | 4K lines | 2,021,212 | ~0.33 | < 1MB | Apple Silicon |
| CSV | 0.5MB | 541305 | ~41.52 | < 1MB | Apple Silicon |
| CSV | 3MB | 865986 | ~155.73 | ~27MB | Apple Silicon |
| CSV | 10MB | 933250 | ~481.72 | ~55MB | Apple Silicon |
| CSV | 30MB | 0 | ~1307.2 | < 1MB | Apple Silicon |
| TOML | 3K lines | 105,104 | ~5.29 | < 1MB | Apple Silicon |
| JSON | 0.12MB | 898921 | ~2.78 | < 1MB | Apple Silicon |
| JSON | 1.21MB | 1253130 | ~19.97 | < 1MB | Apple Silicon |
| JSON | 6.07MB | 2211718 | ~56.58 | < 1MB | Apple Silicon |
| JSON | 24.3MB | 0 | ~253.36 | < 1MB | Apple Silicon |
Real-World Performance: Tested with actual data up to 30MB (practical limit: 1MB warning, 10MB error threshold)
Performance Monitoring: Built-in real-time tracking with configurable thresholds
Full Metrics: docs/PERFORMANCE.md β’ Test Environment: macOS, Bun 1.2.22, Node 22.x
Not detecting paths?
Ensure file is saved with supported extension (.js, .ts, .json, .html, .css, .toml, .csv, .env)
Large files slow?
Files over 10MB may take longer. Consider splitting into smaller chunks
Need help?
Check Issues or enable logging: paths-le.telemetryEnabled: true
What paths are extracted?
Absolute (/usr/local), relative (./src), Windows (C:\Users), Unix (/home) paths
JS/TS imports?
Auto-excludes npm packages (react, lodash) - only extracts local file paths
Cross-platform?
Yes! Handles both Windows and Unix path formats automatically
Max file size?
Up to 30MB. Practical limit: 10MB for optimal performance
289 unit tests β’ 93.55% function coverage, 84.32% line coverage
Powered by Vitest β’ Run with bun run test:coverage
| Module | Tests | Coverage | Focus Area |
|---|---|---|---|
| Extraction Core | 9 | 88% | Main extraction logic |
| Collection Logic | 19 | 95% | Path collection & deduplication |
| JavaScript Format | 13 | 93% | Import/require/export patterns |
| JSON Format | 13 | 97% | Recursive path detection |
| HTML Format | 22 | 90% | Attribute extraction & srcset |
| CSS Format | 16 | 93% | url() and @import extraction |
| CSV Format | 8 | 90% | CSV parsing with quotes |
| DOTENV Format | 11 | 78% | Environment file parsing |
| TOML Format | 9 | 94% | TOML config parsing |
| Path Validation | 64 | 100% | Security & cross-platform paths |
| Error Handling | 62 | 93.55% | Comprehensive error coverage |
| Analysis | 16 | 100% | Path statistics & grouping |
| Validation Utils | 16 | 66% | Input sanitization |
| Settings Schema | 36 | 100% | Configuration validation |
Real-world extraction speeds tested on macOS (Apple Silicon):
- HTML: 1.96M paths/sec (675 lines, 0.03MB file, 667 paths extracted)
- JSON: 2.23M paths/sec (196K lines, 6.07MB file, 125K paths extracted)
- CSV: 1.01M paths/sec (89K lines, 10MB file, 449K paths extracted)
- TOML: 105K paths/sec (1.1K lines, 0.02MB file, 556 paths extracted)
- JavaScript: 914K paths/sec (268 lines, 0.01MB file, 201 paths extracted)
bun run test # Run all 289 tests
bun run test:coverage # Generate detailed coverage report
bun run test:watch # Watch mode for developmentCoverage reports are generated in coverage/ directory (open coverage/index.html for detailed view).
For Extension Users (easiest method):
- Open Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) - Run
Paths-LE: Create Test Fixture - Select a folder where you want to create the test environment
- Follow the prompts to open the generated test workspace
For Developers (from repository):
# 1. Setup test environment
cd test-fixtures/monorepo-test
./setup-symlinks.sh
# 2. Open test workspace
code workspace.code-workspaceTesting the Feature:
-
Enable canonical resolution in VS Code settings:
Paths-le βΊ Resolution: Resolve SymlinksβPaths-le βΊ Resolution: Resolve Workspace Relativeβ
-
Open test file:
packages/frontend/src/symlink-test.js -
Run extraction:
Paths-LE: Extract Paths(Cmd+Alt+P) -
Expected results:
- Before:
./utils-link.js(symlink path) - After:
/full/path/to/packages/shared/src/utils.js(resolved canonical path)
- Before:
The test fixture includes a complete monorepo with symlinks, cross-package imports, and comprehensive documentation for testing all canonical path resolution features.
Why it's disabled:
- May expose sensitive file system paths in extracted output
- Could reveal internal directory structures
- Might leak information about development environment setup
When to enable:
- β Trusted development environments
- β Internal monorepo workflows
- β When you control the output destination
- β Public repositories or shared workspaces
- β When output might be shared externally
Security Settings:
{
"paths-le.resolution.resolveSymlinks": false, // Default: disabled
"paths-le.resolution.resolveWorkspaceRelative": false // Default: disabled
}First-time Warning: When you first enable canonical resolution, Paths-LE will show a security warning dialog with options to:
- Continue with canonical resolution
- Disable and continue with standard resolution
- Learn more about security implications
Copyright Β© 2025 @OffensiveEdge. All rights reserved.