Create a minimal interactive shell

This commit is contained in:
2024-02-22 21:29:25 +01:00
parent 86d579e8d5
commit ad29dbdc14
43 changed files with 1192 additions and 3264 deletions

23
TODO
View File

@ -1,8 +1,15 @@
- Mark all classes as extern(C++) to interface with C++.
- Some nodes assert(false, "Not implemented") because their logic is handled
in the parent nodes. Move this logic to the nodes themselves.
- Implement multiplication and division.
- Split tester.cpp into a header and implementation files.
- The generate function in backend.d contains the whole compilation logic.
It's not a backend task.
- Output assembly.
- After inserting autocompletion move the cursor to the end of the insertion.
- Support multiple selections for insertion in fzf.
- Vi mode.
- Don't hardcode fzf binary path.
- Persist the history.
- Send the word under the cursor to fzf as initial input.
- Replace hard coded ANSI codes with constants or functions.
- Show the hostname in the prompt.
- Crash if the cd directory doesn't exist.
- Home directory expansion.
- Paste pastes only the first character.
- When we read the key and an error occures how it should be handled?
- Kitty protocol works with UTF8 code points for escape sequences with modifiers.
They can be wider than an unsigned char.
- Add a bar with additional information under the prompt (edit_bar).