Skip to content

Nimaoth/Absytree

Repository files navigation

Absytree

Build and tests

This is still very early in developement and very experimental. Use at your own risk!

Programming Language + Editor

Absytree is a text editor + programming languange workbench where instead of writing the source code as text in text files, the abstract syntac tree (AST) is edited directly (or rather through projections, which are still trees) Languages will be extendable with custom AST node types, by either translating those to nodes of other languages or by implementing code generation for the backend (at the moment only WASM).

The editor is available for the terminal, as a desktop GUI app and in the browser (without some features). You can try the browser version here (this is an old version and doesn't include all features. It currently only works in Chrome). There is also a very experimental Unreal Engine Plugin which integrates Absytree into the Unreal editor.

Goals

  • For the text editor:
    • Sit somewhere inbetween Vim and VS Code
    • The most important tools are built in (e.g. syntax highlighting with tree-sitter, LSP support)
    • Can be used purely as a text editor (ignoring the AST language framework)
    • Little to no configuration needed to get nice experience out of the box
    • Support Vim motions
  • General goals:
    • Keyboard focused (only basic mouse support)
    • Easily extendable with scripting
    • Good performance

Inspirations

Important notes if you intend to use it

  • Current only UTF-8 encoded files are supported
  • Language servers, Treesitter parsers and debug adapters have to installed manually at the moment
  • Read the docs

Docs

Screenshots

Absytree running inside Windows Terminal -> WSL -> Zellij with transparent background

alt


LSP integration

alt


Git integration

alt


Debugging support (breakpoints aren't rendered correctly in the gif because of recording with asciinema and they use unicode symbols, see screenshot above)

alt


Global and open file finders (and more)

alt


Global search

alt


Themes

alt


LSP completions

alt


Diagnostics, inlay hints and hover information

alt


Fuzzy search for document symbols

alt


View changed/added files in git, and open the diff for files directly, or stage/unstage/revert them

alt


View the git diff in the editor

alt