Skip to content

Latest commit

 

History

History
90 lines (76 loc) · 4.35 KB

File metadata and controls

90 lines (76 loc) · 4.35 KB

Hat

Hat is a hackable modal text editor for modern terminals.

Screenshot select Screenshot select
Screenshot completion Screenshot diagnostics

Features

Core functionality

  • Modal text editing
    • Normal, select, select line, and insert modes
    • Basic motions (vim's e y o p a d D f c C b ^ $ 0 = J gJ * # etc.)
    • Unlimited undo/redo
    • System clipboard copy & paste (using xclip)
    • Find in buffer
  • Text automation
    • Run external command on selection
    • Dot repeat last change
    • Multi repeat
    • Macros
  • Tree-sitter syntax awareness
    • Syntax highlighting (24 bit color)
    • Indent alignment
  • LSP support
    • Go to definition
    • Find references
    • Diagnostics
    • Completions w/ documentation
    • Hover
    • Rename
  • Multi buffer
    • Buffer management
    • Find file
    • Find in files
  • Scratch buffers
  • Unicode support
  • --printer mode

Functionality available in patches

Done Name Link
✔️ LSP highlight patch/lsp-highlight
✔️ LSP code action patch/lsp-code-action
✔️ LSP formatting patch/lsp-formatting
✔️ Git hunk markers patch/git-signs
✔️ Tree-sitter symbol picker patch/ts-symbol-picker
✔️ Buffer centering patch/buffer-centering
✔️ Autosave patch/autosave
✔️ Relative line numbers patch/relative-number
✔️ Auto-indent patch/auto-indent
🚧 Windows support
🚧 MacOS support
🚧 Wayland support
🚧 Persistent undo
🚧 Persistent macros
🚧 Surround actions
🚧 Case actions
🚧 Marks
🚧 Comments
🚧 List mode (fill chars)

Philosophy

Software is:

  • doing not more and not less than what the user needs
    • Every feature is implemented in the most simple and straightforward form: keep it simple, fast, and clear
  • made for users capable of reading and customizing its source code
    • Source code can be read by users in one evening
    • External configuration is not necessary and discouraged
    • User manual documentation is not necessary, hacking documentation is encouraged (via HACKING.md)
  • distributed as source code, compiled by the user
  • not meant to be developed forever and its final state should be described by its feature set from the beginning
  • extended either by the user directly, or by applying source code patches distributed as diff files
    • It is encouraged to share your extensions with others who can find it useful

See Hackable software for details.

Build, install, usage, configuration

See HACKING.md.

Contributing

See CONTRIBUTING.md.