Aretext Versions Save

Minimalist text editor with vim-compatible key bindings.

v1.3.0

1 month ago

Summary

  • Add menu command to create a new document
  • Add menu command to move or rename document
  • Implement syntax highlighting for p4
  • Do not include hyphens in bash variable tokens
  • Add "+=" operator to bash syntax parser
  • Skip markdown setext heading for single hyphen

Upgrade Notes

Add this rule to your configuration (aretext -editconfig) to enable syntax highlighting for p4

- name: p4
  pattern: "**/*.p4"
  config:
    syntaxLanguage: p4

v1.2.0

6 months ago

Summary

  • Add syntax highlighting for makefiles
  • Support delete key commands in input, normal, and visual mode
  • More accurate parsing of XML tags (reject tags with space between '<' and the tag name)
  • Match vim behavior for change-inner-block in single-line blocks (no longer insert newlines)
  • Fix insertion of Unicode larger than 16 bits
  • Fix incorrect syntax parsing of Rust hex literals
  • Use -trimpath to build release binaries
  • Performance optimizations for input command parsing

Upgrade Notes

Add this rule to your configuration (aretext -editconfig) to enable syntax highlighting for Makefiles:

- name: makefile
  pattern: "**/Makefile*"
  config:
    autoIndent: true
    syntaxLanguage: makefile
    tabExpand: false
    tabSize: 4
    showLineNumbers: true

v1.1.0

10 months ago

Summary

  • Support Unicode 15
  • Complete implemention of line break rule LB30b
  • Show original cursor position during text search.
  • Forward text search skip match on cursor to be consistent with vim.
  • Implement yt, yT, yf, and yF commands
  • Implement d/ and d? commands to delete to a search match.
  • Implement y/ and y? commands to copy up to a search match.
  • Add configuration option lineNumberMode to support displaying relative line numbers.

v1.0.0

1 year ago

Summary

Release announcement blog post: https://dev-nonsense.com/posts/aretext-1.0-release/

  • Support "W"/"E"/"B" cursor movements
  • Implement dW and yW commands
  • Preserve search query and direction on reload
  • Added two cursor commands: (move right, same as 'l'), (next line, first non-space character)
  • Implement delete and change inner paren block commands (dib/cib)
  • Implement a paren block commands
  • Implement visual mode inner paren block, inner word, and select a word commands.
  • Implement angle bracket code block commands
  • Implement quoted string object commands
  • Allow % command to match angle brackets
  • Implement text search history
  • Support bracketed paste
  • Alias :x to save and quit menu
  • Lower bonus for aligning at start or after separator in fuzzy search ranking
  • Lower penalty for skipping characters in fuzzy search ranking
  • Restore cursor position after undo/redo
  • Implement bash syntax highlighting
  • Implement xml syntax highlighting
  • Use env var $ARETEXT_SHELL to set a shell specifically for aretext
  • Fix gotemplate parsing of field names as keywords
  • Fix performance issue in C parser on files with lots of whitespace.
  • Remove archived dependencies github.com/google/shlex and github.com/pkg/errors

Upgrade Notes

Add these rules to your configuration (aretext -editconfig) to enable syntax highlighting for bash, xml, and html:

- name: shell
  pattern: "**/*.sh"
  config:
    autoIndent: true
    syntaxLanguage: bash
    tabExpand: true
    tabSize: 4
    showLineNumbers: true

- name: xml
  pattern: "**/*.xml"
  config: &xmlconfig
    autoIndent: true
    syntaxLanguage: xml
    tabExpand: true
    tabSize: 2
    showLineNumbers: true

- name: html
  pattern: "**/*.html"
  config: *xmlconfig

v0.7.1

1 year ago

Fixes a bug that could cause an infinite loop when a last action is replayed in a user macro.

v0.7.0

1 year ago

Summary

Release announcement blog post: https://dev-nonsense.com/posts/aretext-0.7-release/

  • Support count for cursor movements (h/j/k/l and arrow keys).
  • Add star (*) and pound (#) commands for forward/backward word search.
  • Add workingDir menu command mode.
  • Add insertChoice menu command mode.
  • Validate that menu command name and shellCmd are nonempty.
  • Add gotemplate syntax language.
  • Add criticmarkup syntax language.
  • Add [( and ]) commands to match next/prev parentheses.
  • Add [{ and ]} commands to match next/prev braces.
  • Add % command to find matching brace, bracket, or parenthesis.
  • Preserve order of file locations menu items.
  • Custom menu command save flag now writes the file only if there are unsaved changes.
  • Set $COLUMN env var for shell commands.
  • Add menu commands to change the current working directory.
  • Support count for word movement and word object commands.
  • Remove "set syntax" menu commands.
  • Insert text from a shell cmd after the cursor, not before.
  • Add FreeBSD as a supported platform and release target.
  • Fix markdown syntax highlighting for close code fence with CRLF.
  • Fix markdown parsing for code span in emphasis.
  • Add CTRL-F/CTRL-B (scroll up/down full page).

Upgrade Notes

  • Aretext now validates that the menu commands in the configuration file have a "shellCmd" key with a non-empty value. If aretext fails on startup with a validation error, follow these steps to fix it.

  • The "set syntax" menu commands have been removed. This avoids some confusing behavior in which the menu commands would use the color palette based on configuration for the current file.

v0.6.1

1 year ago

Bugfix: Move cursor right past end of line in insert mode

v0.6.0

1 year ago

Summary

Release announcement blog post: https://dev-nonsense.com/posts/aretext-0.6-release/

  • Syntax highlighting for Markdown.
  • Syntax highlighting for todo.txt
  • Allow customization of style background color, bold, italic, underline, and strikethrough
  • Improve performance and memory usage of syntax highlighting.
  • Deduplicate custom menu commands with the same name.
  • Option to display spaces in a document.
  • Support count parameter for indent/outdent commands.
  • Support line wrapping according to the Unicode line breaking algorithm.
  • Fix change-word (cw) to not include trailing whitespace
  • Simplify and fix cursor positioning for delete word (dw)
  • Fix incorrect offset in text search with unicode normalization
  • Allow forward slash in YAML unquoted key
  • Highlight golang "~" operator
  • Recognize &= operator in rust syntax highlighting
  • Allow whitespace before and after '#' in C preprocessor directives
  • Fix items missing from search results.
  • Remove deprecated devlog syntax language

Upgrade Notes

Add these rules to your configuration (aretext -editconfig) to enable markdown and todo.txt:

- name: markdown
  pattern: "**/*.md"
  config:
    syntaxLanguage: markdown
    lineWrap: "word"
    styles:
      tokenCustom1: {color: "teal", bold: true}        # Heading
      tokenCustom2: {color: "default", italic: true}   # Emphasis
      tokenCustom3: {color: "default", bold: true}     # Strong emphasis
      tokenCustom4: {color: "purple", underline: true} # Link

- name: todo
  pattern: "**/*.todo" # or "**/todo.txt"
  config:
    autoIndent: true
    syntaxLanguage: todotxt
    tabExpand: true
    tabSize: 4
    showLineNumbers: true

v0.5.0

2 years ago

Summary

  • Implement case-insensitive text search.
  • Align cursor and scroll position on reload.
  • Add syntax highlighting for protocol buffers.
  • Set $LINE env var in shell commands.
  • Delete word deletes an empty line.
  • Upgrade to go 1.18.
  • Reduce idle CPU by removing redraw timer.
  • Fix visual mode and repeat last action interactions.
  • Improve accuracy of YAML syntax highlighting.
  • Reset input interpreter on document reload.
  • Preserve cursor column when transitioning to prev/next document.
  • Use NFKC normalization in text and menu search.
  • Adjust default syntax highlighting token colors
  • Update grapheme segmentation rules to Unicode 14.
  • Render emoji presentation selector as two cells.
  • Fix syntax highlighting for C preprocessor directive with backslash at end of line.
  • Improve performance and accuracy of fuzzy menu search.
  • Deprecate devlog syntax highlighting.
  • Fix syntax highlighting for Python "False" and "await" keywords.
  • Use bold style for file path in status bar.

Upgrade Notes

This release is backwards-compatible with aretext YAML configurations from v0.4.x.

v0.4.0

2 years ago

Summary

  • Menu search uses a new fuzzy find algorithm
  • Abort if unsaved changes when opening a file location
  • Add -line CLI option to open a file at a specific line
  • Fix delete word (dw) at start of word after whitespace/punct
  • Add option to save file before running custom menu command
  • Update default config links to aretext.org
  • Upgrade to go 1.17
  • Mitigate race condition in AbortIfFileChanged
  • Log the short file name instead of the long file name
  • Add predeclared identifiers "comparable" and "any" for go 1.18 syntax highlighting
  • Add file with same path to timeline
  • Allow line breaks in Rust quoted string literals
  • Fix scroll position after loading a document
  • Use renameio to reduce risk of data corruption on save

Upgrade Notes

This release is backwards-compatible with aretext YAML configurations from v0.3.x.

Changes

v0.3.0...v0.4.0

(This includes some extraneous commits from changes cherry-picked from the main branch onto v0.3.0.)