Repository navigation
Releases
ochrepad v0.4.0
Added
-
A terminal. View > Terminal (Ctrl+`) opens a shell in a pane below
the editors, in the open folder; Ctrl+Shift+` opens another. It is a full
terminal (colours, full-screen programs such asvimand Claude Code, the
mouse, scrollback), takes nearly every key while it has the keyboard, and
Ctrl+click opens links and the files and lines compilers and tracebacks
name. Terminal tabs come back with the session. The shell, its arguments
and the scrollback are in Preferences. Seedocs/terminal.md. -
Completion. A list of ways to finish the word you are typing opens
after two characters (or with Ctrl+Space): words and names from your open
documents and the open folder, the language's keywords, and the
functions, types and modules the highlighting finds. Typing the first
letters of a name's parts finds it (gtlforgetTextLength). It needs
nothing installed, stays out of comments and strings, and remembers the
folder between runs so only changed files are read again. Preferences can
turn it off or change when it opens. Seedocs/completion.md. -
Language servers. With rust-analyzer, pyright, gopls, clangd,
typescript-language-server or marksman installed (or another server
added inlsp.json):- the server's suggestions lead the completion list, with their
documentation and the import a name needs; - problems are underlined as you type, counted in the status bar and
listed in View > Problems (Alt+F8 goes to the next one); - resting the pointer on a name shows what the server knows about it,
and typing a call's arguments shows its signature; - Ctrl+Alt+T searches the project's symbols, and the Function List
shows the server's; - F12 goes to a name's definition, Shift+F12 lists its uses, Shift+F6
renames it everywhere, Ctrl+. offers the server's fixes and
refactorings, and Alt+Shift+F formats the document (also on save, if
chosen).
ochrepad asks before a server first runs in a folder, since servers run
project code. View > Language Servers shows each server's state and log.
Seedocs/language-servers.md. - the server's suggestions lead the completion list, with their
-
A ? menu with About, which shows the version, links to the
GitHub repository and crates.io, and the license.
Changed
- A file changed by another program reloads without asking when it has no
unsaved changes, as Notepad++'s "Update silently" does. Settings >
Preferences > Files changed elsewhere turns this off. Files with unsaved
changes, and deleted files, still ask.
Verifying a download
SHA256SUMS.txt lists each file's SHA-256 checksum. Each download also
has a signed record that this repository's release workflow built it,
which the GitHub CLI can check:
gh attestation verify <file> --repo xor295/ochrepadochrepad v0.3.1
Changed
- Building from source (
cargo install ochrepad) needs Rust 1.89 or newer.
Fixed
- Menus from the menu bar always open below it. In a short window a menu
that did not fit used to cover the menu bar or open beside its title; it
now scrolls instead. - The Markdown preview now scrolls with its editor: scrolling the editor
brings the same part of the document to the top of the preview, lined up
at each heading. The preview can still be scrolled by itself until the
editor moves again. - Only one ochrepad runs at a time. Opening a file with ochrepad (Open
with, a double-click, or the command line) while it is running opens the
file in a new tab of the running window instead of starting a second
window that shared, and overwrote, the same session. Starting ochrepad
again brings the running window forward.
Verifying a download
SHA256SUMS.txt lists each file's SHA-256 checksum. Each download also
has a signed record that this repository's release workflow built it,
which the GitHub CLI can check:
gh attestation verify <file> --repo xor295/ochrepadochrepad v0.3.0
Added
- A read-only viewer for large files: files over 256 MB (a setting) open
without being read into memory, so a log of several gigabytes shows its
first screen at once. The line index builds in the background while you
scroll, select, copy (up to 64 MB), go to a line and search (Find
Next/Previous, Count and Find All run in the background). Long lines are
cut after 10,000 bytes with a marker; UTF-8 and legacy encodings are
shown, UTF-16 is refused. View > Open as Editable opens such a file in an
editor (up to 1 GB). The session reopens viewers where they were. - Log tools, for any file (docs/logs.md):
- Search > Filter Lines (Alt+Shift+L) shows only the lines that match a
pattern, or hides them. The gutter keeps the real line numbers, the
search runs in the background, and edits filter again after a pause
(the line you are writing stays). - Highlight rules colour whole lines or matches, or dim lines, in files
named*.logand*.log.*by default: errors red, warnings amber,
debug output dimmed. They are edited in Preferences. - View > Follow (tail -f) adds what another program appends to the
file as it grows, without asking and without an undo step, in UTF-8,
UTF-16 and single-byte encodings; a rotated or truncated file is
reloaded. A filtered file is filtered as lines arrive. - The same tools in the viewer for large files: the filter searches the
whole file in the background and fills the view in as it goes (and
goes on as the file grows), highlight rules colour the lines on screen,
and Follow keeps the end in view until you scroll away from it.
- Search > Filter Lines (Alt+Shift+L) shows only the lines that match a
- Bookmarks, as in Notepad++: Ctrl+F2 bookmarks a line (its number gets a
tag in the accent colour), F2 and Shift+F2 go from one to the next, and
Search > Bookmark clears and inverts them and cuts, copies, removes or
replaces the bookmarked lines (or removes the others). The find panel's
Bookmark button marks every line with a match. Bookmarks follow edits,
are recorded in macros and are kept in the session. - Replace in Files: the find panel replaces every match in a folder's files,
after counting them and asking. Open documents get an undo step; the
other files are saved in the background in their own encoding and line
endings, with a Stop button. Files that would change beyond the matches
(mixed line endings), read-only files and files changed since the count
are left alone and listed. - Change history: the gutter marks the lines changed (blue), added (green)
and deleted (red) since the file was saved. View > Change History turns
it off. - The vertical scrollbar marks the bookmarks, the changed lines and the
caret's place in the document; F8 and Shift+F8 go from change to change. - A right-click menu in the editor: undo and redo, the clipboard, case,
comments and the line's bookmark. - The right-click menu opens a file named at the caret (
src/main.rs:12:5
goes to that line and column) or a web link in the browser, and Search
Results can copy its results. - View > Function List: a panel listing the document's functions, types,
modules and Markdown headings (from the syntax highlighting, so for most
languages), with a filter; click one to go to it. - View > Document List, as in Notepad++: a panel listing the open
documents in tab order, each with its folder. Click one to switch to it,
middle-click to close it. - Undo survives closing a file and restarting ochrepad: each file's undo
history (up to about 2 MB of the newest changes) is kept and comes back
when the file is opened again unchanged, and with unsaved work restored
from a backup. Edit > Clear Undo History forgets it; a preference turns it
off. - File > Save Session… and Load Session…, as in Notepad++: save the open
files, with their carets, scroll positions and the open folder, to a
session file, and open them all again later beside the files already
open. Files that can't be opened are listed; on Windows, network paths
in a session file are not opened. - Matching tags, as in Notepad++: in HTML, XML and the languages built on
HTML (PHP, JSP, Vue and others), the names in the start and end tag of
the element at the caret are outlined, so you can see where it starts
and ends. - File > Export > HTML… saves the document as a web page that looks as it
does in the editor, in the syntax theme's colours (as Notepad++'s
NppExport does). Unsaved changes are included; a document over the
highlighting limit is exported without colours. - Search > Style All Occurrences of Token highlights a word everywhere in
one of five colours (also on the right-click menu), with Clear Style and
Jump Up/Down to go from one occurrence to the next. - Search > Copy Styled Text copies every occurrence of a style's tokens,
one per line, as in Notepad++. - Edit > Multi-select Next and Multi-select All put selections on the
other occurrences of the selected text (or the word at the caret), with
Notepad++'s case and whole-word choices. - Ctrl+F3 and Ctrl+Shift+F3 (Search > Select and Find Next/Previous) find
the selected text or the word at the caret without the find panel. - Smart indentation (a preference, off by default): Enter after an opening
bracket, or a colon in Python, indents one level more, Enter between a
pair puts the closer on its own line, and a closing bracket typed on a
blank line lines up with its partner. - Optional closing of brackets and quotes as you type (Preferences, off by
default as in Notepad++): typing(,[,{,"or'inserts the
partner, typing it again steps over it, and Backspace deletes an empty
pair. - Overtype: Insert switches to typing over the text, as in Notepad++. The
status bar shows OVR and the caret becomes a bar under the character it
replaces; typing never runs past the end of a line. - Edit > Begin/End Select (and in Column Mode), as in Notepad++: mark
where a selection begins, move anywhere, and select up to there. - Edit > Comment/Uncomment > Comment Lines (Ctrl+K) and Uncomment Lines
(Ctrl+Shift+K), as Notepad++'s Single Line Comment and Uncomment: they
add or take off one level whatever the lines already have, where Ctrl+Q
toggles. - Edit > Line Operations > Split Lines (Ctrl+I), as in Notepad++: long
lines are split between words to fit the vertical edge, or the window,
keeping their indentation. - Edit > Convert Case has Notepad++'s Title Case (blend) (Alt+Shift+U),
Sentence case (Ctrl+Alt+U), Sentence case (blend) (Ctrl+Alt+Shift+U)
and ranDOm cASE. - Edit > Text Tools: Format, Minify and Validate JSON (object key order,
numbers and strings are kept exactly; invalid JSON is reported with its
line and column, and the caret moves there), Base64 and URL
encode/decode, and a dialog with the MD5, SHA-1 and SHA-256 hashes of the
selection or the document. They work on each selection, or on the whole
document when nothing is selected, and can be bound to keys and recorded
in macros. - Edit > Text Tools > Hex Encode and Hex Decode, as Notepad++'s Converter
(ASCII to hex and back). - Notepad++'s line commands: Delete Line (Ctrl+Shift+L), Transpose Line
(Ctrl+T), Insert Blank Line Above and Below Current (Ctrl+Alt+Enter,
Ctrl+Alt+Shift+Enter, indented like the line) and Reverse Line Order. - Edit > Blank Operations: trim leading, trailing or both, EOL to Space, TAB
to Space, and Space to TAB (all, or only the indentation). - Edit > Column Editor (Alt+C): text, or a number sequence (initial value,
step, repeat, zeros or spaces for padding, decimal, hex, octal or binary),
inserted at one column down many lines or a column selection. - Edit > Line Operations: Sort Lines by Length, and Randomize Line Order.
- Each document has its own indentation. Opening a file detects tabs or
spaces and the indent width from its text, and the status bar flags files
that mix the two. A document's indentation comes back with the
session. - The status bar's indentation, line ending and encoding are menus: indent
with spaces or tabs and set the width for this document, convert the
indentation, change the line endings, reopen a file with another encoding,
or save it in another encoding (characters that encoding cannot store are
listed, and nothing changes). - Go to Line (Ctrl+G): a line, or
line:column. - Tab indents the selected lines when a selection spans lines; Shift+Tab
unindents the selected lines or the caret's line. Edit > Indent and
Unindent do the same. - Toggle Comment (Ctrl+/) and Toggle Block Comment (Ctrl+Shift+/), with the
comment markers of about 100 languages. - Matching brackets: the bracket beside the caret and its match are
outlined (in red when there is no match). Ctrl+B jumps to the match and
Ctrl+Alt+B selects up to it. - Zoom: Ctrl+plus, Ctrl+minus and Ctrl+0, or Ctrl+mouse wheel, make the
editors' text larger or smaller (10% to 400%) without changing the menus.
The status bar shows the zoom while it is not 100%. - View > Show Symbol, as in Notepad++: spaces and tabs, line endings,
non-printing characters (zero-width and bidi characters, the BOM, unusual
spaces), Show All Characters (Ctrl+Shift+8), indent guides and the wrap
symbol. Hovering a special character's box names it. - A vertical edge line after a chosen column (Preferences).
- View > Full Screen (F11) and Always on Top.
- File > Save All, Save a Copy As…, Reload from Disk and Rename….
- File > Restore Recent Closed File (Ctrl+Shift+T) reopens the files closed
this session, the latest first. A middle click on a tab closes it. - Edit > Paste from History offers the last ten texts copied in ochrepad.
- Edit > Read-Only refuses edits to a document until turned off.
- The tab menu: Close All to the Left and to the Righ...
ochrepad v0.2.0
Added
- Code folding:
Blocks fold by indentation, and Markdown files fold by heading. Click the chevron beside a line number, or use Notepad++'s shortcuts: Ctrl+Alt+F and Ctrl+Alt+Shift+F for the block at the caret, Alt+0 and Alt+Shift+0 for everything, Alt+1 to Alt+8 (with Shift to unfold) for one level. The same commands are in the View menu. Folds are kept with the session. See docs/view.md. - Word wrap (View > Word Wrap)
Long lines wrap at the edge of the pane, after spaces where possible, and their continuation rows are indented like the line. Up and Down move by row; Home and End go to the start or end of the row first, then of the line. - Document map
A zoomed-out view of the document on the right of each editor. Drag its marker to scroll, or click to jump there. View >Document Map turns it off. - Folders File > Open Folder (or
ochrepad <folder>, or dropping a folder
on the window)
shows the folder's files in a sidebar (View > Sidebar, Ctrl+Shift+E). Files ignored by.gitignoreare hidden. The tree follows changes on disk, and its menus create files and folders, rename (F2), copy paths and reveal files in the file manager. Renaming an open file keeps its tab. The folder comes back with the session; File > Recent Folders lists the last ten. - Find All in Current Document and Find All in All Open Documents
list every match in a new Search Results panel; click a result to go to it. Replace All in All Open Documents replaces in every open document after asking, one undo step per document. - Find in Files (Search > Find in Files…, Ctrl+Shift+F):
searches the files in a folder, with filters such as*.rs; *.toml, subfolders, and.gitignored files left out unless asked for. Files in any encoding are found; binary files and files over 50 MB are skipped. Open files are searched with their unsaved changes. Results stream into the Search Results panel, and Stop ends a long search. - Edit > Line Operations: Remove Empty Lines, Remove Empty Lines
(Containing Blank characters), Remove Duplicate Lines and Remove Consecutive Duplicate Lines. They work on the selected lines, or on the whole document when nothing is selected. - Smart highlighting:
selecting text highlights its other occurrences, as in Notepad++.
Changed
- The compare view is editable: each side is a full editor (typing, undo,
multiple carets, syntax highlighting), the two sides scroll together, and
the differences update a moment after you stop typing. A side showing the
saved file stays read-only. - Ctrl+F and Ctrl+H select the search text, so you can type a new search
straight away even when the find panel is already open. - The find panel is more compact: Find All is one menu, Replace and In
Files are toggles, and × closes it. The tab bar is a little taller. - The gutter is one column wider, for the fold margin.
Fixed
- Symbols such as ✓ and ✗ showed as boxes. A system symbol font (Segoe UI
Symbol on Windows, DejaVu Sans Mono on Linux) is now used for characters
the editor font lacks.
Verifying a download
SHA256SUMS.txt lists each file's SHA-256 checksum. Each download also
has a signed record that this repository's release workflow built it,
which the GitHub CLI can check:
gh attestation verify <file> --repo xor295/ochrepadochrepad v0.1.0
The first release, for Windows and Linux.
Editing
- A fast custom editor that stays smooth in files of 100 MB, with a line
number gutter, current-line highlight, smart Home, auto-indent, and undo
that takes back a run of typing in one step. - Column selection (Alt+drag, Alt+Shift+arrows) and multiple carets
(Ctrl+click, Ctrl+Alt+Up/Down), with block copy and paste. - Find and replace with regular expressions, whole word, match case, in
selection,$1replacements, Count, Select All and Replace All. - Macros: record, play once, N times or to the end of the file; save them
with a name and a shortcut. - Case conversion, line sorting (including by a column), duplicate, move,
join lines and trim trailing whitespace. - Clicking a line number selects the line.
Files and windows
- Tabs and split screen, with several views of one file kept in sync.
- Syntax highlighting for over 180 languages, incremental, with a language
picker in the status bar. - Encodings (UTF-8, UTF-16, legacy code pages), BOMs and line endings are
detected and preserved; saves are atomic; binary files are refused. - Backups of unsaved work every few seconds and session restore; optional
automatic saving. - Notices when another program changes or deletes an open file.
- Markdown preview with images, loaded only from this machine.
- Side-by-side compare with aligned lines and changed words highlighted.
Settings
- Preferences for fonts, tabs or spaces, theme, backups and the
highlighting size limit; an editable keymap; recent files; drag and drop. - A warm light and dark theme with ochre accents.
Verifying a download
SHA256SUMS.txt lists each file's SHA-256 checksum. Each download also
has a signed record that this repository's release workflow built it,
which the GitHub CLI can check:
gh attestation verify <file> --repo xor295/ochrepad