String-LE: Zero Hassle String Extraction
Instantly extract every user-visible string in VSCode
JSON YAML CSV TOML INI ENV
Screenshot Guide
✅ Why String-LE
Modern projects scatter text everywhere — APIs, configs, CSVs, and locale files across both native and web. Keeping those strings consistent is still a slow, manual grind.
String-LE makes extraction effortless.
It smartly pulls out only the true user-visible strings (never numbers, IDs, or raw values) and gives you a clean, ordered set of text that’s ready for production.
i18n without the hassle
Instantly extract and de-duplicate locale strings into en.json , fr.json , or any language pack. Keep translation files lean and in sync across your codebase.
Clarity across configs & APIs
Surface every user-facing message hidden in JSON, YAML, .env , and more. Validation errors, system prompts, and API responses are cataloged in one place.
Confident edits in complex specs
YAML, TOML, INI, OpenAPI… flatten nested strings into a simple list you can safely edit without breaking structure or formatting.
Stream massive CSVs
Work with millions of rows without locking up VS Code. Select only the columns you need and stream results directly to the editor.
Automatic cleanup built-in
- Sort for stable diffs and reviews
- Dedupe to eliminate noise
- Trim whitespace (NEW)
- Casing rules (coming soon 1.1.0)
- Chunk Splitting (coming soon 1.1.0)
Fast at any scale
Benchmarked at millions of lines per second, String-LE keeps up with large datasets and enterprise monorepos without slowing you down.
🚀 Quick Start
- Install from the VS Code Marketplace.
- Open any supported file type (
Cmd/Ctrl + P String-LE ).
- Run Quick Extract (
Cmd+Alt+E / Ctrl+Alt+E / Status Bar).
⚙️ Configuration
string-le.openResultsSideBySide – Open to the side
string-le.csv.streamingEnabled – Toggle CSV streaming
string-le.dedupeEnabled – Auto-dedupe strings
string-le.sortEnabled – Auto-sort output
- Safety Guards – File size warnings & thresholds
- Notification Levels – Control verbosity and alerts
⚠️ Behaviors & Limits
- CSV support assumes standard delimiter/quoting; unusual dialects not supported
- Large outputs can be slow to open — use Copy when prompted
- Streaming applies only to CSV; other formats load in memory
- Multi-line strings (e.g., YAML block scalars) are only partially supported
- CSV multi-line and all-column extracts stream to the editor only (no auto-copy)
- Sorting and deduplication apply to final strings, not their original positions
- Fallback mode uses quoted-string heuristics and may include false positives
See CONFIGURATION.md .
String-LE is built for speed across all supported formats:
Format |
Throughput |
Best For |
ENV |
4M+ lines/sec |
Environment configs |
JSON |
1.8M+ lines/sec |
APIs, large datasets |
INI |
1.3M+ lines/sec |
Configuration files |
TOML |
530K+ lines/sec |
Modern configs |
CSV |
440K+ lines/sec |
Tabular data |
YAML |
190K+ lines/sec |
Human-readable configs |
See PERFORMANCE.md .
🌍 Language Support
English + 12 translations:
- Chinese (Simplified), Spanish, French, Russian, Portuguese (Brazil)
- Japanese, Korean, German, Italian, Vietnamese, Ukrainian, Indonesian
See I18N.md .
🔒 Privacy & Telemetry
- Runs entirely locally; no data is sent off your machine.
- Optional local-only logs can be enabled with
string-le.telemetryEnabled .
- Logs appear in Output panel → “String-LE”.
See PRIVACY.md .
📊 Test Coverage
- 100% unit coverage on pure extraction and transforms
- Contract tests for configuration side-effects and parse-error handling
- Data-driven fixtures with golden expected outputs per format
- CSV streaming paths covered (batching, header/column selection)
- Stable locale sorting and dedupe normalization in harness
See TESTING.md .

🤝 Contributing
We welcome all contributions! Whether it's code, ideas, or feedback:
Copyright © 2025
@nolindnaidoo. All rights reserved.
| |