blob: 416cefcf4e9670549f2f8c24301412562195e932 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# DGED
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.
## Features
- [x] Syntax highlighting
- [x] TOML configuration file
- [x] Editor commands (M-x)
- [x] Absolutely no plugin system
- [x] Terminal only
- [x] Mouse-free editing
- [x] Naive and incorrect unicode handling
- [x] LSP Client implementation
## Contributing
Contributions are of course welcome. Please open a PR on the Github repository.
## Development Setup
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
```
## Installing
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.
## Documentation
The features of the editor are documented in the man page (`man dged`).
|