### 0.7.1 * Added build revision to splash screen * Updated justify command to switch to normal mode after completion * Fixed an issue where justify command would strip trailing newline * Added support for multiple line length guides * Added the ability to run formatting tools, optionally on save * Fixed an issue where long paths in open mode would wrap/break UI * Stopped printing background colors, allowing transparent terminal backgrounds ### 0.7.0 * 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.2 * Rewrote the build script's command parsing to work with Rust 1.41 * See https://github.com/jmacdonald/amp/issues/173 for details ### 0.6.1 * Added the ability to choose a syntax definition for the current buffer * Updated `git2` dependency * Disabled unused `git2` features, removing transitive openssl dependency * Fixed an issue where tabs were ignored when removing trailing whitespace (thanks, BearOve!) * Specified Rust 1.31.1 (2018 Edition) as the minimum required version ### 0.6.0 * Added more information to quick start guide (thanks, John M-W!) * Added snapcraft build file (thanks, Alan Pope!) * Added proper delete key support (thanks, Jérôme Martin!) * Added https support to GitHub URL generation command (thanks, king6cong!) * Use a vendored version of OpenSSL (thanks, Cecile Tonglet!) * Fixed buffer::outdent_line when using hard tabs (thanks, Gaby!) * Fixed an issue where user syntax definitions were loaded after argument buffers (#122) * 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 (#149) * 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<&str> 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.2 * Fixed a regression that would raise an error when trying to open Amp with a new file argument * See https://github.com/jmacdonald/amp/issues/112 for details ### 0.5.1 * Added ability to open Amp in another directory via `amp path/to/directory` * Improved newline indentation heuristics * See https://github.com/jmacdonald/amp/issues/103 for details * Added `>` prefix and bold style to selection in search/select mode * See https://github.com/jmacdonald/amp/issues/106 for details * Amp will now refresh its syntax definition after a buffer's path is changed * See https://github.com/jmacdonald/amp/issues/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 fixes `.termbox already exists` build errors * See https://github.com/gchp/termbox-sys/issues/11 for details ### 0.5.0 * 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.1 * Fixed syntax highlighting * Scopes were bleeding into one another; we now defer to HighlightIterator * See https://github.com/jmacdonald/amp/issues/22 for details ### 0.4.0 * 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.4 * 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.3 * 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.2 * Fix case-insensitive open mode search with uppercase characters * Add class and struct identifiers to symbol mode whitelist * Documentation and README updates ### 0.3.1 * Bumped copyright year to 2018 * Updated CI config to run on stable release channel * Documentation site and content updates * Added `application::display_default_keymap` command * Added ability to delete current result in search mode ### 0.3.0 * Switched to Rust stable release channel * New command mode (run any built-in commands through a search/select UI) * User-defined preferences, syntaxes, and keymaps * New confirm mode, applied primarily to closing or reloading buffers * New command to view syntax scope at cursor * Extracted all logic from input handlers * Migrated input handling to simple key => command mappings * New select_all command * Updated native clipboard library ### 0.2.0 * Added theme selection mode * Quality improvements to command error reporting * Updated search mode to better handle "no matches" state * Treat hash/pound symbol as delimeter when using word-based movement * Added initial preference implementation * Under the hood improvements to search/select modes (open, symbol, theme, etc.) * Updated search/select modes to perform case insensitive searches ### 0.1.0 * Initial release * Added proper error handling to all commands * Updated main loop to display command errors