Because there is room for one more minimalistic text editor!
DGED is what happens if I remove everything I do not need from GNU Emacs and only implement the things I need to be productive.
The editor was created as a learning exercise and to create something that I can use as a daily driver. If anyone else happens to find it useful I will be very flattered and surprised.
DGED is in early development so bugs and breaking changes are to be expected pre-1.0.0.
- Syntax highlighting
- TOML configuration file
- Editor commands (M-x)
- Absolutely no plugin system
- Terminal only
- Mouse-free editing
- Naive and incorrect unicode handling
- LSP Client implementation (in progress)
Contributions are of course welcome. Please open a PR on the Github repository.
The editor is built using BSD make so that needs to be installed (preinstalled on BSD and bmake on Linux).
To enable syntax highlighting (default) you will also need the tree-sitter library installed.
All of this can be obtained using the Nix flake. To create a development shell with all needed dependencies, issue:
$ nix develop
Tree-sitter grammars are automatically fetched and bundled when using the Nix setup. When not using the Nix setup, download/build needed treesitter grammars and set the env var $BUNDLE_TREESITTER_GRAMMARS to a folder containing built treesitter grammars. The structure should be like
/
<lang-1>/
parser # the parser binary as a DSO
queries/
highlights.scm # treesitter queries for highlights
<lang-2>/
parser
queries/
highlights.scm
...
where <lang-1>
is for example cpp
which corresponds to the language id, see man page.
To build the editor, first create the build folder
$ mkdir -p build
or
$ mkdir -p obj
Then call configure (see available options by passing --help
to ./configure
)
$ ./configure
followed by (you guessed it!) make
$ bmake
If using nix, installation can be done by referring the flake with for example nix profile
:
$ nix profile install .
or by using home-manager
or configuration.nix
.
If not using Nix, obtain the needed dependencies and then issue
$ make
followed by
# make install
Optionally, you can set prefix
(and DESTDIR
) to a value of your liking.
The features of the editor are documented in the man page (man dged
).