Skip to content

Releases: saeeedhany/ase

v0.4.0-beta

v0.4.0-beta Pre-release
Pre-release

Choose a tag to compare

@saeeedhany saeeedhany released this 17 Sep 19:10

The first release not called alpha. 90 commits and 70 ADRs since v0.3.0-alpha.

Beta because the gaps that stop an editor being a daily driver are closed, and the ones that lose your work are closed twice. Not because nothing is left — see Still open.

Highlights since v0.3.0-alpha

Your work is hard to lose now

  • Atomic save — a save writes to a temporary beside the file and renames over it, so an interrupted or failed write leaves the original intact rather than truncated.
  • Crash recovery — unsaved changes are snapshotted a moment after you stop typing, somewhere that is not beside your files, and offered back on the next launch. That now includes a buffer you never named: Ctrl+N, type, crash, and it is still there. Verified against a real SIGKILL.
  • Session restore — files, carets and scroll positions, but only when you launch with no arguments. ase foo.c means foo.c.

A keyboard with a law

  • Five layers, each with a reason rather than a free slot: bare keys are Vim's, Ctrl is what you bring from other editors, Ctrl+W is structure, Alt is this editor's own, F<n> asks the language server.
  • Regions have a vocabulary — Ctrl+W j/k/w/c/o/+/-, Vim's window prefix with Vim's window keys. Pressing the prefix alone shows what it is waiting for.
  • Every binding is data — key.ctrl+s = editor.save in your config, including two-chord sequences, per-Vim-mode bindings, none to unbind, and plugin commands. A binding naming a command that does not exist is reported when you save the config, not silently ignored.
  • A half-typed Vim command now shows in the status bar as you type it.

Language server, the other half

  • Find references and a document outline, both in a navigable panel you can reach and drive from the keyboard without touching the buffer.
  • Go-to-definition, a jumplist, diagnostics, completion and hover, sharing one server per language per project.

Looks

  • Three built-in palettes — :theme to list, :theme <name> to see it live, :theme save to keep it. A colour you set by hand stays yours.
  • Git gutter marks — added, changed and deleted per line, hidden while an unsaved edit has moved the lines around.
  • The seam between the editor and the panel below it is a hairline you can drag, at rest until you go near it.

Documentation that cannot drift

  • A Guide covering install, configuration, themes, keybindings, Vim mode, language servers and writing a plugin.
  • A Reference generated by the binary from its own tables — every command, every default binding, every config key. CI regenerates it and fails on a diff, so it cannot describe an editor that no longer exists.

Fixed

  • Typing in a large file is up to 70× faster. Past 256KB the syntax parse is meant to wait for a pause in typing. It never had: refreshCache() zeroed the capture window each keystroke and the caret measurement re-parsed the whole file four statements later. 290KB of C went from 4008µs a keystroke to 56.
  • Ctrl+S could save the wrong file. Every viewport registered its commands into one shared table that skipped names already present, so the first buffer opened owned every editor.* command for the session — silently, because that buffer was clean.
  • A plugin command no longer destroys your undo history. Its edit is recorded as a single step, so u takes back the command and everything before it survives.
  • :editor.save reported an unknown command while the same name worked as a key binding. One resolution order now, shared by both.
  • Shift+V painted a one-pixel sliver on the line below the selection; B behaved like b; cW ate the following space; Alt+; did nothing at all, because Qt parses "Alt+;" and not "Alt+Semicolon" and an empty key sequence installs a shortcut that can never fire.

Platforms

Linux. That is where the GUI is built, tested and packaged. The core library is built and tested on macOS and Windows in CI, but the GUI has never been built on either — treat them as unverified rather than supported. On Windows ase_process_spawn() is unimplemented, so the language server and :compile are present and do nothing.

Downloads

File What it's for
Absolute_Simple_Editor-0.4.0-beta-x86_64.AppImage Run directly on most x86_64 Linux distros — chmod +x, then run it.
ase_0.4.0-beta1_amd64.deb Debian/Ubuntu — sudo apt install ./ase_0.4.0-beta1_amd64.deb
Arch Linux Use packaging/arch/PKGBUILD from the source tree — cd packaging/arch && makepkg -si

Verify a download against SHA256SUMS (also attached):

sha256sum -c SHA256SUMS

v0.3.0-alpha

v0.3.0-alpha Pre-release
Pre-release

Choose a tag to compare

@saeeedhany saeeedhany released this 12 Sep 15:45

Highlights since v0.2.0-alpha

New:

  • Vim mode, on by default — Normal/Insert/Visual (charwise and linewise), motions h j k l 0 ^ $ gg G w b e, operators d y c composable with motions and counts (3j, d2w, 3dd), x, p/P, u/Ctrl+R, o to swap selection ends, and : for the command line. A real block cursor in Normal/Visual, with the character under it knocked out so it stays readable.
  • Multiple buffers — a viewport per file behind a minimal, custom-painted tab strip: no frames or separators, state carried by opacity, a dot only when a buffer has unsaved changes. Ctrl+Tab / Ctrl+W / Ctrl+N, and Shift+wheel to pan when the tabs overflow.
  • The plugin host is wired into the GUI — <config dir>/plugins/ loads at startup, and :name runs any registered command. It had existed as a tested core library with nothing calling it.
  • Runtime font zoom — Ctrl+= / Ctrl+- / Ctrl+0, live, independent of config.ase.
  • Syntax accent colours — types and strings in two accent colours instead of italics; everything else stays monochrome.
  • A typing pop-in animation, and a rewritten welcome screen that leads with what the editor is, then the shortcuts that matter.
  • Panel text fields draw the editor's own caret — the Find, Open/Save-As, command-line and shortcut-search fields now glide and breathe like the editor's caret instead of hard-blinking.
  • Open/Save-As behaves like a file dialog — a typed path resolves in both modes, overwriting asks first, and the panel shows which directory you are in.
  • Searchable, collapsible keyboard-shortcut reference.

Fixed:

  • Idle CPU on an 8400-line file: 22% → 0.0%. The renderer re-scanned every highlight span for every visible line on every frame.
  • Tab animations were keyed on the buffer's display name, and every new buffer is called untitled — so new tabs slid in from the wrong place and closing skipped its animation entirely.
  • Charwise p at end-of-line pasted onto the next line.
  • Both packages had silently stopped building against their target platforms' Qt (a Qt 6.6-only call, on bases that ship 6.2 and 6.4).

Internals:

  • EditorViewport split across nine translation units (it had reached 3608 lines).
  • One shared motion language (gui/src/motion.h) — six files had each picked their own animation durations.

See the full ADR history for the decision-by-decision record.

Downloads

File What it's for
Absolute_Simple_Editor-0.3.0-alpha-x86_64.AppImage Run directly on most x86_64 Linux distros — chmod +x, then run it.
ase_0.3.0-alpha1_amd64.deb Debian/Ubuntu — sudo apt install ./ase_0.3.0-alpha1_amd64.deb
Arch Linux Use packaging/arch/PKGBUILD from the source tree — cd packaging/arch && makepkg -si

Verify a download against SHA256SUMS (also attached):

sha256sum -c SHA256SUMS

v0.2.0-alpha

v0.2.0-alpha Pre-release
Pre-release

Choose a tag to compare

@saeeedhany saeeedhany released this 11 Sep 20:55

Highlights since v0.1.0-alpha

Real bugs fixed:

  • Mouse click/hover drift on syntax-highlighted lines — clicking or hovering further right on a styled line increasingly missed the character under the pointer.
  • Italic glyphs clipped at the top — italic void was visibly misreadable as voia.
  • Two packaging bugs from external testing: .deb/AppImage built on a rolling-release dev machine baked in unrealistic Qt/glibc version floors — both now built inside pinned, old container bases (Debian bookworm / Ubuntu 22.04).

New:

  • Diagnostic underline redesign — a plain thin line instead of a wavy squiggle, dim by default, brightening with a smooth left-to-right wipe on the line the cursor is on.
  • An empty-buffer welcome overlay — the editor's logo and the essential shortcuts, shown until you start typing.
  • Full floating-panel isolation — Find/File-browser/Command-line/Help/About panels now fully block the document underneath while open; closing is Escape-only.
  • Help/About panels are draggable from their whole header bar, not just the badge.
  • Quitting with unsaved changes now asks for confirmation, themed to match the editor.
  • Faster global animation easing across the board (caret glide, scroll, diagnostics, overlays).

Process:

  • A public feedback-triage log (docs/feedback/) for external bug reports, with an explicit policy for telling real defects apart from deliberate design choices.

See the full ADR history for the complete decision-by-decision record.

Downloads

File What it's for
Absolute_Simple_Editor-0.2.0-alpha-x86_64.AppImage Run directly on most x86_64 Linux distros — chmod +x, then run it.
ase_0.2.0-alpha1_amd64.deb Debian/Ubuntu — sudo apt install ./ase_0.2.0-alpha1_amd64.deb
Arch Linux Use packaging/arch/PKGBUILD from the source tree — cd packaging/arch && makepkg -si

Verify a download against SHA256SUMS (also attached):

sha256sum -c SHA256SUMS

v0.1.0-alpha — First alpha release

Pre-release

Choose a tag to compare

@saeeedhany saeeedhany released this 11 Sep 03:54

First alpha release of Absolute Simple Editor: a minimal, robust, blazingly fast, and aesthetically deliberate GUI text editor.

What's in it

All seven original spec phases plus the full "complete normal editor" pass: undo/redo, multi-cursor selection, clipboard, find/replace, viewport/scroll polish, a floating command line with :compile, and an LSP client (diagnostics, completion, hover) wired into the GUI — set lsp_command in config.ase to turn it on. See docs/ROADMAP.md for the full phase-by-phase history.

Licensed under the Apache License 2.0.

Installing

AppImage (any Linux distro, no install needed):

chmod +x Absolute_Simple_Editor-0.1.0-alpha-x86_64.AppImage
./Absolute_Simple_Editor-0.1.0-alpha-x86_64.AppImage

Debian/Ubuntu (.deb):

sudo apt install ./ase_0.1.0-alpha1_amd64.deb

Arch Linux: build from packaging/arch/PKGBUILD:

git clone https://github.com/saeeedhany/ase.git
cd ase/packaging/arch
makepkg -si

SHA256SUMS below covers the AppImage and .deb — verify with sha256sum -c SHA256SUMS.

Known limitations

This is an alpha: Vim mode isn't implemented yet, and Windows/macOS builds aren't packaged (Linux only for now). See docs/ROADMAP.md for what's tracked.