A developer's editor
for structured text
Markup Pad is a fast, clean text editor for code and structured data on Windows. It brings syntax highlighting for dozens of languages, one-click formatting, a built-in hex viewer, tabbed editing, and crash-proof autosave β in a tidy, distraction-free window.
Installation
Markup Pad is distributed through the Microsoft Store as a single, self-contained package. Install it, and it appears in your Start menu and in Windows Explorer's Open with menu β ready to edit.
WebView2 Runtime is required. Markup Pad's editor is built on Microsoft's WebView2. It ships with Windows 11 and recent Windows 10 updates; if it's missing, Markup Pad shows a prompt with a download link the first time you start it.
No configuration needed. After installation you can open files straight away β from the app, by drag-and-drop, or by right-clicking a file in Explorer and choosing Open with β Markup Pad.
The Interface
Markup Pad is a single window with three zones: a menu bar built into the title bar, a tabbed editor filling the center, and a status bar along the bottom. Everything you open becomes a tab.
To the right of the menus, the title bar has quick-action buttons for Find, Format document, Word wrap, Minimap, and Render whitespace. These buttons (and most menu items) are disabled until a document is open.
Opening a file
There are several ways to open a document:
- Choose File β Openβ¦ (Ctrl+O) and pick a file. The dialog offers All preferred files, All supported files, and individual language filters.
- Drag and drop one or more files from Windows Explorer onto the Markup Pad window β even when no document is open yet.
- In Explorer, right-click a file and choose Open with β Markup Pad.
- Reopen something from File β Open Recent or Open from Recent Folder.
Single instance: Markup Pad runs as one window. Opening a file from Explorer while it's already running adds a tab to the existing window and brings it to the front β you won't get a second copy of the app.
Session restore is on by default. When you reopen Markup Pad, the tabs you had open last time come back automatically β including untitled drafts and unsaved edits (see File Handling).
Tabs & Documents
Every file β and every new draft β lives in its own tab. File β New (Ctrl+N) creates a fresh Untitled document you can start typing in immediately.
The tab menu
Right-click any tab for quick actions:
| Action | What it does |
|---|---|
| Code editor / Hex viewer | Switches that tab between the text editor and the hex viewer |
| Preview Ctrl+Shift+V | Toggles the live preview pane (for previewable formats) |
| Close Ctrl+W | Closes just this tab (you'll be prompted to save unsaved changes) |
| Close All But This | Closes every other tab |
| Close All | Closes all open tabs |
| Reload F5 | Re-reads the file from disk, discarding unsaved changes |
| Copy full path | Copies the file's full path to the clipboard |
| Copy file name | Copies just the file name |
| Reveal in Explorer⦠| Opens the containing folder with the file selected |
A modified tab shows an indicator until you save it. A read-only document β or any tab switched to hex mode β shows a small lock icon.
Editing
Markup Pad uses an editor that feels modern and familiar, with syntax highlighting, bracket matching, multi-cursor, and a minimap.
Find, replace & navigate
| Action | Shortcut |
|---|---|
| Find | Ctrl+F |
| Replace | Ctrl+H |
| Go to Line⦠| Ctrl+G |
Line tools
The Edit menu includes handy text transforms that operate on the whole document or the current selection:
Sort Lines
Sort the selected lines in ascending or descending order.
Trim Trailing Whitespace
Removes stray spaces and tabs at the end of every line.
Convert Indentation
Switch the document's indentation between tabs and spaces.
Format Document
Re-indents and tidies the whole file using its language rules β see Formatting.
View options
From the View menu or the title-bar buttons, toggle:
| Option | Effect |
|---|---|
| Word Wrap | Wraps long lines to the window width instead of scrolling sideways |
| Minimap | Shows the code-overview strip on the right edge |
| Render Whitespace | Makes spaces and tabs visible as faint dots and arrows |
Zoom
Click the zoom indicator in the status bar to open a slider (50β300%), or pick from presets. Reset to 100% snaps back to the default size. Zoom is per the editor view, so it won't change your saved file.
Languages & Formatting
Markup Pad recognises the file's language from its extension and colours the syntax accordingly. For files it can pretty-print β like JSON and XML β one click reflows the whole document.
Setting the language
The detected language is shown in the status bar; click it (or use View β Set Languageβ¦) to choose another. Your preferred languages appear at the top of the list for quick access, followed by the full set Monaco supports.
Automatic language detection
When you open a file whose extension Markup Pad doesn't recognise, it can inspect the contents and pick a language for you. You control this in Settings:
| Mode | Behavior |
|---|---|
| Auto detect language and format | Detects the language and tidies the file automatically |
| Auto detect language | Detects the language but leaves the text untouched default |
| Do nothing | Opens as plain text |
The same set of choices controls the Paste action β what happens to text you paste into an empty document.
When Markup Pad formats a file automatically, it tells you with a brief notification β "The file has been automatically formatted using JSON." β so a freshly opened document is never silently changed without you noticing.
Encoding & line endings
The status bar shows the file's text encoding and line-ending style, and both are clickable:
| Encoding | Reopen the file with a different encoding, or save it with one. Markup Pad detects common encodings (including UTF-8 with or without BOM and UTF-16) when reading. |
| Line ending | Switch between Windows (CR/LF) and Unix (LF) for the document. |
Live Preview
For formats that render to something visual, Markup Pad can show a live preview beside the editor β split down the middle, updating as you type, and scrolling in step with your cursor.
What can be previewed
| Format | Preview |
|---|---|
| Markdown | Rendered as styled HTML β headings, lists, tables, code blocks, and more |
| Mermaid | ```mermaid code blocks inside Markdown are drawn as diagrams |
| HTML | Rendered as the live web page it describes |
| SVG | Rendered as the vector image, centered on a checkerboard backdrop |
Opening the preview
For a previewable document there are three ways to toggle the pane, all reflecting the same state:
- Click the Preview button in the title bar (next to Minimap).
- Right-click the tab and choose Preview.
- Press Ctrl+Shift+V.
The preview opens on the right with a draggable splitter in the middle β drag it to balance the editor and preview; the width is remembered. Each tab keeps its own preview, so you can have several open at once.
Preview is offered only for the formats above, and only in the text editor (not the hex viewer). For other file types the control stays disabled.
Synced with your editing
Live as you type
Edits appear in the preview a moment after you stop typing β no save or refresh needed.
Scroll in sync
Scrolling the editor (wheel, scrollbar, or minimap) scrolls the preview to match, and vice-versa.
Follows the cursor
Move the caret to a line and the preview brings that spot to the middle β handy on a roomy window.
Matches your theme
The preview follows the editor's light or dark theme, including a live switch with Windows.
Preview is per tab and is restored with your session β reopen Markup Pad and a document you were previewing comes back with its preview already open.
Comparing Files
Markup Pad can show the differences between two open documents side by side, using the same editor engine β handy for spotting exactly what changed between two versions of a file.
Open at least two documents in text tabs, then choose View β Open Comparisonβ¦. A separate Comparison window opens and highlights additions and deletions line by line. The comparison is read-only β it never alters either file.
The menu item stays disabled until at least two tabs are open in code mode. Hex tabs are excluded β comparison works on text only.
Choosing the two sides
At the top of the Comparison window, the Left and Right drop-downs let you pick any two of your open documents. Switch either side at any time to compare a different pair without leaving the window.
View options
| Toggle | Effect |
|---|---|
| Side by Side | Switches between a two-column view and a single inline view of the differences |
| Ignore Whitespace | Hides differences that are only spaces, tabs, or trailing whitespace |
| Word Wrap | Wraps long lines to the column width instead of scrolling sideways |
| Show Whitespace | Makes spaces and tabs visible as faint marks |
A status line along the bottom summarises the result β for example "12 differences (7 added, 5 removed lines)", or "Files are identical" when there is nothing to show.
Comparison uses each tab's current, in-memory text, so unsaved edits are included. If one of the files changes on disk while the window is open, a banner appears with a Refresh button to recompute the diff against the latest content.
Hex Viewer
Any tab can switch from the text editor to a built-in hex viewer β ideal for inspecting binaries, checking byte order, or peeking at a file whose format you don't recognise. Right-click the tab and choose Hex viewer.
The hex view has three columns: a left offset margin, a middle column of byte values, and a right column of characters. A draggable splitter lets you balance the two main columns, and the whole file is available β even very large ones.
The hex viewer is read-only. It never changes the file β switch back to Code editor from the tab menu to edit again.
How bytes are interpreted
Three clickable items in the status bar control the hex view. Use the first to choose how the value column is read:
| Setting | Choices |
|---|---|
| Data format | Hexadecimal Β· GUID Β· signed/unsigned integers (8, 16, 32, 64, 128-bit) Β· floating point (Half, Single, Double) |
| Bytes per row | 16, 32, or 64 |
| Encoding | How the character column decodes bytes; non-printable bytes show as . |
Working in hex
Selection
Select bytes in either the value or the character column β the matching bytes highlight in both.
Copy lines
Copy the selected rows complete with offset, hex bytes, and the character view.
Line-break highlight
Optionally draw CR and LF bytes in a distinct colour so line breaks stand out (a setting).
Printing works in hex mode too, producing an offset/hex/character dump.
Open a file Markup Pad doesn't recognise and it offers to show it in hex right away. You can also tick Open in hex mode in the Open dialog to skip straight to hex.
Hex mode needs a file on disk, so it isn't available for unsaved Untitled drafts. Each tab remembers whether it was in code or hex mode when you reopen the app.
File Handling
Markup Pad goes out of its way not to lose your work β and to keep your view in sync with what's actually on disk.
Autosave & crash recovery
Modified and untitled documents are continuously backed up in the background. If the app is closed unexpectedly β or you simply quit with unsaved work β your tabs and their contents come back the next time you start Markup Pad. Nothing is lost.
External change detection
When a file you have open is changed, deleted, or renamed by another program, Markup Pad notices. The Detect file changes setting decides what happens:
| Mode | Behavior |
|---|---|
| Notify me | Asks what you'd like to do β reload, keep your version, or close default |
| Reload automatically | Silently re-reads the file when it changes on disk |
| Do nothing | Ignores outside changes entirely |
Saving protected files
If saving fails because a file is read-only or owned by the system, Markup Pad offers to restart as administrator and complete the save β preserving and restoring all your unsaved changes across the restart. You can also trigger this yourself with File β Restart as Administrator.
Closing a tab or the app with unsaved changes always prompts you first, so you never discard edits by accident.
Printing
Print the active document β text or hex β with File β Printβ¦ (Ctrl+P). Print appearance is configured once in Settings and reused for every job.
| Setting | Description |
|---|---|
| Font | The font family and size used on the printed page (default Consolas, 10 pt) |
| Header & footer | Optionally print the date, file name, file path, and page number in the margins |
| Word wrap | When off, long lines are cut at the page edge instead of wrapping |
| Mark wrapped lines | Prints a grey glyph where a long line was wrapped to fit the page (requires word wrap) |
Recent Files
Markup Pad keeps track of the files and folders you've opened so you can jump back to them. They appear under File β Open Recent and Open from Recent Folder, and on the Recent files page.
| Action | Description |
|---|---|
| Open a recent file | Reopens that document in a tab |
| Clear Recent Files | Empties the recent list |
| Remove Missing Files | Drops entries whose files no longer exist on disk |
Prefer not to keep a history? Turn Save recent files history off in Settings and Markup Pad stops recording opened files.
Settings
Open File β Settingsβ¦ to adjust how Markup Pad looks and behaves. Settings are saved automatically and apply across sessions.
Appearance & behavior
| Setting | Options | Description |
|---|---|---|
| App theme | Light Dark System | The window's colour scheme. Use system setting follows Windows. |
| Editor theme | App System Visual Studio VS Dark High Contrast | The colour theme used inside the editor, independent of the app chrome. |
| Paste action | Detect + format Detect Nothing | What happens when you paste text into an empty document. |
| Detect language for unknown files | Detect + format Detect Nothing | How to handle files whose extension isn't recognised. |
| Preferred languages | Choose⦠| Pick the languages shown at the top of the Set Language menu and the Open dialog. |
| Save recent files history | On / Off | When off, Markup Pad stops recording recently opened files. |
File handling
| Setting | Options | Description |
|---|---|---|
| Detect file changes | Notify Reload Nothing | What happens when an open file is changed, removed, or renamed outside the app. |
Hex & printing
| Setting | Options | Description |
|---|---|---|
| Highlight line breaks in hex | On / Off | Draw CR and LF bytes in a distinct colour in the hex viewer. |
| Print font / header & footer / wrapping | Various | See Printing. |
The About section shows the app version and a link to detailed System Information β handy when reporting an issue (it can be copied to the clipboard in one click). If you ever hit an unexpected error, Markup Pad writes a detailed report to your desktop, ready to send to the developer.
The Status Bar
The strip along the bottom of the window shows live information about the active tab. Most items are clickable.
In code mode
| Item | Meaning |
|---|---|
| Ln / Col / Sel | Current line and column, and the size of any selection |
| Encoding | Click to reopen or save with a different text encoding |
| Line ending | Click to switch between Windows (CR/LF) and Unix (LF) |
| Language | Click to set the editor language |
| Zoom | Click for the zoom slider and reset |
In hex mode
| Item | Meaning |
|---|---|
| Offset / size | Cursor offset and total file size |
| Data format | Click to change how byte values are interpreted |
| Bytes per row | Click to choose 16, 32, or 64 |
| Encoding | Click to choose how the character column decodes bytes |
Supported Languages
Markup Pad highlights the full set of languages bundled with the Monaco editor β over 80 in total. The languages below are the curated preferred set shown first; you can change which appear there in Settings.
Data & markup
Web
Programming
Shell & ops
Don't see your language? It's almost certainly still available β open View β Set Languageβ¦ and scroll past the preferred set to the complete Monaco list, or add it to your preferred languages so it's there next time.
Keyboard Shortcuts
The most-used commands at a glance.
File
Edit & navigate
Tabs & view
Good to Know
A few things that help set expectations and avoid surprises.
Built on WebView2
The editor runs on Microsoft's WebView2 runtime, which is part of Windows 11 and recent Windows 10 builds. On the rare system where it's missing, Markup Pad shows a one-time prompt with a download link.
Hex viewer is read-only
Hex mode is for inspection, not byte editing β it never alters the file. It also needs a saved file, so it isn't offered for unsaved Untitled drafts.
Wide characters in hex
The hex viewer's character column lines up one glyph per byte, so multi-byte scripts (such as CJK text) appear as their individual bytes rather than as composed characters. The code editor displays such text normally.
Your files are safe. Markup Pad only writes when you save. Autosave backups are kept privately in your user profile and used solely to restore your session β your originals are never touched until you choose to save.
Tips & Tricks
Tidy a messy JSON or XML file fast
- Open the file (or paste the text into a new document).
- Make sure the language is right β the status bar shows it; set it if needed.
- Press Ctrl+Shift+F or click Format document in the title bar.
Peek inside an unknown file
Open it and accept the prompt to view it in hex β or right-click any tab and choose Hex viewer. Switch the data format and bytes-per-row from the status bar to read structures the way you need.
Pick up where you left off
Just close Markup Pad β your open tabs, including untitled drafts and unsaved edits, are restored automatically next time. No need to save everything first.
Make your favourite languages one click away
Open Settings β Preferred languages β Chooseβ¦ and tick the languages you use most. They'll sit at the top of the Set Language menu and the Open dialog's filter list.
Dark mode, your way
Set the App theme and the Editor theme independently β for example a light window with a Visual Studio Dark editor, or follow Windows for both.
Markup Pad is free, so a quick rating on the Microsoft Store is the best way to say thanks. It also helps other developers discover it, and it takes less than a minute.
β Rate Markup Pad on the Microsoft Store