Repository navigation
Releases: Mr5niper/Code-2-TXT
Release list
Code-2-TXT_v1.3.0.0
Code-2-TXT v1.3.0.0 - Release Notes
This release reworks the options dialog around the most common workflow, replaces the Windows folder picker with the classic tree dialog, fixes a picker bug, and overhauls the README.
New
- Classic folder-tree picker on Windows. Folder mode now opens the classic
tree dialog (a plain expandable folder tree where clicking a folder selects it)
instead of the modern Explorer-style window, where opening and selecting a
folder were the same confusing action. On non-Windows systems, or if the native
dialog is unavailable, it falls back to the standard directory dialog. No new
dependencies.
Changed
- Folder mode is now the default and is listed first in the options window;
main-file mode is second. - Output splitting is on by default. The "Respect .gitignore" option is
therefore enabled when the window opens, since folder mode is the default. - OK and Cancel buttons swapped so OK sits to the left of Cancel. Enter still
confirms and Escape still cancels.
Fixed
- Folder picker no longer opens twice. Previously the picker could reappear
after you had already chosen a folder. It now reliably opens once and honors
your selection.
Documentation
- README rewritten with a clear top-to-bottom flow: what the program is, quick
start, what it does, the options window, output format, building, technical
reference, and troubleshooting. - Added a troubleshooting section and a placeholder for the options-dialog
screenshot. - Corrected the Python requirement to 3.13.12 exactly (was incorrectly listed
as "3.9+"), matching the release build policy, and removed an unnecessary note
about installing tkinter (the build bundles it).
Requirements
- Building the
.exerequires Python 3.13.12 specifically;BUILD_EXE.bat
verifies this and stops on any other version. Build dependencies are pinned in
requirements.txt. The app has no runtime dependencies beyond the Python
standard library.
Code-2-TXT_v1.1.0.0
Code-2-TXT v1.1.0.0 - Release Notes
New features
Options dialog. Replaces the old yes/no mode prompt with a single window containing radio buttons for Main-file vs Folder mode (each with an inline explanation), a checkbox to enable output splitting, and a spinbox for lines-per-part (default 5000, min 100, max 100000). OK/Cancel with keyboard shortcuts (Enter/Esc).
Output splitting. When enabled, the combined output is split across numbered part files (name.part01of03.txt, etc.) near the chosen line target. Splits land on file boundaries where possible. If a single file is larger than the threshold, it's split across parts on line boundaries with explicit continuation markers (FILE START (CONTINUED), SEGMENT n of m, FILE SEGMENT END (MORE IN NEXT PART)) so the pieces can't be mistaken for separate files. Reassembling segments in order reproduces the original file byte-for-byte. Each part ends with a summary footer listing its own entries and the full layout across all parts.
Single-file mode preserved. Splitting off keeps the original behavior: one combined file with an === MANIFEST === listing all entries.
App icon. The window and the built .exe carry an embedded icon.ico (appears in the taskbar, file explorer, and Properties > Details).
Hidden console. The frozen .exe builds as a console app for diagnosability but hides its console window at launch via SW_HIDE, so no black background window or taskbar entry appears for users.
Build system
Reproducible Windows build (BUILD_EXE.bat). Pins Python to 3.13.12 exactly; if absent, prints the python.org download link and stops. Creates and activates a venv, installs pinned build dependencies from requirements.txt, then runs PyInstaller with -F --noupx --clean --console --version-file version.txt. Detects icon.ico and adds --icon / --add-data when present, so the build works with or without the icon.
version.txt is the hand-edited VSVersionInfo(...) block passed directly to --version-file. Edit the four numeric tuples and the FileVersion/ProductVersion strings to bump the version, then rebuild — Windows shows it under Properties > Details.
requirements.txt pins pyinstaller==6.16.0 and pyinstaller-hooks-contrib==2025.9. The app itself has no runtime dependencies beyond the Python standard library.
.gitignore added for build output (build/, dist/, *.exe), the venv, regenerated specs, Python caches, editor/OS noise, and the tool's own combined/split output files.
Documentation
README updated to cover the options dialog, the split-output format, the segment markers used when a single file is too large, and the build steps.
Code-2-TXT_v1.0.0.0
Release Notes – Combine Text GUI (Specialized) EXE
Build Type: Windows standalone executable (PyInstaller)
Interface: GUI-only (tkinter)
CLI: None
Overview
This release packages the Combine Text GUI tool as a single Windows executable, eliminating the need for a local Python installation. The application provides a safe, dependency-aware way to combine text and script files while explicitly avoiding firmware and binary content.
Key Features
Dual Operating Modes
-
Main-File Mode
- Select a primary script file
- Automatically discovers and appends referenced files
- Breadth-first traversal with strict safety limits
- Main file is always included first
-
Folder Mode
- Recursively combines all text-like files under a selected folder
- Skips common build, VCS, and virtual environment directories
Safety & Filtering (Intentional Behavior)
Always-Excluded File Types
The following extensions are never included, regardless of content:
.hex, .bin,
.s19, .s28, .s37,
.srec, .mot,
.xbin,
.ihx, .ihexFirmware Detection
Files are excluded if their contents match:
- Intel HEX records (
:10...) - Motorola S-Record formats (
S19...)
This detection is content-based, not extension-based.
Binary Protection
Files are skipped if they:
- Contain null bytes
- Fail text heuristics
- Exceed binary character thresholds
This prevents accidental inclusion of compiled objects or encoded data.
Output Format
Each included file is wrapped with clear metadata and boundaries:
===== FILE START =====
Path: relative/path/to/file
Absolute: full\absolute\path
Size: #### bytes
Encoding: detected encoding
----- BEGIN CONTENT -----
(file contents)
----- END CONTENT -----
===== FILE END =====
A manifest listing all included files (in order) is appended at the end.
Internal Limits (Hard Caps)
These limits are enforced to prevent runaway traversal:
- Maximum referenced files: 2000
- Maximum dependency depth: 10
- Wildcard expansion: scoped and limited
- Bare filename searches: capped
Packaging Notes
- Built with PyInstaller
- Includes embedded Python runtime
- No external dependencies required
- No command-line arguments supported
- GUI-only by design to avoid path and shell issues
Known Limitations
- No CLI mode
- Not intended for firmware, binaries, or hex dumps
- Dependency resolution is heuristic-based, not language-aware
Intended Use Cases
- Codebase snapshots
- Script dependency audits
- AI / LLM context preparation
- Documentation and archival
- Reviewing automation workflows
Compatibility
- Windows 10 / 11
- 64-bit systems
- No Python installation required
Disclaimer
This tool prioritizes safety, determinism, and clarity over aggressive inclusion.
If a file is excluded, it is intentional.
Use at your own risk. No warranty is implied.