Skip to content

Releases

ochrepad v0.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 16:13
ca84453

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 as vim and 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. See docs/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 (gtl for getTextLength). 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. See docs/completion.md.

  • Language servers. With rust-analyzer, pyright, gopls, clangd,
    typescript-language-server or marksman installed (or another server
    added in lsp.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.
    See docs/language-servers.md.

  • 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/ochrepad

ochrepad v0.3.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 05:24
1a8d64c

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/ochrepad

ochrepad v0.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 13:19
d933c44

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 *.log and *.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.
  • 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...
Read more

ochrepad v0.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 02:56
5c228c3

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 .gitignore are 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/ochrepad

ochrepad v0.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 17:10

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, $1 replacements, 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