Skip to content

Commit

Permalink
Break out todo list into separate file
Browse files Browse the repository at this point in the history
  • Loading branch information
mls-m5 committed May 22, 2024
1 parent 9745373 commit b764522
Show file tree
Hide file tree
Showing 2 changed files with 156 additions and 149 deletions.
154 changes: 5 additions & 149 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,152 +4,11 @@

![Alt text](docs/complete.png?raw=true "Example of autocomplete using clang")

Todo:
- [x] Show/hide console
- [x] Resize window
- [x] Quick-open
- [ ] Vim
- [ ] Implement a lot of stuff
- [x] Multi-letter vim combinations
- [x] Visual mode
- [x] Registers
- [x] Full row visual mode
- [ ] Implement all navigation shortcuts for all modes (iw aw 'i{' etc)
- [ ] r-command (replace single character)
- [ ] Generalized way to handle c, d, y and motion commands
- [ ] ctrl+O ctrl+I to navigate back and fourth
- [x] Undo/Redo
- [x] Improve memory usage for undo/redo
- [x] Multiple open editors
- [x] Keep buffers open in background
- [x] Buffered screen output
- [x] Delayed syntax highlighting
- [x] Save files
- [ ] Find text in file
- [ ] Find text in project
- [ ] Ide-tools
- [x] Switch headers/source
- [ ] Find usages
- [x] Rename symbol
- [x] Goto definition
- [x] Auto complete
- [x] Clang based autocomplete
- [x] Basic syntax highlighting
- [x] Clang-based syntax highlighting
- [x] Co-edit files with other people remotely
- [ ] Mouse control
- [x] Mouse wheel control
- [x] Move cursor with mouse
- [ ] Select with mouse drag
- [ ] File synch
- [x] Detect when open buffer is changed on disk
- [ ] Prompt if buffer contains unsaved changes, otherwise replace
- User interface
- [x] Save unnamed buffers with popup with ctrl+s
- [ ] Jump to file under cursor (path, markdown links etc) `[[braces syntax]]`
- [x] Rename current document
- [ ] File view
- [ ] File name above buffers
- [ ] Ctrl+tab switch between opened buffers
- [ ] Layouts that handle splits
- [ ] Use formatting (palette) to handle grouping ({}) or hyperlink marking
- [ ] Prompt if the user want to save beforeo exits
- [ ] Prompt to diff pasted data to data in editor (more than per line)
- [ ] Same logic can be used to view git diffs in editor
- [ ] Toggle markdown crosses with space
- [ ] ~~Use Lua~~
- [x] Remove remainders of old scripting engine
- [ ] ~~Make core functionality callable from lua~~
- [ ] ~~Implement functions for keybindings in lua~~
- [ ] ~~Replace mode logic with lua code~~
- [x] ctrl+backspace to erase whole word
- Editors
- [ ] Word wrapping
- [x] Horizontal scroll
- [ ] Performance improvements for remote connections
- [ ] Serialize to binary
- [ ] Communication over network sessions
- [ ] Add interactions for users to add own name
- [ ] Create some way for users to send short messages to eachother.
- [ ] Show user cursors on other users screen
- [ ] Git plugin
- [x] Push
- [ ] Diff
- [x] Status
- [ ] Blame
- [ ] Commit (interaction where you select which files and write message)
- [ ] GDB debugger integration
- [ ] Basic operations, run, set breakpoints step
- [ ] Visualize breakpoints (using annotation system)
- [ ] Console
- [x] Interact with console (focus, scroll, keypresses etc)
- [ ] Support for multiple consoles for different usages.
- [ ] Implement it
- [ ] Ways to switch between consoles
- [ ] Open interactions in console as standard (but add option to open in current editor)
- [ ] Support backspace characters for popen
- [ ] Make Popenstream support colors in linux
- [ ] Lsp-plugin
- [ ] Lsp-plugin diagnostics
- [ ] Command that prints state of lsp-server and also command flags for
current document
- [ ] Fix: Lsp urli-s with special characters is not handled properly
- [ ] Add refactor function (alt+return)
- [ ] Distraction free mode, where you are only allowed to edit the end or the last lines
- [ ] Word wrap (soft)
- [ ] Standard commands that is only available to certain file types
- [ ] Handle problems with separate sources,
make it so that each source replace its content when there is something new
for example lsp-plugin, the compiler or formatter (if it emits error messages)
- [ ] Show error if formatting does not work

# Prioritized changes
- [ ] Faster navigation
- [ ] Move between opened files in editor (ctrl+tab) show list of opened editors
- [x] Highlighting


## Feedback
- [ ] Make sure build command works properly, add settings
- [ ] Ways to handle settings
- [x] Add searchable command pallette to make commands runnable (ctrl-p)
- [ ] CMakeLists.txt html and xml-file formatting
- [ ] CMakeLists.txt html and xml-file code highlighting
- [x] Select all (ctrl-a)
- [x] Case insensitive matching in file list and command palette.
- [x] Exit to normal mode when saving.
- [ ] When alt+tab into editor, prevent from typing tab, also when closing other
windows with ctrl + w
- [ ] Option to restore selection (gv)
- [x] Status line for common operations (for example saving, changing mode)
- [ ] Test: Add margin from the cursor to the bottom of the screen (when not on end of file)
- [ ] Fast way to create matching source for header (interaction with multiple alternative paths)
- [ ] Reload file lists when files are added or deleted (using the inotify code)
- [x] Replace selection instead of just inserting when pasting
- [ ] Do something about selection when undoing
- [x] When doing dd in beginning of file nothing happens, also dd moves cursor
to previous row. That should not happend either
- [x] Highlighting does not update with timer (only when pressing key)
- [ ] Really want "rename_file" functionality
- [x] Also really want that the locator updates when there is changes to files
- [ ] Scroll-bar to show location in file
- [ ] Sometimes selection is active when not in visual mode. For example when
pasing (maybe when pasting in visual mode or normal mode)
- [ ] Fix that
- [ ] Make so that changing mode and pressing escape always resets selection
- [ ] When trying to build and the build directory does not exist, it does not
continue. Ask if the user wants to create the directory
- [ ] .medit.json does not reload when changed. Fix that
- [ ] Maybe sessions that reopens files when project is closed
- [x] Build before running
- [ ] Locator performance is really bad when opening large project
- [ ] Make ctrl+c work again
- [ ] Autocreate settings file with default settings to help user

## Bugs
- [x] When open a file where there is no project/.git, the program freezes
- [ ] Segmentation fault when using goto symbol on std::numeric::pi
- [ ] Move cursor to the left when exiting input mode (like regular vim)
## Features

- Lsp support for c++ (other languages not implemented yet)
- Vim keybindings


## Requirements

Expand Down Expand Up @@ -195,6 +54,3 @@ build with
```





151 changes: 151 additions & 0 deletions todo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Todo
Todo:
- [x] Show/hide console
- [x] Resize window
- [x] Quick-open
- [ ] Vim
- [ ] Implement a lot of stuff
- [x] Multi-letter vim combinations
- [x] Visual mode
- [x] Registers
- [x] Full row visual mode
- [ ] Implement all navigation shortcuts for all modes (iw aw 'i{' etc)
- [ ] r-command (replace single character)
- [ ] Generalized way to handle c, d, y and motion commands
- [ ] ctrl+O ctrl+I to navigate back and fourth
- [x] Undo/Redo
- [x] Improve memory usage for undo/redo
- [x] Multiple open editors
- [x] Keep buffers open in background
- [x] Buffered screen output
- [x] Delayed syntax highlighting
- [x] Save files
- [ ] Find text in file
- [ ] Find text in project
- [ ] Ide-tools
- [x] Switch headers/source
- [ ] Find usages
- [x] Rename symbol
- [x] Goto definition
- [x] Auto complete
- [x] Clang based autocomplete
- [x] Basic syntax highlighting
- [x] Clang-based syntax highlighting
- [x] Co-edit files with other people remotely
- [ ] Mouse control
- [x] Mouse wheel control
- [x] Move cursor with mouse
- [ ] Select with mouse drag
- [ ] File synch
- [x] Detect when open buffer is changed on disk
- [ ] Prompt if buffer contains unsaved changes, otherwise replace
- User interface
- [x] Save unnamed buffers with popup with ctrl+s
- [ ] Jump to file under cursor (path, markdown links etc) `[[braces syntax]]`
- [x] Rename current document
- [ ] File view
- [ ] File name above buffers
- [ ] Ctrl+tab switch between opened buffers
- [ ] Layouts that handle splits
- [ ] Use formatting (palette) to handle grouping ({}) or hyperlink marking
- [ ] Prompt if the user want to save beforeo exits
- [ ] Prompt to diff pasted data to data in editor (more than per line)
- [ ] Same logic can be used to view git diffs in editor
- [ ] Toggle markdown crosses with space
- [ ] ~~Use Lua~~
- [x] Remove remainders of old scripting engine
- [ ] ~~Make core functionality callable from lua~~
- [ ] ~~Implement functions for keybindings in lua~~
- [ ] ~~Replace mode logic with lua code~~
- [x] ctrl+backspace to erase whole word
- Editors
- [ ] Word wrapping
- [x] Horizontal scroll
- [ ] Performance improvements for remote connections
- [ ] Serialize to binary
- [ ] Communication over network sessions
- [ ] Add interactions for users to add own name
- [ ] Create some way for users to send short messages to eachother.
- [ ] Show user cursors on other users screen
- [ ] Git plugin
- [x] Push
- [ ] Diff
- [x] Status
- [ ] Blame
- [ ] Commit (interaction where you select which files and write message)
- [ ] GDB debugger integration
- [ ] Basic operations, run, set breakpoints step
- [ ] Visualize breakpoints (using annotation system)
- [ ] Console
- [x] Interact with console (focus, scroll, keypresses etc)
- [ ] Support for multiple consoles for different usages.
- [ ] Implement it
- [ ] Ways to switch between consoles
- [ ] Open interactions in console as standard (but add option to open in current editor)
- [ ] Support backspace characters for popen
- [ ] Make Popenstream support colors in linux
- [ ] Lsp-plugin
- [ ] Lsp-plugin diagnostics
- [ ] Command that prints state of lsp-server and also command flags for
current document
- [ ] Fix: Lsp urli-s with special characters is not handled properly
- [ ] Add refactor function (alt+return)
- [ ] Distraction free mode, where you are only allowed to edit the end or the last lines
- [ ] Word wrap (soft)
- [ ] Standard commands that is only available to certain file types
- [ ] Handle problems with separate sources,
make it so that each source replace its content when there is something new
for example lsp-plugin, the compiler or formatter (if it emits error messages)
- [ ] Show error if formatting does not work

# Prioritized changes
- [ ] Faster navigation
- [ ] Move between opened files in editor (ctrl+tab) show list of opened editors
- [x] Highlighting


## Feedback
- [ ] Make sure build command works properly, add settings
- [ ] Ways to handle settings
- [x] Add searchable command pallette to make commands runnable (ctrl-p)
- [ ] CMakeLists.txt html and xml-file formatting
- [ ] CMakeLists.txt html and xml-file code highlighting
- [x] Select all (ctrl-a)
- [x] Case insensitive matching in file list and command palette.
- [x] Exit to normal mode when saving.
- [ ] When alt+tab into editor, prevent from typing tab, also when closing other
windows with ctrl + w
- [ ] Option to restore selection (gv)
- [x] Status line for common operations (for example saving, changing mode)
- [ ] Test: Add margin from the cursor to the bottom of the screen (when not on end of file)
- [ ] Fast way to create matching source for header (interaction with multiple alternative paths)
- [ ] Reload file lists when files are added or deleted (using the inotify code)
- [x] Replace selection instead of just inserting when pasting
- [ ] Do something about selection when undoing
- [x] When doing dd in beginning of file nothing happens, also dd moves cursor
to previous row. That should not happend either
- [x] Highlighting does not update with timer (only when pressing key)
- [ ] Really want "rename_file" functionality
- [x] Also really want that the locator updates when there is changes to files
- [ ] Scroll-bar to show location in file
- [ ] Sometimes selection is active when not in visual mode. For example when
pasing (maybe when pasting in visual mode or normal mode)
- [ ] Fix that
- [ ] Make so that changing mode and pressing escape always resets selection
- [ ] When trying to build and the build directory does not exist, it does not
continue. Ask if the user wants to create the directory
- [ ] .medit.json does not reload when changed. Fix that
- [ ] Maybe sessions that reopens files when project is closed
- [x] Build before running
- [ ] Locator performance is really bad when opening large project
- [ ] Make ctrl+c work again
- [ ] Autocreate settings file with default settings to help user

## Bugs
- [x] When open a file where there is no project/.git, the program freezes
- [ ] Segmentation fault when using goto symbol on std::numeric::pi
- [ ] Move cursor to the left when exiting input mode (like regular vim)




0 comments on commit b764522

Please sign in to comment.