Just a fun project. Minigun
because it supposted to be fast, not sure if it will be lol.
It's not usable at the moment, but I hope it will be one day...
It aims to be a battaries-included terminal text editor. Ideally I'd like to switch off VSCode, but nvim
is just not for me and helix
is being released like once a year nowadays.
Tab
- usually what is called a buffer in other editors, but we'd like to keep it simple.
Implementation order is "when needed". Literally everything is WIP and could be changed any minute.
- Debug info
-
.log
file- Defaults to
$HOME/.config/minigun/debug.log
, can be overwritten by using-logfile
- Defaults to
-
- Status bar - like modes and unlike nvim\helix, status bar is global and not per-tab for easier inspection of the current "state"
- Current Mode
- Cursor Line / Position
- Commands
- Basic Components Library - We need some kind of a UI components library, because rn everything is hardcoded so its not good.
- Box
- Text Box
- Cursor appears on empty lines
- Modes - Unlike in helix/nvim where mode is usually per-tab, minigun modes are global and represent the current "state" of the editor
- View
- Insert Mode
-
i
,I
,a
,A
will do for now
-
- Command Mode (
:
from vim)-
wq
- Although we don't have any errors, exclamations mark support would be nice for forced stuff like
:wq!
-
- Replace Mode (single char,
r
from vim) - File / Workspace mode (kind of file explorer)
- Still thinking about select-like mode. tbh I like
helix
's approach more. (select-action rather thannvim
's action-select)
- Config options
- Migrate to
toml
- Global / per project config
- Line Numbers
-
keybinds.yaml
- Migrate to
- Themes
- Nerd font icons or something
- Multiple windows / tabs
- Probably the easiest of all these
- Tree sitter
- LSP (multiple for the same lang)
helix
kind of has the best LSP integration out of the box, but you still need to configure it sometimes, which is very painful if you haven't done it before.
- Formatters
- Plugins (ideally no lua)