summaryrefslogtreecommitdiff
path: root/README.md
blob: 5b4475089050f9a6f80ab0489f37b91fe28e7222 (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
# 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
- [ ] 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
```

Currently, tree-sitter grammars can only be automatically fetched when using the Nix setup.

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`).