eDev Summary
eDev Summary is a Visual Studio Code extension that scans a project directory, collects the content of selected source files, and assembles them into a single structured text output. The output is automatically copied to the clipboard and optionally saved as RESUMEN.TXT, making it straightforward to provide full project context to Large Language Models such as ChatGPT, Claude, or Gemini.

Table of Contents
- Features
- Screenshots
- Installation
- Quick Start
- User Interface
- Comment Removal
- Configuration Schema
- Requirements
- Contributing
- License
Features
Interactive File Tree
The Tree tab renders the project directory as a collapsible, interactive hierarchy.
- Each folder node can be expanded or collapsed independently.
- Files whose extension is not currently selected are displayed as ghost nodes — visually dimmed with italic styling (28 % opacity). A toggle controls whether ghost nodes are visible or hidden entirely.
- Hovering over a folder reveals inline action buttons: +Allow (add to Allowed Directories) and +Excl (add to Excluded Directories).
- Hovering over a file reveals: +Excl (add to Excluded Files) and Open (open the file in the VS Code editor).
- A summary bar below the extension badges shows the count and estimated size of currently included files.
- Toolbar controls: Expand All, Collapse All, Re-scan.
Gitignore Integration
The Read .gitignore button reads the .gitignore file at the configured base path, classifies each pattern as a directory or file exclusion, and merges the results into the corresponding fields without introducing duplicates. A re-scan is triggered automatically.
Extension Filtering
Detected file extensions are presented as selectable badge buttons.
- A real-time text filter narrows the visible badges.
- Bulk-selection controls: Select All, Select None, Invert.
- Changing the selection updates the tree ghost state immediately, without a full re-scan.
Stack Templates
Ten pre-defined exclusion presets are available in the Templates tab:
| Template |
Primary Exclusions |
| React / Next.js |
.next, dist, coverage, node_modules |
| Angular |
.angular, dist, coverage |
| Flutter |
.dart_tool, build, ios/Pods |
| Python |
__pycache__, .venv, .mypy_cache, .pytest_cache |
| Node API |
node_modules, logs, tmp |
| Monorepo |
.turbo, .nx, target |
| Java / Maven |
target, .idea, out |
| Go |
vendor, testdata |
| Rust |
target |
| PHP / Laravel |
vendor, storage/logs, bootstrap/cache |
Summary Generation
Clicking Generate:
- Validates the active configuration.
- Generates the summary via
SummaryGenerator.
- Copies the full content to the system clipboard via the Clipboard API.
- If Save as RESUMEN.TXT is enabled, writes the file to the configured base path.
- Displays a status message confirming the line count, size, and save path.
Configuration Management
- Multiple named configurations can be saved and switched at any time.
- Configurations are persisted in VS Code global settings under
summary1.configurations.
- Configurations can be exported to a
.json file (single or all at once) and re-imported.
- Webview state (selected config, form values) is persisted across VS Code sessions.
Binary File Protection
Files are read as raw buffers. A heuristic inspects the first 8 KB: any null byte, or more than 2 % C1 control characters, classifies the file as binary and skips it silently. This prevents .exe, .png, .dll, .wasm, and similar files from polluting the output.
BOM and Control Character Stripping
Every file read by the generator passes through a sanitization step that removes:
- UTF-8 BOM (
U+FEFF), UTF-16 LE BOM (U+FFFE), and zero-width spaces (U+200B).
- C0 control characters (code points
0x00–0x08, 0x0B, 0x0C, 0x0E–0x1F), preserving TAB, LF, and CR.
The assembled summary is sanitized once more before being returned to the caller.
Screenshots
Configuration Tab

Named configurations, base path, directory allow/exclude lists, and file exclude patterns.
Tree Tab

Collapsible file tree with ghost nodes, inline action buttons, and the file count / size preview bar.
Templates and Generate

Stack preset templates, extension badge selection, and the Generate action with clipboard feedback.
Installation
- Open Visual Studio Code.
- Open the Extensions panel (
Ctrl+Shift+X / Cmd+Shift+X).
- Search for eDev Summary.
- Click Install.
- The eDev Summary icon appears in the Activity Bar.
Quick Start
- Open the eDev Summary panel from the Activity Bar.
- In the Config tab, enter a configuration name and the absolute base path of the project.
- Modify the include/exclude fields as needed, or apply a Template preset.
- Use the Tree tab to review the directory structure and refine exclusions interactively.
- Select the file extensions to include in the Extensions section.
- Click Save to persist the configuration.
- Click Generate. The summary is copied to the clipboard automatically.
Jupyter Notebook Support
The extension includes specialized processing for Jupyter Notebooks (.ipynb). Instead of treating them as raw JSON, it extracts the source content from both code and markdown cells, providing a clean, readable representation of the notebook's logic and documentation.
User Interface
Tabs
| Tab |
Purpose |
| Config |
Name, base path, allowed directories, excluded directories, excluded files |
| Tree |
Interactive file tree with ghost-node filtering and inline actions |
| Options |
Flags: show all extension combinations, remove comments, include statistics, save file |
| Templates |
One-click stack preset application |
| Button |
Behavior |
| Save |
Persists the current form state as a named configuration |
| Generate |
Produces the summary, copies to clipboard, optionally writes RESUMEN.TXT |
| Delete |
Removes the selected configuration from storage |
When Remove Comments is enabled, the generator applies language-specific patterns before appending each file's content.
Supported Syntaxes
| Pattern |
Languages |
Notes |
/* ... */ and /** ... */ |
JS, TS, Java, C, C++, C#, Go, Swift, Kotlin, Rust, Dart, PHP, CSS, SCSS, SQL |
Applied first to avoid interference with line-comment patterns |
// ... |
JS, TS, Java, C, C++, C#, Go, Swift, Kotlin, Rust, Dart, PHP, SCSS |
Negative lookbehind (?<![:/]) ensures https:// and ftp:// are preserved |
<!-- ... --> |
HTML, XML, SVG, Vue, Markdown, Astro |
Applied before line-comment pass for mixed-syntax files |
# ... |
Python, Ruby, Shell, YAML, TOML, INI, Dockerfile |
Matched only at the start of a line or preceded by whitespace; protects mid-token occurrences such as hex color values |
-- ... |
SQL, PgSQL, MySQL, PL/SQL |
— |
Post-removal Cleanup
After pattern application, lines that consist solely of whitespace are cleared, and runs of three or more consecutive blank lines are collapsed to two.
Configuration Schema
"summary1.configurations": [
{
"name": "string",
"directoryPath": "string",
"allowedDirectories": ["string"],
"excludedDirectories": ["string"],
"excludedFiles": ["string"],
"extensions": ["string"],
"showAllExtensions": false,
"removeComments": false,
"includeStats": true,
"generateSummaryFile": true
}
]
Field reference:
| Field |
Type |
Default |
Description |
name |
string |
— |
Unique label for the configuration |
directoryPath |
string |
— |
Absolute path to the project root |
allowedDirectories |
string[] |
[] |
Restrict scanning to these sub-paths. Empty means scan all |
excludedDirectories |
string[] |
[] |
Directory names or paths to skip |
excludedFiles |
string[] |
[] |
File names or glob patterns to skip |
extensions |
string[] |
[] |
File extensions to include (e.g. .ts, .py) |
showAllExtensions |
boolean |
false |
Detect all dot-separated extension combinations |
removeComments |
boolean |
false |
Strip comments before assembling the summary |
includeStats |
boolean |
true |
Prepend a statistics header (file count, line count, size) |
generateSummaryFile |
boolean |
true |
Write the output to RESUMEN.TXT in the base directory |
Requirements
- Visual Studio Code version
1.92.0 or later.
- No external runtime dependencies on the host machine.
Contributing
Bug reports, feature requests, and pull requests are welcome at:
https://github.com/yamidnozu/utilidades
License
MIT. See LICENSE.md for the full text.
| |