Changelog

All notable changes to the CodePrettify desktop app are documented here.

Browser Extension Microsoft Store App
v1.0.0 Coming Soon

✨ New Features

  • Desktop Performance — Moved the desktop app’s pure data-processing work for JSON/JSONL, XML/RSS, and HTML from the WebView into the C# launcher. The launcher now computes formatted text, validation, diagnostics, statistics, navigator items, CSV/table models, diff results, and minimap line data natively and sends compact results back to the web UI. Initial load now requests only the formatting/validation path, while heavier analysis is loaded on demand when the related tool opens.
  • Native Menu Bar — Added a full native Windows menu bar with File, Edit, View, Tools, and Help menus. The menu bar themes automatically with dark/light mode.
    • File: Open (Ctrl+O), Save As (Ctrl+S), Close Tab (Ctrl+W), Exit
    • Edit: Copy Code (Ctrl+Alt+C), Find (Ctrl+F), Go to Line (Ctrl+G)
    • View: Toggle Beautify (Ctrl+B), Word Wrap, Line Numbers, Minimap, Floating Toolbar (Ctrl+Alt+T), Zoom In/Out, DevTools (F12)
    • Tools: Document Navigator, Table View, Statistics, Diagnostics, Compare with Clipboard (Ctrl+Alt+D), Settings
    • Help: About CodePrettify
  • Tab Bar — Added a native tab bar for managing multiple open files. Tabs are created when opening files via the menu, toolbar, drag-and-drop, or context menu. Tabs show file names with close buttons, and support hover effects and an active accent line. The tab bar is hidden when no files are open.
  • Keyboard Shortcuts — Added Ctrl+O (Open), Ctrl+S (Save As), and Ctrl+W (Close Tab) shortcuts that work across the native menu and web layer.
  • TypeScript Support — Added support for .ts, .mts, and .cts files. TypeScript files are detected by file extension and MIME type, and are formatted and highlighted using the JavaScript handler.
  • HTML Support — Added support for .html and .htm files with a dedicated HTML handler featuring syntax highlighting, code folding for matched HTML tag pairs, clickable URLs in attribute values, and a custom HTML formatter with void element and raw text element awareness. HTML is enabled by default in the desktop app. Context menu integration includes .html and .htm on Windows 11.
  • UI Language Override — Added a language dropdown to the settings modal that lets users override the automatic system locale with any of the 14 supported languages (English, Dansk, Deutsch, Español, Français, Italiano, 日本語, 한국어, Norsk, Português, Русский, Svenska, Tiếng Việt, 中文). Defaults to Auto (system). Changing the language saves the preference and reloads the page with the chosen locale applied to all UI strings.
  • Theme Setting — Added a theme dropdown to the settings modal allowing users to switch between Light, Dark, and Auto (system) themes directly from the settings panel.
  • CSS Validation Line Numbers — Rewrote the CSS syntax validator to use a stack-based approach that tracks the exact line and column of each unmatched brace, parenthesis, or bracket. The error toast now shows a clickable line number that jumps to the first error. Strings and comments are correctly skipped to avoid false positives.
  • JSONL / NDJSON Support — JSONL files are now parsed line-by-line and displayed as individual records with lineN root paths, preserving the original JSONL structure. All JSON features (collapsible tree, breadcrumb, inspector, table view, CSV export, statistics, diagnostics, code folding) work with JSONL. Validation reports errors per-line. The raw view and original download preserve the JSONL format.
  • JSON Path Autocomplete — The JSON path query input now offers real-time autocomplete suggestions as you type, with keyboard navigation (Arrow keys, Tab/Enter to accept, Escape to dismiss). Suggestions are derived from the actual document structure.
  • JSON Path Validation — The query input highlights in red when the typed path is invalid (index out of range, non-existent key), while allowing partial input as the user is still typing.
  • Drag & Drop — Open files by dragging them onto the app window or clicking the file picker.
  • File Handler — When installed, registers as a handler for .js, .json, .css, .xml, .rss, and .atom files.
  • Context Menu — On Windows 11, adds “Open with CodePrettify” directly in the File Explorer right-click menu for supported file types.
  • Loading Indicator — Shows a spinner while formatting large files, hiding raw content until formatting is complete.
  • Offline — Fully functional without an internet connection.
  • Storage Polyfill — Storage and i18n APIs are polyfilled using localStorage and fetched locale bundles.
  • All formatting, highlighting, navigation, and tool features are included.

🐛 Bug Fixes

  • Bug Fix (In-Place Drag & Drop Reinit) — Fixed dropping a file onto the middle of an existing desktop tab opening the new file in raw mode. The in-page reinitialization path now resets transient view state before loading the dropped file, so the new document respects the normal prettified/default view flow.
  • Bug Fix (Language Setting Persistence) — Fixed the language setting not persisting across page reloads. The reload now waits for the storage write to complete before triggering, preventing a race condition where the old value was read back on reload.
  • Bug Fix (HTML Formatter Whitespace) — Fixed the HTML formatter producing extra blank lines when source text between tags contained embedded newlines. Multi-line comments are now split and re-indented per line, and inline text content is properly trimmed before output.
  • Bug Fix (Clickable URLs Not Opening) — Fixed clickable URLs in HTML and RSS attribute values not opening in the desktop app. The WebView2 launcher now intercepts target="_blank" link clicks and opens them in the default system browser.
  • Bug Fix (Inspector Modal Close) — Fixed the JSON path inspector modal closing when clicking inside it or selecting text. The modal now only closes when clicking outside it, pressing Escape, or clicking the close button.

🔧 Improvements

  • UX (Inspector Result Actions) — Added a copy-to-clipboard button on each JSON path query result and reduced the button size for a more compact layout.