- Controllable like vim
--ADD------------------------------------------------------------------------------
|
| Name:
|
|
| OK Cancel
___________________________________________________________________________________
--ADD------------------------------------------------------------------------------
|
| Url:
|
|
| OK Cancel
|
-----------------------------------------------------------------------------------
--ADD------------------------------------------------------------------------------
|
| a: Add Entry manually
| b: Add Entry via Github
|
| q: Cancel
|
-----------------------------------------------------------------------------------
0 --Search---------------------------------------------------------------------------
1 | -----------------------------------------------------------------------------
2 | | Some Value|
3 | -----------------------------------------------------------------------------
4 |-----------------------------------------------------------------------------------
5 | Cli/Cli
6 | jasperspahl/dwm
7 | ...
a file consists of chunks of data all gets stored in Little Endian
struct chunk {
size_t title_length;
char title[title_length];
size_t data_length;
char data[data_length];
size_t url_length;
char url[url_length];
uint32_t stars;
uint32_t issues
}
base screen with selection options
- Einlesen der Datei
- Datei per CLI einlesen
- Datei per UI einlesen
- Parsen der Datei
- Datensatz hinzufügen
- Datensatz löschen
- Anzeigen der Linkedlist Pointer
- Suche nach Datensatz
- stringcompare selbst schreiben
- Daten sortieren
- Sortierfunktion Linkliste
- Unit Tests
- Implement UI
- Sortierfunktion Linkliste
- Daten Speichern
- On Close
- On Demand
- Command mode
- Write a command parser
- Write string splitter
- Write Commands
- Open
:o <filename>
or:open <filename>
- Save
:w
or:write
- Save as
:w <filename>
or:write <filename>
- Save and quit
:wq
- Quit
:q
or:quit
- Open
- Write a command parser
- Add the posibility to highlight hex numbers in hex mode
- Add Color to the project
- The hex pointers to the currently selected element should be highlighted
- Datensatz an beliebiger position hinzufügen
- Einfügen von mehreren Datensätzen
- Von Datei
- Einlesen von txt files mit comments
- Unit Tests
-
UI Flow for adding multiple entries manually
- Löschen von mehreren Datensätzen
- Copy Datensatz into edit_flow
- Cursor on Detail page
- automatically move the display rect of the
model->detail_text_pad
- enable vim style
i
/a
(open vim in insert mode on current position)
- automatically move the display rect of the
- Mergesort
-
Speichern mit Verschlüsselung - Entfernen doppelter Datensätze
- Datensatz Hash compare on that delete on match
- get all data form github api
- get readme
- get stars
- get issues
- Add Readme Parsing
- this will be quite difficult since ncurses doesn't support ansi escape codes
- see cli/cli: GitHub’s official command line tool
- maybe use charmbracelet/glamour: Render markdown with style since it is also used by cli/cli