Changelog

All notable changes to CodePrettify are documented here.

Browser Extension Microsoft Store App
v1.0.34 Latest April 2026

Fixed

  • Search Result Navigation — Pressing Enter repeatedly in the floating search field now moves to the next result instead of getting stranded on the first match.
v1.0.33 April 2026

Changed

  • Search Without Losing Your Place — Typing or pasting in the floating search field now highlights every match and updates the result count without moving the editor viewport. Press Enter, click the new search button, or use the previous / next arrows to navigate explicitly from the current visible position.
  • Smarter Reload Recovery — Per-file view state now keeps only the 10 most recent files and expires entries after one hour, so accidental reload recovery stays useful without stale state piling up.

Fixed

  • Fixed restored search text re-running navigation during reload; saved queries now re-highlight passively so the remembered line position remains intact.
  • Fixed reload recovery storing only explicit highlighted lines; view state now saves and restores the actual viewport line and scroll position.
v1.0.32 April 2026

Fixed

  • Runtime Inspect Module Neutralization — Fixed Runtime Inspect falsely reporting SyntaxError: missing ) after argument list on valid JavaScript bundles that generate import and export module source inside template literals, including es-module-shims. The sandbox module neutralizer now skips strings, comments, and template-literal text before rewriting real module syntax for the classic worker harness.
v1.0.31 April 2026

New Features

  • Markdown Preview — CodePrettify now supports .md and .markdown pages plus Markdown HTTP responses, with a safe rendered preview that keeps embedded HTML visible without executing scripts.
  • Regex Playground Upgrade — The Regex Playground now includes replace mode, live replacement preview, named saved patterns, reusable test cases, and snippet export for JavaScript, C#, and PowerShell.
  • Table View Upgrade — Table View now adds per-column filters, drag-and-drop column reordering, column type summary chips, selected-row CSV / JSON export, and smoother large-table handling.
  • HTTP Client Upgrade — The HTTP Client now includes timeout and cancel controls, timing breakdowns, multipart/form-data and GraphQL body modes, and secret masking in previews, history, and Copy As snippets.
  • Smarter JSON Diagnostics — Statistics & Diagnostics for JSON now flags duplicate keys, suspicious timestamps, and likely OpenAPI / JSON Schema structure issues, with quick-fix guidance in the results.

Improvements

  • Clearer HTTP Error Guidance — HTTP Client failures now distinguish timeout, cancellation, and blocked-response cases with clearer guidance for CORS, mixed content, DNS, certificate, and offline issues.
  • More Accurate JS Runtime Tools — JavaScript Playground autocomplete and Runtime Inspect now understand modern JavaScript and TypeScript declarations more accurately, including destructuring, imports, exports, and code outside strings or comments.

Bug Fixes

  • Table View Filtering — Filtering large virtualized tables now stays stable after scrolling, and the filter inputs render directly inside the column headers.
  • Cleaner JS Suggestions and Inspect Results — Fixed false JavaScript Playground autocomplete and Runtime Inspect entries that were previously being created from JavaScript-looking text inside strings or comments.
v1.0.30 April 2026

New Features

  • Launcher Page and Install-only Welcome — Clicking the extension icon now opens a dedicated launcher with direct buttons for the prettify editor, HTTP Client, JavaScript Playground, and Regex Playground. The welcome page is now reserved for first install so regular use starts from actionable tools instead of onboarding.
  • HTTP Client — The old cURL / fetch generator is now a full request editor available on any HTTP page. Build and send requests from one modal with dedicated Params, Auth, Headers, and Body tabs, then inspect the response in Body, Headers, Cookies, and Raw tabs.
  • Saved Requests and Environments — Save named requests per environment, sync them across supported browsers, and use {{variable}} placeholders in URLs, headers, auth fields, and bodies with a live resolved-URL preview before you send.
  • Import and Copy-As Workflows — Import existing cURL commands, then copy the current request as cURL, fetch(), or PowerShell Invoke-RestMethod snippets after editing it.

Improvements

  • Localized Launcher and Welcome — The new launcher flow and the refreshed welcome page are now localized across all supported browser languages instead of only shipping complete copy in the initial rollout languages.
  • Playground Editor Polish — The JavaScript Playground editor now keeps the caret visible on blank new lines, and reopening saved Playground content places the cursor at the end of the restored code so you can keep typing immediately.

Bug Fixes

  • Performance and UI Stability — Fixed overlapping animation frame hook issues, scroll-position loss when toggling formatted views, and restored the "Copy" floating action on HTTP (non-secure) domains via a fallback copy mechanism.
v1.0.29 April 2026

New Features

  • Regex Playground — A new focused modal (Ctrl+Alt+R or floating toolbar “More actions”) for testing patterns against the currently displayed document. Enter a pattern without slashes, toggle gimsuy flags, and matches highlight live in the main CodeMirror viewer. A cursor-aware details panel shows capture groups and named groups for the active match. Includes a built-in guide with quick-reference examples you can load with one click, a show/hide toggle remembered in local storage, and a wide-screen layout that docks the guide as a full-height right sidebar. The last 10 patterns are saved to synced storage so recent expressions follow your browser profile.

Improvements

  • Copy Button Mode Memory — The floating Copy button now remembers the last copy mode selected from its dropdown (Original, Formatted, or Minified) in synced settings and reuses that mode on direct clicks. Its tooltip and accessible label reflect the active mode, and the copy confirmation toast names the exact mode that was used.

Bug Fixes

  • Bug Fix (Regex Playground Backdrop Dismiss) — Fixed the Regex Playground closing when clicking outside the modal, matching the safer behavior of the JavaScript Playground and protecting in-progress regex work from accidental dismissal.
  • Bug Fix (Regex Playground Layout) — Fixed the wide-screen Regex Playground layout so the lower match/details area stretches to fill the available modal height instead of leaving unused space.
  • Bug Fix (Regex Playground Localization) — Fixed localized Regex Playground strings across browser locales, including restoring broken non-ASCII characters in languages such as Norwegian, while keeping the help/examples section intentionally English-only.
v1.0.28 April 2026

New Features

  • Runtime Inspect Panel — On JavaScript files, a new More actions entry (Ctrl+Alt+I) runs the current document in the existing sandbox iframe through a blob Web Worker and reports every top-level declaration with its captured value. Variables show their final value, functions their parameter signature, classes are listed, and any runtime or syntax errors are surfaced at the top. Each row is a jump-to-line button and the panel also shows any console.* output emitted during load.
  • Inline Value Annotations — After Inspect runs, each top-level let, const, var, function, and class declaration gets a small muted arrow with a summary of its captured value at end-of-line (let total = price * 1.25; → 125). A “Show values inline in the viewer” checkbox in the Inspect modal toggles them live, and a dedicated “Clear inline values” entry is added to the More actions menu for quick dismissal.
  • Hover Tooltips in the Viewer — After Inspect runs, hovering any identifier reference in the main JavaScript viewer pops a tooltip showing the captured name → value for that symbol. Works on every usage, not just at the declaration. Tooltips flip around the cursor to stay inside the viewport and disappear when you leave the editor, scroll, or press “Clear inline values”.
  • Include JSON & JSON Lines in the Playground — The Playground's “Include {filename}” option now works on .json files — the parsed payload is prepended as const json = …; — and on .jsonl files, which become const json = [ …records ] with malformed lines skipped. The variable is always called json regardless of filename, autocomplete surfaces it, and an inline “Note — the document is available as the json variable in your code.” banner is shown above the output panel while the option is active.
  • Quick-Access Toolbar Buttons — CodePrettify now learns which “More actions” items you use most. Every time you open one of the modals from the ⋮ menu a per-action counter is saved to browser sync storage, and once you've used an action more than ten times it's promoted to a dedicated toolbar button immediately after the More button — up to three at a time. The list is filtered by the current file type, so “JSON path inspector” only surfaces on JSON documents and “Inspect Runtime” only on JavaScript. Counts persist across devices when sync storage is available, so your personal shortcuts follow you between profiles. Counts also tick up when the action is triggered by a keyboard shortcut, not just menu clicks.

Bug Fixes

  • Bug Fix (Playground Error Line Numbers) — Syntax errors in the Playground used to report line numbers from the worker's internal harness rather than your actual code — a typo on line 1 could surface as “line 184”. Error messages now use the line number in your combined buffer, label the location as “in your code” or “in included document” when the “Include {filename}” option is active, and echo the actual text of the offending line beneath the error so you can see at a glance what the parser tripped on.
  • Bug Fix (ES Modules with Block Comments) — Fixed the Playground / Inspect preprocessor occasionally corrupting files that contained import or export example lines inside multi-line /* … */ comments. The preprocessor now emits only comment-neutral replacements, so rewriting inside comments is a no-op and can no longer leak into executable code as phantom parse errors on lines the user never wrote.
  • Bug Fix (Sandbox Initialisation Warning) — Silenced a sporadic Unsafe attempt to load URL …/sandbox.html from frame with URL …/sandbox.html console warning by consolidating the JS validator and the Playground / Inspect harness onto a single shared sandbox iframe bridge. Each page now creates the iframe exactly once and routes all validation, execution, and inspection traffic through a single message listener with per-request timeouts.

Improvements

  • ES Module Syntax in the Sandbox — Both the Playground and Inspect harnesses now neutralize ES module syntax before the code reaches the classic Worker, so real-world module files no longer fail with Cannot use import statement outside a module. Static import statements are rewritten into local const stubs, re-exports and export lists are stripped, export keywords are dropped from declarations, dynamic import(…) resolves to {}, import.meta becomes an empty object, and a self.require stub is injected so CommonJS files also keep running.
  • Editable CodeMirror API — The bundled viewer gains two opt-in decoration channels: setInlineAnnotations / clearInlineAnnotations / hasInlineAnnotations for end-of-line widgets, and setHoverValues / clearHoverValues / hasHoverValues for cursor-driven identifier tooltips. Both fields map defensively through changes so stale ranges can never surface as uncaught errors during input.
  • Symbol Extraction with Line NumbersextractJsSymbolsFromCode now carries every captured symbol's 1-based source line, computed with a precomputed line-offset table and binary search. This powers the Inspect panel's jump-to-line buttons, the inline annotation placement, and refines the Playground's autocomplete ordering.
  • Refreshed Settings Shortcuts Overview — The settings modal's Keyboard Shortcuts section now includes Ctrl+Alt+P (JavaScript Playground) and, when viewing a JavaScript file, Ctrl+Alt+I (Inspect Runtime). Shortcuts that don't apply to the current file type stay out of sight.
  • Registered the fa-eraser and fa-magnifying-glass-chart Font Awesome solid icons used by the new toolbar entries.
v1.0.27 April 2026

New Features

  • JavaScript Playground — Added a sandboxed scratchpad accessible from the floating toolbar's More actions menu or with Ctrl+Alt+P. Runs your code inside a blob Web Worker with configurable 1 / 5 / 15 second timeouts and top-level await support. Captures console.log, info, warn, error, debug, and console.table (rendered as a real HTML table with sticky headers), and reports the return value, execution time, and full stack traces for syntax and runtime errors.
  • Include Current Document — When viewing a JavaScript file, an opt-in “Include filename” checkbox prepends the displayed source to your Playground code so top-level functions and variables from the page are in scope.
  • Autocomplete in the Playground — A floating suggestion list surfaces functions, methods, classes, and variables extracted from both the Playground buffer and the current document (when the include option is on). Parameter signatures are shown inline, and accepting a callable appends () with the caret placed between the parentheses. Auto-triggers after two characters or with Ctrl+Space, navigate with /, accept with Enter or Tab, dismiss with Esc.
  • Playground Persistence — Playground code, timeout, and “Include” preference autosave to chrome.storage.local five seconds after your last keystroke and immediately on every Run, so you can close the modal, switch tabs, and resume your scratchpad where you left off regardless of which file you open it from.

Improvements

  • Editable CodeMirror Viewer — Opt-in editable mode unlocks in the bundled CodeMirror wrapper so the Playground (and future editors) get history, indent-on-input, bracket matching, folding, and line numbers. Existing read-only viewers are unaffected.
  • Tab & Shift+Tab Indent — Tab and Shift+Tab indent and dedent inside the Playground editor (two-space unit, multi-line aware) instead of cycling focus to the surrounding modal buttons.
  • Safer Modal Close — The Playground modal closes only via Esc or the explicit close button. Backdrop clicks no longer dismiss it, so unsaved scratchpad work stays put.
  • Playground Scrollbar & Caret — Overrode the shared read-only CodeMirror theme inside the Playground so vertical scroll, sensible min-height, and a visible text caret all work correctly in the editable editor.
  • Textarea Fallback — Added a plain <textarea> fallback for the Playground editor if the CodeMirror editable viewer fails to initialize in degraded environments, keeping the feature usable.

Bug Fixes

  • Bug Fix (Decoration RangeError) — Hardened the shared decoration state field in the bundled CodeMirror viewer so a transient out-of-range range set cannot bubble up as an uncaught RangeError: Position X is out of range for changeset of length Y during editor input. Falls back to an empty decoration set instead of crashing.
v1.0.26 April 2026

Improvements

  • Go To Line Memory — The Go To Line modal now remembers the last line number you used during the session and pre-selects it when reopened, so repeated jumps near the same line require less retyping.

Bug Fixes

  • Bug Fix (parseInt Radix) — Fixed CSS rgb() and rgba() color parsing and the settings modal font size and indent size readers to pass an explicit decimal radix to parseInt, avoiding ambiguous numeric parsing on values with leading zeros.
v1.0.25 April 2026

Bug Fixes

  • Bug Fix (Loader Fallback) — Fixed the loader so normal HTML pages served on extension-like routes such as .json or .ts are no longer briefly hidden before CodePrettify decides not to activate.
  • Bug Fix (XML Source Round-trip) — Fixed XML source round-tripping in the browser viewer so downloading the original XML preserves legitimate source attributes instead of stripping values that happened to match CodePrettify loader markers.
  • Bug Fix (PNG Export Scope Selector) — Fixed PNG export options so the “As shown in browser” and “Full code” scope selector is now available across supported PNG-exportable document types, with the selected scope applied consistently.
  • Bug Fix (Download Modal CSV Details) — Fixed the download modal so CSV readiness details are hidden while the PNG export options panel is open.
v1.0.24 April 2026

Bug Fixes

  • Fixed multiple potential crashes from missing null checks, including in the settings modal, code folding handlers, and CSS color parser.
  • Hardened security by sanitizing ZIP export paths to prevent path traversal and by correctly escaping URLs for fetch command generation.
  • Improved performance by adding memoization to JSON path mapping, reducing the threshold for expensive diff operations, and adding a depth limit to recursive analysis.
  • Replaced all inline onclick event handlers with delegated listeners to improve security and maintainability.
  • Added a timeout to the UTF-8 recovery fetch to prevent indefinite hangs on unresponsive servers.
  • Prevented a potential crash on invalid color values in CSS and ensured the minimap redraws when font size changes.
  • Clarified the browser build and install guidance so manual unpacked installs use the generated build ZIP or source checkout instead of Chrome-managed extension folders that include reserved _metadata files.
v1.0.23 April 2026

Bug Fixes

  • Bug Fix (Export Filenames) — Fixed export filenames so downloads no longer repeat labels such as formatted, min, or table when the original filename already ends with the same label.
  • Bug Fix (PNG Export Fallback Feedback) — Improved image export fallback behavior so highlighted PNG exports keep their colored formatting when the primary DOM capture path is unavailable, and empty captures now show an error state instead of a success toast.
v1.0.22 April 2026

Bug Fixes

  • Bug Fix (Sandbox Validation Isolation) — Fixed sandboxed JavaScript validation leaking page-side security errors on some raw script documents by moving the classic-script syntax check into a worker-backed parse path that never runs top-level page code during validation.
v1.0.21 April 2026

Bug Fixes

  • Bug Fix (Search Navigation) — Fixed large-document search navigation so the active result now lands near the middle of the editor viewport when possible, making next and previous result jumps easier to follow.
v1.0.20 April 2026

Improvements

  • Settings Sync Storage — Persistent extension settings now move into browser sync storage so supported browsers can keep CodePrettify preferences aligned across profiles.
  • Legacy Storage Migration — Existing local codePrettifySettings and codePrettifyViewStates entries now migrate automatically to the shorter settings and viewStates keys, with cleanup of the old local settings key after migration.
v1.0.19 March 2026

Bug Fixes

  • Bug Fix (Minimap Viewport Alignment) — Fixed the minimap viewport drifting lower than the actual editor scrollbar on large CodeMirror-backed documents, including CSS files with word wrap disabled, by mapping the overlay to the real scrollable range.
v1.0.18 March 2026

Bug Fixes

  • Bug Fix (Classic JavaScript Validation) — Fixed the syntax checker falsely rejecting some valid minified classic JavaScript files, including real-world bundles such as moment.min.js, by validating standard scripts with the browser parser before falling back to module-aware parsing when needed.
  • Bug Fix (TypeScript Script Handling) — Fixed TypeScript documents being validated and linkified as plain JavaScript by preserving the actual script file type for syntax checks and extensionless relative imports.
  • Bug Fix (Validation Diagnostics) — Fixed sandbox startup and validation transport failures being reported as successful checks. Diagnostics now surface an unavailable-validation warning instead of silently marking the script as valid.
  • Bug Fix (Legacy Charset JS Source) — Fixed valid UTF-8 JavaScript bundles being read as mojibake on some raw browser pages that fell back to legacy document encodings, which could surface false syntax errors.
  • Bug Fix (Release Packaging) — Fixed the browser release build so the packaged extension keeps the shared CodeMirror validator bundle while excluding the unused browser js/html.js asset.
v1.0.16 March 2026

New Features

  • Copy Format Menu — Added a copy format context menu on the floating toolbar copy button with options to copy original, formatted, or minified code to the clipboard.

Bug Fixes

  • Bug Fix (XML Word Wrap) — Fixed prettified XML and RSS word wrap adding an extra blank continuation line for long values by removing the trailing rendered space from each XML line.
  • Bug Fix (JavaScript Navigator) — Fixed the Document Navigator showing an empty outline for JavaScript documents in the shared CodeMirror viewer by deriving navigator items from the displayed source text instead of legacy DOM fold markers.
  • Bug Fix (Centered Line Navigation) — Improved line navigation so both Document Navigator jumps and the Go To Line modal center the target line within the active editor viewport when possible.
  • Bug Fix (HTML Injection Boundary) — Stopped injecting the desktop-only HTML handler into browser pages so regular HTML documents remain untouched and the extension stays limited to supported raw-code formats.
  • Bug Fix (Build Packaging) — Fixed the browser release build so the generated ZIP now places the extension files at the archive root and removes stale Font Awesome SVG entries from the built manifest after asset inlining.
v1.0.15 March 2026

New Features

  • Welcome Page Sample Links — Replaced third-party "Try it now" example links on the localized welcome page with hosted sample files from https://prettify.cloud/testfiles/, including both basic and product-list JSON fixtures alongside JSONL, YAML, JavaScript, CSS, and XML samples.
  • RSS/XML JWT & Base64 Decoding — JWT tokens and Base64 encoded strings in XML and RSS text content are now detected inline with decode icons and hover tooltips, matching the existing JSON decode feature.
  • RSS/XML Unix Timestamp Formatting — Unix timestamps in seconds and milliseconds are now detected in XML/RSS text content and show human-readable date/time hover tooltips alongside ISO 8601 and RFC 822 dates.

Bug Fixes

  • Bug Fix (XML Decode Tooltip) — Fixed the decode hover tooltip crashing with Cannot set properties of undefined on XML pages. Element creation now uses the XHTML namespace so tooltips render correctly in XML document contexts.
  • Bug Fix (JSON Decode Hover) — Fixed JSON JWT and Base64 decode hover tooltips silently failing in the browser extension. The decode methods were moved to UiHelper but the container and codeBlock event handlers still referenced JsonHandler, causing the hover to be skipped.
  • Bug Fix (Raw View Toolbar Spacing) — Fixed the top-right toolbar button keeping minimap padding on raw CSS and other raw-code views when the minimap itself was hidden. The toolbar and content gutter now only reserve right-side space when the minimap is actually visible.
v1.0.14 March 2026

🐛 Bug Fixes

  • Bug Fix (Inline JWT & Base64 Decode) — Restored inline JWT and Base64 decode affordances across prettified CodeMirror-backed documents. HTML text nodes and JavaScript string values that render decode widgets now get the same hover tooltip and decode-icon click behavior as the existing JSON and RSS/XML viewers.
v1.0.13 March 2026

✨ New Features

  • Export Filenames — Downloads now use the source file's base name with a HHMMSS timestamp suffix so repeated exports are easier to distinguish. Formatted, minified, and table exports keep a short label before the timestamp, and image export follows the same naming pattern.
  • Welcome Page (Local Files Note) — Added a note on the welcome page informing users they must enable "Allow access to file URLs" in Chrome's extension management page (chrome://extensions) to use CodePrettify with local file:/// URLs. Localized in all 14 languages.
  • Code Viewer Migration — Replaced the in-page content viewer with a bundled CodeMirror 6 surface so raw-code documents now render inside a modern editor engine instead of the previous Prism-driven DOM renderer.
  • RSS/XML Timestamp Formatter — RSS and XML date values now show the same human-readable hover tooltip formatting for ISO 8601 and RSS-style publication dates in text nodes and attribute values.
  • VS Code Theme Pass — Tuned the shared light and dark editor palettes to track VS Code more closely, including gutter, selection, active-line, fold placeholder, and search-match colors.

🐛 Bug Fixes

  • Bug Fix (JSON Inspector & Breadcrumbs) — Fixed several JSON interaction regressions. Selected paths, copied paths, pasted queries, and autocomplete now normalize consistently to valid $-prefixed JSONPath; clicking a JSON property key maps the clicked editor line back to the correct path and opens the inspector again; value clicks plus gutter and fold clicks no longer trigger it accidentally; inspector result actions now resolve the correct destination line immediately, including top-level arrays; and JSON breadcrumb hover is visible again, stays stable on screen, omits the hover copy button, and still excludes gutter and fold controls.
  • Bug Fix (JSON Viewer Tools) — Fixed JSON-only viewer tools that regressed after the viewer migration. The Document Navigator now derives its outline from the parsed JSON structure and jumps to the correct formatted lines, and Unix timestamps plus ISO 8601 string values once again show human-readable date/time tooltips in prettified and raw JSON documents.
  • Bug Fix (CSS Color Picker) — Restored the CSS color picker. CSS swatches in read-only documents once again open the popup with live preview and copyable HEX, RGB, and HSL values, and the CSS color picker setting now properly enables or disables those swatches.
  • Bug Fix (Viewer Layout & Minimap) — Fixed several browser viewer layout issues. The theme class now updates before the minimap redraw so palette changes apply immediately, the pretty view resets the browser page's default body margin and repaints the minimap background with the active light or dark palette, and short documents now keep their padded content inside the viewport-sized minimum height instead of forcing a page-level vertical scrollbar.
  • Bug Fix (RSS/XML Browser Rendering) — Fixed the remaining RSS/XML browser-view regressions after the viewer migration. The minimap no longer crashes on Chromium XML viewer pages because the offscreen cache now uses an XHTML canvas element, and XML, RSS, and Atom documents are routed back through the stable legacy markup renderer after the viewer migration exposed a mount failure there.
v1.0.12 March 2026

✨ New Features

  • YAML Support — Added support for .yaml and .yml files plus common YAML response content types (application/yaml, application/x-yaml, text/yaml, text/x-yaml). YAML documents now load automatically in the extension with syntax highlighting, prettified indentation cleanup, line numbers, export support, search, diff, and the existing toolbar tools.
  • YAML Settings — Added a YAML file-type checkbox in settings so you can disable default prettified mode for YAML. When turned off, YAML documents open in raw view by default.

🔧 Improvements

  • Performance (Large Files) — Replaced DOM parsing with direct insertAdjacentHTML injection across all language handlers (JS, JSON, CSS, XML/RSS, HTML, YAML) eliminating major memory bottlenecks, exponential string concats, and GC thrashing. Files load significantly faster.
  • Performance (Minimap Render) — Offloaded code minimap rendering to an internal Canvas element, ending UI blocking main-thread pauses when calculating the preview map.
  • Performance (Bracket Matching) — Re-worked JS and JSON bracket hover matching to cache structural positions rather than doing repetitive N-depth DOM queries on every pointermove.

🐛 Bug Fixes

  • Bug Fix (Locale Encoding Repair) — Fixed corrupted localized UI strings in the Portuguese browser locale so the extension renders the intended text again.
  • Bug Fix (YAML Settings Selector) — Fixed the settings modal not selecting .YAML automatically for YAML files. The file-type dropdown now includes YAML so the active file type is shown correctly when opening settings on .yaml and .yml documents.
  • Bug Fix (Line Scroll Nudge) — Fixed a UI bug where clicking "Go To Line" or clicking a line number would cause the entire parent container to mysteriously nudge 1 pixel to the left on horizontally scrolled pages due to inconsistent inline behavior in browser scrollIntoView implementations. Replaced with strict Y-axis coordinate scrolling.
  • Bug Fix (YAML Error Detection) — The lightweight YAML validator now catches malformed flow collections such as unclosed [ / {, unexpected closing tokens, and mismatched flow delimiters so invalid YAML files surface an error toast instead of silently rendering as valid.
v1.0.11 March 2026

✨ New Features

  • Welcome Page — Added a localized welcome/onboarding page that opens automatically on first install and anytime the user clicks the extension toolbar icon. Explains how the extension works, lists supported formats with try-it-now links, highlights key features, keyboard shortcuts, and points users to the settings gear. Localized in all 14 languages.
  • UI Icons — Switched the extension UI icons to Font Awesome 7.2 Pro. Toolbar actions, menus, export actions, toasts, and decode affordances now use the bundled Font Awesome assets under css/fa/, and the build keeps only the CSS and WOFF2 files that are actually used.
  • TypeScript Support — Added support for .ts, .mts, and .cts files. TypeScript files are detected by file extension and text/typescript / application/typescript content types, and are formatted and highlighted using the JavaScript handler.
  • 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.

🐛 Bug Fixes

  • Bug Fix (Language Setting Persistence) — Fixed the language setting not persisting across page reloads. The reload now waits for chrome.storage.local.set to complete before triggering, preventing a race condition where the old value was read back on reload.
  • Bug Fix (Line Number Gutter) — Increased the shared code gutter spacing so formatted code no longer sits cramped against the line-number column. The wider gutter applies to the browser extension and keeps fold toggles aligned.
  • Bug Fix (CSS Selector Spacing) — Fixed the shared CSS formatter adding an extra space before { when selectors already had spacing. CSS beautification now normalizes selector-to-brace spacing to a single space.
v1.0.10 March 2026

✨ New Features

  • JSONL / NDJSON Support — Added support for JSON Lines (.jsonl) files and application/x-ndjson / application/jsonl content types. JSONL files are parsed line-by-line and displayed as a JSON array, with full access to all existing JSON features including collapsible tree view, breadcrumb navigation, inspector, table view, CSV export, statistics, diagnostics, and code folding. Validation reports errors per-line. The raw view preserves the original 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.

🐛 Bug Fixes

  • 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 (Local File Menu) — Removed the HTTP context and cURL/fetch buttons from the More menu when viewing local files (file:// URLs), since there is no HTTP request data to display.
  • 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.
v1.0.9 March 2026

🔧 Improvements

  • Privacy Update (Removed webRequest) — Removed the webRequest permission and background HTTP caching entirely to strictly adhere to Browser Plugin least-privilege guidelines. The application now exclusively relies on parsing directly readable DOM elements and fallback data, drastically improving compliance without compromising rendering functionality. The HTTP Context and cURL/Fetch generators have been cleanly stripped of unavailable header data.
  • Shareable View State — Disabled automatic URL hashing to prevent cluttering browser history. Replaced it with an explicit "Share configuration URL" button in the More actions menu (only visible on non-local web URLs).
  • UX (cURL/Fetch button visibility) — The cURL / fetch generator button is now only shown for JSON and RSS/XML files, where it is most relevant, and hidden for JavaScript and CSS views.

🐛 Bug Fixes

  • Bug Fix (Toolbar Position on Small Files) — Fixed the top toolbar buttons (settings, show raw) keeping unnecessary right-side spacing when the minimap is hidden because the file is too small to scroll. The toolbar now adjusts its position together with the minimap visibility.
  • Bug Fix (Image Export Content Corruption) — Fixed the PNG image export rendering UI-only elements such as fold toggles () and fold previews (Array(2), 20 keys) into the exported image. The export now strips these decorative elements so the image contains only the actual code.
  • Bug Fix (Sandbox PostMessage) — Fixed the sandbox validator reply using a reconstructed origin that could silently fail to deliver responses. The sandbox now always replies with window.parent.postMessage and a wildcard target origin, which is safe because the content script validates responses by unique random id.
v1.0.8 March 2026

✨ New Features

  • Compare with Clipboard (Diff View) — Added a full-screen split-view diff tool accessible from the More menu or via Ctrl+Alt+D. Paste or type code in the input area and click Compare to see a side-by-side highlighted diff against the current document. Features line-level diff using an LCS algorithm (with a fast fallback for documents over 20,000 lines), color-coded added/removed/unchanged lines, synchronized scrolling between panels, line statistics, and a swap-sides button. Close with the × button or press Escape. Available in all 14 locales.

🐛 Bug Fixes

  • Bug Fix (XML Declaration & Attributes) — Fixed the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) being silently stripped from XML files after Chrome's DOM parser discarded it during serialization. The declaration is now reconstructed from document.xmlVersion and document.xmlEncoding. Also fixed extension-injected attributes (class="pretty-loader-active", data-code-prettify-injected) leaking into the captured original source for XML files.
v1.0.7 March 2026

✨ New Features

  • Table View — Added a Table View for JSON files containing arrays of objects and for XML/RSS files with repeating elements (e.g. RSS feeds, data catalogs). Accessible from the More menu, it renders the data as a sortable, scrollable HTML table with type-aware cell formatting (color-coded nulls, booleans, numbers, strings, and nested objects). Includes search/filter, truncated cells that expand on click, and large datasets load in 500-row chunks with "Load more" and "Load all" buttons. Close with the × button or press ESC. Available in all 14 locales.
  • HTML Table Export — New download option that exports table-viewable data (JSON arrays or XML repeating elements) as a plain .html file with a basic <table>. Works for both JSON and XML/RSS.
  • CSV Export for all XML structures — CSV export now works for any XML file whose data can be displayed as a table, not just RSS/Atom feeds with <item> or <entry> elements.

🐛 Bug Fixes

  • Bug Fix (Minified ES Module Validation) — Fixed false Invalid JS syntax detected warnings on valid minified or single-line JavaScript modules ending with top-level export statements. The sandbox validator now recognizes module syntax that appears after minified statement boundaries such as ; and } instead of only at the start of a new line.
v1.0.6 March 2026

✨ New Features

  • Settings Shortcuts — Added a direct Report Issues & Ideas button in the settings modal alongside the changelog link, pointing to https://support.prettify.cloud/.

🐛 Bug Fixes

  • Bug Fix (Localization — Simplified Chinese) — Completed the missing Simplified Chinese UI strings for RSS statistics/settings, HTTP context, and JSON path tools, and replaced English fallback text with native labels so the Chinese UI is no longer partially untranslated.
  • Bug Fix (Localization — Remaining Locales) — Added the missing RSS statistics and RSS settings strings to the remaining locale bundles so every shipped locale now has full message-key parity with English.
v1.0.5 March 2026

✨ New Features

  • Base64 & JWT Decode Modal — Clicking a JSON decode icon now opens a dedicated modal showing both the original encoded value and the decoded content in separate read-only textareas, making long payloads much easier to inspect and copy.
  • Regex Search — Added regex support to the floating search bar using /pattern/flags syntax, while keeping plain-text search as the default. Invalid regex input now shows an inline error instead of failing silently.
  • Persistent View State — Added capped per-URL state storage in extension local storage so fold state, search text, highlighted line, and display mode are restored automatically for recently viewed files, while keeping the existing shareable URL-hash state.
  • Document Navigator — Added a new outline navigator for JSON, JavaScript, and XML/RSS documents so large files can be browsed structurally and jumped to quickly from the More menu.
  • Diagnostics & Warnings — Added a diagnostics panel that combines syntax status, document warnings such as very long lines or mixed indentation, and file-type-specific insights for JSON, JS, CSS, and XML/RSS.

🔧 Improvements

  • CSV Export Guardrails — Tightened Download as CSV so it only enables for table-like data. JSON export now requires a top-level array of flat objects, while RSS export requires at least one item or entry with child fields. When the structure does not qualify, the CSV option is disabled and explains why.
  • CSV Explainability — Expanded CSV export feedback with readiness details such as detected rows, columns, root type, and unavailable-state reasons in both the download flow and diagnostics panel.
  • UX (Decode Tooltip Label) — Updated the hover tooltip for Base64/JWT values to clearly label the content as decoded output before showing the decoded value.

🐛 Bug Fixes

  • Bug Fix (JSON Folding State) — Fixed an intermittent issue where prettified JSON could appear stuck in a collapsed one-line state. JSON folding now uses structural line metadata instead of counting braces/brackets in rendered text, so string values containing {, }, [, or ] no longer corrupt expand/collapse behavior or restored fold state.
  • Bug Fix (cURL Generator on Windows) — Fixed generated cURL commands failing in Windows shells. The command generator now strips the extension's shareable view-state hash from copied URLs and emits Windows-safe curl.exe commands with compatible quoting for headers and URLs.
  • Bug Fix (Base64/JWT Decode Rendering) — Fixed JSON decode affordances not appearing reliably because the structured JSON renderer could fall back to plain Prism output when localized decode labels were not available inside the JSON handler.
  • Bug Fix (Decode Icon Click Conflict) — Fixed decode icon clicks also triggering the JSON path inspector. Decode icon interactions are now isolated from the JSON value click handler.
  • Bug Fix (Decode Modal Selection) — Fixed the decode modal closing while selecting text inside its textareas. The modal now closes only when clicking outside the modal surface.
  • Bug Fix (XML Loader Crash) — Fixed the lightweight page loader crashing on some raw XML and XHTML documents opened from file: URLs because the root element did not expose dataset. The loader now uses a plain root attribute marker instead of documentElement.dataset, so supported XML files can be detected and injected safely.
v1.0.4 March 2026

✨ New Features

  • cURL / fetch Generator — Generate copy-pasteable cURL and fetch() commands for the current URL directly from the More menu in the floating toolbar.
  • Timestamp Formatter — Detect Unix timestamps (seconds and milliseconds) and ISO 8601 date strings in JSON values and show human-readable date/time tooltips on hover.
  • Clickable URLs in JSON — URL string values in JSON are now detected and rendered as clickable links, including URLs embedded within longer string values, similar to the existing RSS/XML link feature.
  • Export to CSV — Convert structured JSON objects/arrays or RSS/Atom feed items into downloadable CSV tables directly from the page.
  • Code Minimap — A scrollable, syntax-aware minimap injected on the right edge of the screen for quick navigation through large document structures. Can be disabled in settings and automatically hides on short files.
  • Beautify to Image — Export a cropped PNG rendering of the currently visible formatted code natively via <canvas>.
  • Base64 & JWT Decoding — Inline tooltips that securely decode Base64 payloads and JWT tokens hovering directly over the JSON values.
  • HTTP Context Panel — Added a request details panel that shows the current resource URL, content type, encoding, response and transfer size hints, and timing information.
  • JSON Path Tools — Added a JSON path inspector for the selected breadcrumb path plus query support for quickly locating matching values in large JSON documents.
  • Shareable View State — Added URL-hash state sharing so search text, line navigation, fold state, and view settings can be restored from a copied link.

🔧 Improvements

  • Toolbar — Reduced the floating toolbar clutter by moving secondary actions into a compact More menu that opens on hover or keyboard focus.
  • JSON Interaction Settings — Split JSON hover breadcrumbs from click-to-open inspector behavior. Hover breadcrumbs are now disabled by default, while JSON inspector on click is enabled by default and configurable in settings.
  • Performance — Replaced global CSS/script content script injection with a lightweight detector plus on-demand background injection for supported raw-code pages.
  • Localization — Moved runtime UI strings into Chrome/Firefox locale bundles so the extension uses one i18n system instead of a separate lang.json file.
  • Accessibility — Improved modal keyboard handling with focus trapping, ESC-to-close behavior, button semantics, and better ARIA labels.
  • Security — Tightened the sandbox CSP and added stricter message validation in the syntax-checking sandbox.

🐛 Bug Fixes

  • Word Wrap Fix — Fixed word wrap so it now applies correctly to rendered JSON lines in pretty view instead of being overridden by per-line white-space rules.
  • Bug Fix (ES Module Validation) — Fixed false syntax error warnings on valid JavaScript files that use ES module import/export statements. The sandbox validator now detects module syntax and skips the classic-script wrapper check.
  • Bug Fix (Breadcrumb Localization) — Replaced hardcoded breadcrumb tooltip strings such as "Jump to root" and "Copy path" with localized messages from the locale bundles, and propagated the newer JSON settings labels across all locale bundles.
v1.0.3 March 2026

🐛 Bug Fixes

  • Prism.js Auto-Highlighting — Fixed Prism.js running highlightAll() on every website, which could break syntax highlighting on sites like GitHub, Stack Overflow, and MDN. Prism is now set to manual mode so it only highlights within the extension's own container.
  • CSS Leaking to Other Sites — Fixed unscoped .token CSS rules (syntax highlighting colors) being injected globally on all pages. All token styles are now scoped under #pretty-container to prevent interference with other websites.
  • View Source Interference — Added protocol guards to prevent the extension from activating on view-source:, chrome:, and about: pages.
v1.0.2 January 2026

✨ New Features

  • Content-Type Detection — The extension now detects file types using HTTP Content-Type headers in addition to URL file extensions. This enables proper formatting of API endpoints like https://api.github.com/users/github that serve JSON without a .json extension.

🐛 Bug Fixes

  • RSS Code Folding — Fixed collapse/expand functionality for RSS/XML files not working correctly. Rewrote the fold system to use data attributes and indexed line access, matching the JS handler approach.
  • Toolbar Buttons — Fixed collapse/expand buttons in the toolbar not appearing or disappearing dynamically when toggling the code folding setting. Buttons are now always created for supported file types and show/hide based on settings.
  • Page Rendering — Fixed an issue where normal websites could turn white when the extension loaded. Added a pre-check loader that only applies content hiding for supported file types.
v1.0.1 January 2026

✨ New Features

  • RSS/Atom Feed Support — New file format support for .rss and .atom files with syntax highlighting, auto-formatting, code folding for XML elements, clickable URLs (with entity decoding), and feed statistics (tags, attributes, namespaces, etc.).
  • Code Folding (JS) — Collapse/expand functions, classes, objects, and code blocks. Hover over a foldable line to see the fold toggle. Use Collapse All / Expand All buttons in the toolbar. Can be enabled/disabled in settings.
  • Bracket Matching (JS) — Hover over {, (, or [ to highlight its matching pair. Both brackets are highlighted with visual feedback. Can be enabled/disabled in settings.
  • Code Folding Setting (JSON) — Added a setting to enable/disable the collapsible JSON feature.
  • Code Statistics Panel — View file size, line count, and character count. Language-specific stats: JSON (object depth, key count, array sizes), JS (function count, variable count), CSS (selector count, rule count, media queries).
  • Hex/RGB Color Preview (CSS) — Color swatches appear next to color values. Click to copy color in different formats. Includes a color picker.
  • Breadcrumb Navigation (JSON) — Shows path like root › data › users[0] › name when hovering/clicking. Click any breadcrumb to jump to that level.
  • Clickable URLs & Imports — URLs in strings and import/require paths are now clickable links.

🔧 Improvements

  • Unified Layout — Adjusted all modal windows, toolbars, and UI elements to use CSS variables instead of hardcoded colors for consistent theming.
  • Enhanced Syntax Checker — Removed vanilla JavaScript validation and replaced it with a sandboxed environment for safer and more accurate syntax checking.

🐛 Bug Fixes

  • RSS Feed Rendering — Fixed issue where RSS feeds opened in a background tab (XHTML mode) failed to render correctly or caused high CPU usage. Now waits for tab visibility before rendering.
v1.0.0 Initial Release January 2026

🚀 Smart Automation

  • Auto-Format: Automatically detects messily formatted code and beautifies it with your preferred indentation
  • Intelligent Minification Detection: Analyzes code density—if a file is minified, it formats it automatically; if it's already clean, it adds syntax highlighting
  • Local File Support: Works seamlessly on web URLs and local files (file://) opened in the browser
  • Zero-Flash Loading: Engineered to prevent raw text from flashing before the beautifier loads

🛡️ Syntax Validation & Error Checking

Don't just read code—debug it. CodePrettify scans your files for common errors with instant feedback.

  • JSON: Detects syntax errors and provides the exact line number
  • JavaScript: Identifies mismatched braces, brackets, and common typos
  • CSS: Validates structural integrity
  • Instant Feedback: Invalid code triggers non-intrusive toast notifications with error details

📂 Interactive JSON Viewer

  • Collapsible Data: Fold arrays and objects to navigate large datasets easily
  • Smart Previews: See summary info (e.g., Array(5) or {3 keys}) when blocks are collapsed
  • Clickable Links: URLs inside JSON strings automatically become clickable hyperlinks
  • Expand/Collapse All: Dedicated buttons to manage massive JSON files instantly

🛠️ Powerful Toolkit

  • Advanced Search: Custom search bar (Ctrl+F) with result counting and navigation—works even on huge files
  • Go To Line: Jump straight to specific lines (Ctrl+G), perfect for debugging stack traces
  • Export Options: Download your file in three formats: Original, Formatted, or Minified
  • Copy to Clipboard: Quick one-click copy functionality

⚙️ Fully Customizable

  • Themes: Choose between Light, Dark, or Auto (syncs with system)
  • Format Settings: Adjustable font size (10-24px), indentation (2 or 4 spaces), and line numbers
  • Privacy First: 100% client-side—your code never leaves your browser

⌨️ Keyboard Shortcuts

  • Ctrl+B — Toggle Raw/Pretty view
  • Ctrl+Alt+C — Copy to Clipboard
  • Ctrl+F — Open Search Toolbar
  • Ctrl+G — Go to Line
  • Ctrl+Alt+T — Toggle Toolbar

🌐 Multi-Language Support

Supports 14 languages including English, Norwegian, German, Spanish, and Chinese.