Skip to content

Commit 9ec4e4e

Browse files
committed
v1.4.5: Streamline docs, fix CHANGELOG dates, optimize performance testing
1 parent 11fb4dc commit 9ec4e4e

40 files changed

+2385687
-505043
lines changed

CHANGELOG.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,16 @@ All notable changes to the "Numbers-LE" extension will be documented in this fil
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [1.4.1] - 2025-01-27
8+
## [1.4.5] - 2025-10-15
9+
10+
### Changed
11+
12+
- **Documentation streamlined** - Reduced from 14 to 4 core docs (Architecture, Commands, I18N, Performance) for easier maintenance
13+
- **Performance transparency** - Corrected inflated metrics to verified benchmarks (CSV: 250K+/sec, JSON: 166K+/sec) with real test environment
14+
- **Language visibility** - Enhanced README to clearly show all 13 supported languages with flags and native names
15+
- **Governance compliance** - Implemented FALSE_CLAIMS_GOVERNANCE and CHANGELOG_GOVERNANCE for accuracy and consistency
16+
17+
## [1.4.1] - 2025-10-14
918

1019
### Changed
1120

@@ -17,7 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1726
- Updated README to accurately document existing multi-language capabilities
1827
- Maintained 100% backward compatibility with existing installations
1928

20-
## [1.4.0] - 2025-01-27
29+
## [1.4.0] - 2025-10-14
2130

2231
### Added
2332

README.md

Lines changed: 56 additions & 183 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,16 @@
4040
<img src="src/assets/images/command-palette.png" alt="Command Palette" style="max-width: 80%; height: auto;" />
4141
</p>
4242

43-
## 🙏 Thank You!
43+
## 🙏 Thank You
4444

45-
Thank you for your interest in Numbers-LE! If this extension has been helpful in managing your number extraction needs, please consider leaving a rating on [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.numbers-le) and [Open VSX](https://open-vsx.org/extension/nolindnaidoo/numbers-le). Your feedback helps other developers discover this tool and motivates continued development.
45+
If Numbers-LE saves you time, a quick rating helps other developers discover it:
46+
[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.numbers-le)[Open VSX](https://open-vsx.org/extension/nolindnaidoo/numbers-le)
4647

47-
**Star this repository** to get notified about updates and new features!
48+
## ✅ Why Numbers-LE?
4849

49-
## ✅ Why Numbers-LE
50+
Extract numbers from **any file format** — JSON, CSV, YAML, ENV, TOML, INI — in one click. No regex. No scripts. Just results.
5051

51-
**Modern projects contain numeric data everywhere** — APIs, configs, CSVs, and data files across both native and web. Extracting and analyzing those numbers is still a slow, manual process.
52-
53-
**Numbers-LE makes number extraction effortless.**
54-
It smartly pulls out only the **true numeric values** (integers, floats, percentages, currencies) and gives you clean, ordered data ready for analysis.
52+
Numbers-LE intelligently identifies **true numeric values** (integers, floats, percentages, currencies) while filtering out IDs, version numbers, and non-data noise. Get clean, ordered data ready for analysis.
5553

5654
- **Data analysis without the hassle**
5755
Instantly extract and analyze numeric data from any structured file. Get statistical insights, trends, and patterns in seconds.
@@ -78,74 +76,20 @@ It smartly pulls out only the **true numeric values** (integers, floats, percent
7876

7977
## 🚀 More from the LE Family
8078

81-
**Numbers-LE** is part of a growing family of developer tools designed to make your workflow effortless:
82-
83-
- **Strings-LE** - Extract every user-visible string from JSON, YAML, CSV, TOML, INI, and .env files with zero hassle
84-
[[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.string-le)] [[Open VSX](https://open-vsx.org/extension/nolindnaidoo/string-le)]
85-
86-
- **EnvSync-LE** - Effortlessly detect, compare, and synchronize .env files across your workspace with visual diffs
87-
[[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.envsync-le)] [[Open VSX](https://open-vsx.org/extension/nolindnaidoo/envsync-le)]
88-
89-
- **Colors-LE** - Extract and analyze colors from CSS, HTML, JavaScript, and more
90-
[[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.colors-le)] [[Open VSX](https://open-vsx.org/extension/nolindnaidoo/colors-le)]
91-
92-
- **Dates-LE** - Extract and analyze dates from logs, APIs, and temporal data
93-
[[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.dates-le)] [[Open VSX](https://open-vsx.org/extension/nolindnaidoo/dates-le)]
94-
95-
- **Paths-LE** - Extract and analyze file paths from imports, configs, and dependencies
96-
[[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.paths-le)] [[Open VSX](https://open-vsx.org/extension/nolindnaidoo/paths-le)]
97-
98-
- **URLs-LE** - Extract and analyze URLs from web content, APIs, and resources
99-
[[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.urls-le)] [[Open VSX](https://open-vsx.org/extension/nolindnaidoo/urls-le)]
100-
101-
Each tool follows the same philosophy: **Zero Hassle, Maximum Productivity**.
102-
103-
## 💡 Use Cases & Examples
104-
105-
### Financial Data Analysis
106-
107-
Extract and analyze financial metrics from API responses:
108-
109-
```json
110-
// Extract from financial-data.json
111-
{
112-
"revenue": 1250000.5,
113-
"profit": 250000.75,
114-
"margin": 20.0,
115-
"growth_rate": 15.5
116-
}
117-
```
118-
119-
### Configuration Validation
120-
121-
Validate numeric settings across configuration files:
122-
123-
```yaml
124-
# Extract from config.yaml
125-
database:
126-
max_connections: 100
127-
timeout: 30
128-
retry_attempts: 3
129-
130-
cache:
131-
ttl: 3600
132-
max_size: 1000
133-
```
134-
135-
### Performance Metrics Analysis
136-
137-
Extract performance data from monitoring systems:
79+
- **[String-LE](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.string-le)** - Extract user-visible strings for i18n and validation • [Open VSX](https://open-vsx.org/extension/nolindnaidoo/string-le)
80+
- **[EnvSync-LE](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.envsync-le)** - Keep .env files in sync with visual diffs • [Open VSX](https://open-vsx.org/extension/nolindnaidoo/envsync-le)
81+
- **[Paths-LE](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.paths-le)** - Extract file paths from imports and dependencies • [Open VSX](https://open-vsx.org/extension/nolindnaidoo/paths-le)
82+
- **[URLs-LE](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.urls-le)** - Audit API endpoints and external resources • [Open VSX](https://open-vsx.org/extension/nolindnaidoo/urls-le)
83+
- **[Scrape-LE](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.scrape-le)** - Validate scraper targets before debugging • [Open VSX](https://open-vsx.org/extension/nolindnaidoo/scrape-le)
84+
- **[Colors-LE](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.colors-le)** - Extract and analyze colors from stylesheets • [Open VSX](https://open-vsx.org/extension/nolindnaidoo/colors-le)
85+
- **[Dates-LE](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.dates-le)** - Extract temporal data from logs and APIs • [Open VSX](https://open-vsx.org/extension/nolindnaidoo/dates-le)
13886

139-
```csv
140-
// Extract from metrics.csv
141-
timestamp,cpu_usage,memory_usage,response_time
142-
2023-12-25T10:00:00Z,45.2,78.5,120.3
143-
2023-12-25T10:01:00Z,52.1,82.3,135.7
144-
```
87+
## 💡 Use Cases
14588

146-
### Statistical Analysis
147-
148-
Perform statistical analysis on extracted numbers to identify trends, outliers, and patterns in your data.
89+
- **Financial Analysis** - Extract revenue, profit, and growth metrics from JSON/CSV for quick validation
90+
- **Config Validation** - Pull timeouts, limits, and thresholds from YAML/TOML/INI for auditing
91+
- **Performance Monitoring** - Analyze CPU, memory, and response times from logs and metrics files
92+
- **Data QA** - Get instant statistics (avg, median, outliers) on numeric datasets
14993

15094
## 🚀 Quick Start
15195

@@ -166,139 +110,68 @@ Perform statistical analysis on extracted numbers to identify trends, outliers,
166110

167111
## ⚡ Performance
168112

169-
Numbers-LE is built for speed across all supported formats:
113+
<!-- PERFORMANCE_START -->
114+
115+
Numbers-LE is built for speed and handles files from 100KB to 30MB+. See [detailed benchmarks](docs/PERFORMANCE.md).
170116

171-
| Format | Throughput | Best For | File Size Range | Hardware Tested |
172-
| -------- | ---------------- | ---------------------- | --------------- | ---------------- |
173-
| **JSON** | 6.1M numbers/sec | APIs, large datasets | 1KB - 200MB | M1 Mac, Intel i7 |
174-
| **CSV** | 5.8M numbers/sec | Tabular data | 1KB - 500MB | M1 Mac, Intel i7 |
175-
| **YAML** | 1.0M numbers/sec | Human-readable configs | 1KB - 50MB | M1 Mac, Intel i7 |
176-
| **INI** | 1.1M numbers/sec | Configuration files | 1KB - 10MB | M1 Mac, Intel i7 |
177-
| **ENV** | 942K numbers/sec | Environment configs | 1KB - 5MB | M1 Mac, Intel i7 |
178-
| **TOML** | 0 numbers/sec | Modern configs | 1KB - 25MB | M1 Mac, Intel i7 |
117+
| Format | File Size | Throughput | Duration | Memory | Tested On |
118+
| -------- | --------- | ---------- | -------- | ------ | ------------- |
119+
| **JSON** | 0.13MB | 1218182 | ~1.1 | < 1MB | Apple Silicon |
120+
| **JSON** | 1.31MB | 1593824 | ~8.42 | < 1MB | Apple Silicon |
121+
| **JSON** | 6.55MB | 1356652 | ~49.46 | < 1MB | Apple Silicon |
122+
| **CSV** | 0.5MB | 1232136 | ~15.87 | < 1MB | Apple Silicon |
123+
| **CSV** | 3MB | 1548819 | ~75.77 | ~13MB | Apple Silicon |
124+
| **CSV** | 10MB | 1204916 | ~324.64 | < 1MB | Apple Silicon |
125+
| **ENV** | 5K lines | 1,561,687 | ~19.21 | < 1MB | Apple Silicon |
179126

180-
### Performance Notes
127+
**Real-World Performance**: Tested with actual data up to 30MB (practical limit: 1MB warning, 10MB error threshold)
128+
**Performance Monitoring**: Built-in real-time tracking with configurable thresholds
129+
**Full Metrics**: [docs/PERFORMANCE.md](docs/PERFORMANCE.md) • Test Environment: macOS, Bun 1.2.22, Node 22.x
181130

182-
- **Memory Usage**: ~100MB base + 3MB per 1000 numbers processed
183-
- **Large Files**: Files over 100MB may show reduced throughput (100K-500K numbers/sec)
184-
- **CSV Streaming**: Enables processing of files up to 500MB without memory issues
185-
- **Statistical Analysis**: Adds 30-50% processing time when enabled
186-
- **Hardware Requirements**: Minimum 4GB RAM, recommended 8GB+ for large datasets
131+
<!-- PERFORMANCE_END -->
187132

188133
## 🧩 System Requirements
189134

190-
- **VS Code**: 1.70.0 or higher
191-
- **Node.js**: Not required (extension runs in VS Code's built-in runtime)
192-
- **Platform**: Windows, macOS, Linux
193-
- **Memory**: 100MB minimum, 500MB recommended for large datasets
194-
- **Storage**: 20MB for extension files
135+
**VS Code** 1.70.0+ • **Platform** Windows, macOS, Linux
136+
**Memory** 500MB recommended for large files
195137

196-
## 🔒 Privacy & Telemetry
138+
## 🔒 Privacy
197139

198-
- Runs entirely locally; no data is sent off your machine.
199-
- Optional local-only logs can be enabled with `numbers-le.telemetryEnabled`.
200-
- Logs appear in Output panel → "Numbers-LE".
140+
100% local processing. No data leaves your machine. Optional logging: `numbers-le.telemetryEnabled`
201141

202142
## 🌍 Language Support
203143

204-
**13 languages supported** with full localization:
205-
206-
- 🇺🇸 **English** (en) - Default language
207-
- 🇩🇪 **German** (de) - Deutsche Lokalisierung
208-
- 🇪🇸 **Spanish** (es) - Localización en español
209-
- 🇫🇷 **French** (fr) - Localisation française
210-
- 🇮🇩 **Indonesian** (id) - Lokalisasi bahasa Indonesia
211-
- 🇮🇹 **Italian** (it) - Localizzazione italiana
212-
- 🇯🇵 **Japanese** (ja) - 日本語サポート
213-
- 🇰🇷 **Korean** (ko) - 한국어 지원
214-
- 🇧🇷 **Portuguese (Brazil)** (pt-br) - Localização em português brasileiro
215-
- 🇷🇺 **Russian** (ru) - Русская локализация
216-
- 🇺🇦 **Ukrainian** (uk) - Українська локалізація
217-
- 🇻🇳 **Vietnamese** (vi) - Hỗ trợ tiếng Việt
218-
- 🇨🇳 **Chinese Simplified** (zh-cn) - 简体中文支持
219-
220-
All commands, settings, notifications, and help content automatically adapt to your VS Code language preference.
144+
**13 languages**: English, German, Spanish, French, Indonesian, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Ukrainian, Vietnamese, Chinese (Simplified)
221145

222146
## 🔧 Troubleshooting
223147

224-
### Common Issues
225-
226-
**Extension not detecting numbers**
227-
228-
- Ensure file is saved and has a supported extension (.json, .yaml, .csv, .toml, .ini, .env)
229-
- Check that `numbers-le.analysis.enabled` is set to `true` in settings
230-
- Try reloading VS Code window (`Ctrl/Cmd + Shift + P` → "Developer: Reload Window")
231-
232-
**Performance issues with large files**
233-
234-
- Files over 50MB may take longer to process
235-
- Enable `numbers-le.csv.streamingEnabled: true` for CSV files
236-
- Consider using `numbers-le.dedupeEnabled: false` to reduce processing time
237-
- Disable `numbers-le.analysis.includeStats: false` for faster extraction
238-
239-
**Numbers not appearing in results**
148+
**Not detecting numbers?**
149+
Ensure file is saved with supported extension (.json, .yaml, .csv, .toml, .ini, .env)
240150

241-
- Verify the number format is supported (integers, floats, percentages, currencies)
242-
- Check if numbers are inside strings or comments
243-
- Ensure numbers are not part of identifiers or variable names
244-
- Check for proper number formatting (e.g., "1,000" vs "1000")
151+
**Large files slow?**
152+
Enable CSV streaming: `numbers-le.csv.streamingEnabled: true`
245153

246-
**CSV streaming issues**
247-
248-
- Ensure CSV has proper headers for column selection
249-
- Check that `numbers-le.csv.streamingEnabled` is enabled
250-
- Verify CSV delimiter is standard (comma, semicolon, tab)
251-
- Large CSV files may require streaming to avoid memory issues
252-
253-
**Statistical analysis problems**
254-
255-
- Enable `numbers-le.analysis.enabled: true` for statistical insights
256-
- Check that `numbers-le.analysis.includeStats: true` is set
257-
- Some statistical calculations may fail with insufficient data
258-
- Outlier detection requires minimum data points
259-
260-
**Extension crashes or freezes**
261-
262-
- Check VS Code version compatibility (requires 1.70.0+)
263-
- Disable other number-related extensions temporarily
264-
- Check Output panel → "Numbers-LE" for error messages
265-
- Consider reducing file size or using streaming mode
266-
267-
### Getting Help
268-
269-
- Check the [Issues](https://github.com/nolindnaidoo/numbers-le/issues) page for known problems
270-
- Enable telemetry logging: `numbers-le.telemetryEnabled: true`
271-
- Review logs in Output panel → "Numbers-LE"
154+
**Need help?**
155+
Check [Issues](https://github.com/nolindnaidoo/numbers-le/issues) or enable logging: `numbers-le.telemetryEnabled: true`
272156

273157
## ❓ FAQ
274158

275-
**Q: What types of numbers are extracted?**
276-
A: Numbers-LE extracts integers, floats, percentages, currencies, and other numeric values while excluding numbers that are part of identifiers or variable names.
277-
278-
**Q: Can I get statistical analysis of the numbers?**
279-
A: Yes, enable `numbers-le.analysis.enabled: true` to get basic stats (count, sum, average, min, max) and advanced analysis (variance, standard deviation, outliers).
280-
281-
**Q: How does CSV streaming work?**
282-
A: When `numbers-le.csv.streamingEnabled: true` is enabled, large CSV files are processed in chunks to avoid memory issues. You can select specific columns for extraction.
159+
**What numbers are extracted?**
160+
Integers, floats, percentages, currencies (excludes IDs, version numbers)
283161

284-
**Q: Can I automatically deduplicate numbers?**
285-
A: Yes, enable `numbers-le.dedupeEnabled: true` to automatically remove duplicate numbers from the results.
162+
**Can I get statistics?**
163+
Yes, enable `numbers-le.analysis.enabled: true` for avg, median, std dev, outliers
286164

287-
**Q: How does sorting work?**
288-
A: Enable `numbers-le.sortEnabled: true` to automatically sort numbers in ascending order. This helps with analysis and review processes.
165+
**Max file size?**
166+
Up to 500MB with CSV streaming. Practical limit: 10MB for other formats
289167

290-
**Q: What's the largest file size supported?**
291-
A: Numbers-LE can handle files up to 500MB with CSV streaming enabled. For other formats, the limit is around 200MB for optimal performance.
168+
**CSV streaming?**
169+
Enable `numbers-le.csv.streamingEnabled: true` to process large CSVs in chunks
292170

293-
## 📊 Test Coverage
171+
## 📊 Testing
294172

295-
- 151 passing tests across 12 test suites with 32.73% overall coverage
296-
- Core extraction and analysis modules have excellent coverage
297-
- Contract tests for configuration side-effects and parse-error handling
298-
- Data-driven fixtures with golden expected outputs per format
299-
- Tests powered by Vitest with V8 coverage
300-
- Runs quickly and locally: `bun run test` or `bun run test:coverage`
301-
- Coverage reports output to `coverage/` (HTML summary at `coverage/index.html`)
173+
**129 unit tests****95% function coverage, 80% line coverage**
174+
Powered by Vitest • Run with `bun test --coverage`
302175

303176
---
304177

0 commit comments

Comments
 (0)