AMP 0.7.0

AMP is a console text-editor, written in Rust and lightweight. Implements mode-based keyboard interface, similar to VIM. Comes with file management and a few IDE capabilities. Avoids over-configurability, but allows YAML-based key mapping for e.g. macros.

Tags rust text-editor console
License GNU GPLv3
State development

Recent Releases

0.7.024 Jan 2024 06:05 major feature: Lots of under-the-hood improvements to syntax highlighting, as well as: Replaced Oniguruma regex dependency with Rust-based fancy-regex. Better error handling. Improved terminal renderer error handling. Cursor types now change based on mode. Added ability to build amp using Nix. Added Wayland clipboard support. Updated to build using Rust 2021 edition. Added ability to reflow text based on line length guide. Improved unicode support when adding trailing newline. Added ability to configure syntax overrides based on file extension. Added ability to comment out a selection of text. Improved handling of very small terminal sizes. Updated to correctly restore terminal contents after quitting.
0.6.206 Feb 2020 03:15 minor bugfix: Rewrote the build script's command parsing to work with Rust 1.41. See https://github.com/jmacdonald/amp//173 for details.
0.6.118 Jan 2020 03:15 minor bugfix: Added the ability to choose a syntax definition for the current buffer. Updated `git2` dependency. Disabled unused `git2` features, removing transitive openssl dependency. an where tabs were ignored when removing trailing whitespace. Specified Rust 1.31.1 (2018 Edition) as the minimum required version.
0.6.015 Jul 2019 03:15 major feature: Added more information to quick start guide. Added snapcraft build file. Added proper delete key support. Added https support to GitHub URL generation command. Use a vendored version of OpenSSL. buffer::outdent_line when using hard tabs. an where user syntax definitions were loaded after argument buffers. Update to compile with Rust 2018 edition. Added keybindings to support jumping directly into symbol and open modes from search mode. Handle missing themes gracefully, falling back to default. Migrate from termbox library to termion. Removes termbox's build process Python dependency. Adds 24-bit colour support. Built a TerminalBuffer to allow successive screen updates within a single render cycle without introducing screen flicker. Improves support for UTF-8 grapheme clusters. Since termbox uses 32-bit char values to represent cells, anything larger than 32 bits, even if spilled over into adjacent cells, will be overwritten by adjacent characters. The new TerminalBuffer type uses Cow values, allowing arbitrary-length cells, which will be streamed to the terminal and overlaid as a single visible "character", without any loss of data. Created a new Presenter type to hold the contents of this buffer, as well as extract common bits of functionality from various mode-specific presenters.
0.5.218 Nov 2018 03:15 minor bugfix: a regression that would raise an error when trying to open Amp with a. New file argument See https://github.com/jmacdonald/amp//112 for details.
0.5.104 Oct 2018 03:15 minor feature: Added ability to open Amp in another directory via `amp path/to/directory`. Improved newline indentation heuristics. See https://github.com/jmacdonald/amp//103 for details. Added ` ` preand bold style to selection in search/select mode. See https://github.com/jmacdonald/amp//106 for details. Amp will now refresh its syntax definition after a buffer's path is changed. See https://github.com/jmacdonald/amp//97 for details. Added a quick start guide, referenced from the splash page. Added suspend command key binding to search/select normal mode. Added the ability to configure number of results in search/select mode. See https://amp.rs/docs/configuration/#searchselect-results for details. Updated `termbox-sys` dependency, which `.termbox already exists` build errors. See https://github.com/gchp/termbox-sys//11 for details.
0.5.015 Aug 2018 03:15 major feature: Added caching to syntax highlighting, to improve performance for large buffers. See https://medium.com/@jordan_98525/incremental-parsing-in-amp-ba5e8c3e85dc for details.
0.4.111 Jul 2018 03:15 minor bugfix: syntax highlighting. Scopes were bleeding into one another; we now defer to HighlightIterator. See https://github.com/jmacdonald/amp//22 for details.
0.4.007 Jun 2018 03:15 major feature: Application event loop is now threaded. Most notably, open mode indexing is now run in a separate thread. Scrolling is now line wrap-aware. View now redraws when terminal is resized. Search/select modes now have empty state messages. e.g. open mode will now display "Enter a query" rather than "No results" when no query is present. Open mode now displays its path when indexing. Escape in normal mode now scrolls cursor to center, via new default keybinding. app_dirs dependency bumped to a version that compiles on newer versions of Rust. Type-specific configuration now supports full filenames (e.g. "Makefile"). Various refactoring.
0.3.427 Feb 2018 03:15 minor feature: Documentation updates. Added the ability to save new buffers without paths (created in normal mode using the `B` key binding); a new "path" mode prompts before saving. Added the ability to load user/custom themes from the `themes` configuration sub-directory. Added a benchmark for buffer rendering. Bumped native clipboard library dependency. Added semi-colon delete key binding to select line mode.
0.3.302 Feb 2018 03:15 minor documentation: Documentation updates. buffer::backspace command no longer switches to insert mode. (this is relegated to the default keymap). Invalid keymap configurations now display the offending mode.
0.3.227 Jan 2018 22:03 minor bugfix: Case-insensitive open mode search with uppercase characters. Add class and struct identifiers to symbol mode whitelist. Documentation and README updates.