Skip to content

ravsii/minigun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minigun

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.

Glossary

  • Tab - usually what is called a buffer in other editors, but we'd like to keep it simple.

Status

Implementation order is "when needed". Literally everything is WIP and could be changed any minute.

Done

  • Debug info
    • .log file
      • Defaults to $HOME/.config/minigun/debug.log, can be overwritten by using -logfile
  • 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

Bugs

  • Cursor appears on empty lines

Work in Progress

  • 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 than nvim's action-select)
  • Config options
    • Migrate to toml
    • Global / per project config
    • Line Numbers
    • keybinds.yaml

"Actually usable"-level features

  • 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)

Preview (current WIP version)

demo gif

List of Commands

here

About

Terminal-based text editor, nvim/helix-like

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published