Skip to content

AhoyISki/duat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Duat

Duat is the underworld in egyptian mythology, home to the god Osiris, where the deceased go in order to be judged, and possibly have their rights to an afterlife revoked by the weight of a feather. It is also a text editor.

Duat is a text editor that is configured through the use of a Rust crate in the user's config directory. The use of a crate for such a purpose means that the extensibility potential — as well as my ability to add features — is increased dramatically.

Duat, when installed, will be able to automatically detect changes in the user's configuration, and change in real time — with a delay of a few seconds — in order to reflect the new configuration.

It is currently a work in progress, and many features are yet to come (such as an LSP plugin...).

How to use

In order to use it, you must have cargo installed. If you do, run

cargo install duat

This will install the default version of Duat, which uses a terminal user interface. It will also create a configuration directory in $XDG_CONFIG_HOME/duat/ or ~/.config/duat/. This config will have some default changes, but you can modify it as you wish. It also has some documentation explaining the basics of Duat.

At the moment, the only Ui is the terminal one, but Duat is built in such a way that creating a new Ui is within the realm of possibility.

Roadmap

These are the goals that have been acomplished or are on their way:

  • Implement basic visual functionality (printing, scrolling, etc);
  • Implement wrapping;
  • Implement editing;
  • Create a kak mode;
  • Implement the use of multiple cursors;
  • Implement a history system;
  • Implement colors;
  • Implement widgets and designated areas;
  • Make all of these things easy to use on a public interface;
  • Create a number line and a separator line;
  • Create a status line;
  • File switching;
  • Create a command creation interface and a command line;
  • Add the ability to frame areas;
  • Implement concealment;
  • Implement hot reloading of configuration;
  • Create a "normal editing" mode;
  • Add the ability to create hooks;
  • Create a more generalized plugin system;
  • Add floating widgets, not tied to the session layout;
  • Implement autocompletion lists;
  • Create an LSP plugin;
  • Create a vim mode;
  • Add a regex searcher (possibly a new regex-streams?!?!);

  • Create an EGUI frontend;

NOTE: These are not set in stone, and may be done out of order.

Motivation

This project was mostly created as a fun side project to occupy my time, and I was also unsatified with the current offerings of open source text editors.

About

An in development text editor, built around extensibility and performance

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages