All notable changes to the "repotxt" extension will be documented in this file.
Check Keep a Changelog for recommendations on how to structure this file.
- Auto-exclude patterns: Fixed a critical bug where patterns like
*.vsixwould only exclude files in the workspace root, but not in subdirectories. Patterns now correctly match throughout the entire repository structure.
-
Partial File Selection for Reports
You can now include only specific parts of files in the report, not just whole files.- Select any lines in the editor and use the "Add Selection to Report" command (or right-click context menu).
- Files with partial selections are marked with a special badge in the tree; you can clear selections for a file with one click.
- The generated report now shows the selected line ranges for such files.
-
Line and Character Counters
- The status bar now displays the total number of lines, characters, and files that will be included in the report (taking exclusions and partial selections into account).
- Tooltips for files and folders show line, character, and file counts (all stats respect exclusions and partial selections).
- For partially included files and folders, stats are calculated only for the selected ranges.
media/script.js- Switched from full tree re-render to targeted DOM updates.
- Separated caches for structure vs. state; smoother UI with large repos.
- Refactored
updateExpandedStates()andtoggleNode()to use the new helper and avoid duplicate code.
- Removed global
innerHTML = ''; only affected nodes are touched, eliminating blink and reducing GC pressure.
- Webview Interface: Introduced a modern, web-based user interface for a more interactive file browsing experience, featuring multi-select capabilities.
- Interface Switcher: Added a new setting (
repotxt.interfaceType) to allow users to choose between the modernwebviewand the traditionaltreeviewinterface. - Advanced Selection: The webview interface supports multi-selection of files and folders using
Ctrl/Cmd+Clickand range selection withShift+Click. - Dedicated Settings Command: Added a new button in the webview toolbar to directly open the extension's settings page.
- Architectural Overhaul: The extension's codebase has been completely refactored for better modularity and maintainability.
- Core logic for file analysis, exclusion handling, and report generation is now centralized in
RepoAnalyzerCore. - UI components are split into a
TreeViewProviderfor the standard VS Code view and aWebviewProviderfor the new web-based interface.
- Core logic for file analysis, exclusion handling, and report generation is now centralized in
- Report Format: Restored the original, clean report format (
File: ... Content: ...) and fixed the folder structure generation to produce a flat list of paths instead of an indented tree.
- CRITICAL: Partial Exclusion Logic Overhaul. The partial exclusion feature has been completely rewritten to work correctly and intuitively.
- Expandable Excluded Folders: Excluded folders now correctly remain expandable, allowing users to browse their contents.
- Child Item Toggling: Users can now reliably re-include specific files or sub-folders within an excluded directory.
- Correct Parent State: A parent folder's icon now correctly updates to a normal "included" state if any of its children are manually included, providing proper visual feedback.
- Consistent Report Generation: The report generator's logic is now perfectly synchronized with the visual tree. What you see is what you get in the final report.
- Toggling Parent Behavior: Toggling a parent folder's exclusion state now correctly clears any conflicting manual rules on its children.
- Critical: Fixed a bug where files/folders inside a manually included directory could not be excluded. Rule hierarchy is now correctly respected.
- Project-Specific Sessions: The extension now saves manually included/excluded files for each project (workspace). Your choices are restored when you reopen VS Code.
- Reset Exclusions Button: A new "Reset" button (
clear-allicon) has been added to the view title, allowing you to discard all manual changes and revert to the default exclusions from settings.
- Core Exclusion Logic: Completely refactored the exclusion logic to correctly prioritize manual overrides over automatic rules, fixing the bug where session choices were ignored after a restart.
.gitignoreFolder Exclusion: Fixed a critical bug where folders listed in.gitignore(likedist,node_modules) were not being excluded correctly.
- Initial release