0.2.8 (Mouse support) { To allow the mouse cursor to move the editor cursor & select text }
- Mouse selection support*
- Read mouse events
- Move the cursor when clicking with mouse
- Add selection mode to document
- Allow text selection with the mouse cursor
- Allow for copy, cut and paste
- Add option to hide parts of the editor (e.g. status line, tab line)
- Deleting left bracket removes other bracket
- Add help menu to view keybindings*
- Add API to display boxes over existing text
- Show overlay
- Hide overlay
- Handle resizes
- Backup
- Add configuration options
- Backup to specific folder somewhere
- Look to add support for background colors in status and tab line
- Don't load entire file into memory*
- Research
- Implement
- Allow full transparency of editing components
- Allow file type argument to be passed
- Cursor in status line
- Shift keys
- Adding support for many popular languages
- JSON* (easy)
- HTML* (easy)
- CSS* (easy)
- Markdown (easy)
- SQL (easy)
- x86 Assembly (easy)
- PHP* (medium)
- Java (medium)
- TypeScript (medium)
- Swift (medium)
- Groovy (medium)
- Lua (medium)
- Julia (medium)
- Elixr (medium)
- F# (medium)
- Lisp (medium)
- Elm (medium)
- Vim Script (medium)
- Scala (medium)
- C# (medium)
- R (medium)
- Go (medium)
- Dart (medium)
- Kotlin (medium)
- D lang (medium)
- Haskell (medium)
- C++ (hard)
0.3.0 (IDE level features) { Allow for IDE level features to smooth out development experience }
- Auto indentation
- Detect when to auto indent
- Look for the tabs above vs below
- Find the amount of tabs needed
- Insert tabs there
- Detect when to auto indent
- Prettier
- Find a way to access the prettier API
- Add oxa command
- Add a confirmation
- Linting
- Read output from cargo's JSON
- Display issues in the command line
- highlight different colors for errors and warnings
- Add support for Pylint readings
0.3.1 (IDE level features #2) { More IDE level features }
- Auto brackets
- Automatically insert brackets on opening pair
- <
- (
- [
- {
- "
- '
- `
- |
- Move them around when pressing enter
- Automatically insert brackets on opening pair
0.3.2 (IDE level features #3) { Even more IDE features }
- Auto complete*
- Get information from racer and display it in a menu
- Add configuration entries for the autocomplete
- Add support for file autocomplete too
0.3.3 (Navigation) { To help with navigating and managing your project from within the editor }
- File tree
- Allow the document to be shifted up a bit
- Render random text to the left of the document
- List directory
- Add cursor focus variable
- Add mutable flags
- Allow opening of files
- Allow collapse and expand of files
- Add sorting
- Add file operations
- New directory
- New file
- Delete directory
- Delete file
- Move file
- Copy file
0.3.4 (Start up experience improvements) { Add a help menu and start menu and session saver }
- Start page
- Store recently used documents
- List them out
- Add ability to save sessions and load them from cli and start page
- Add detailed help menu / document / mode
Further ideas { Further fun ideas to look at }
- Discord rich presence
- Todo lists
- Automatically closing status line
- File encryption and decryption
- Nice, personal greeting
- Live HTML editor
- HTML expansion like emmet
- Split editors
- Terminal integration
- Theme builder
- Cheatsheet downloader
- Stack overflow searcher
- Documentation viewer
- Pomodoro timer for work / rest balance
- Typing speed tests / statistics
- Automated tests
- Package manager
- Theme changing depending on time of day
- Easter eggs
0.1.1
- Go to the next line at end of line
- Go to the previous line at start of line
- Solve unicode width issues
- Fix unicode cursor issues
- Add Home / End / PageUp / PageDown support
- Fix offset up/down issues
- Fix dodgy up/down unicode issues
- Insertion of characters
- Deletion of characters
- Deletion in middle of line
- Deletion at start of line
- Deletion at end of line
- The enter key
- Enter at the start of a line
- Enter at the end of a line
- Enter in the middle of a line
- Render tabs (4 spaces)
- Save
- Save as
- Dirty files
- Quit confirmation
- Improve status bar
- File identification
- Cursor position
- File name
- File edited
- Current line
- Revamp theme
- Thorough commenting
- Privatisation
0.2.0
- Line numbers
- Open document
- New document
- Search feature
- Searching on the same line as the cursor
- Backwards
- Forwards
- Searching forward by default
- Scroll offset with search
- Ensure the initial offset is saved
- Move the offset
- Searching on the same line as the cursor
0.2.1 (Undo & Redo)
- Undo / Redo
- Undo
- Add event executor
- Set up EventStack
- Read Insertion
- Read Deletion
- Add reverse event lookup
- Read NewLine
- End of line
- Start of line
- Middle of line
- Support for offsets
- Read DeleteLine
- Middle of line
- Start of line
- Redo
- Set up seperate redo stack
- Clear redo stack on change
- Link up operations
- Set up smart undoing / redoing to undo by groups of common events
- Commit changes after inactivity period
- Refactor
- Undo
0.2.2 (Input bug solving)
- Fix clipboard bug
0.2.3 (Interface improvements)
- CLAP cli
- Update documentation
- Config file
- Add a default config path
- Allow a config argument
- Add hardcoded backup config file
- Read a config file and populate values
- Have a few example config files
- Left line number padding
- Change default theme
- Updated logo
- Performance optimizations
- No unwrap calls to reduce runtime errors
- Proper status line and welcome message wrapping
- Added left line number padding
- Improved search command to show results in the middle of screen
- Replace
- Fix X offset jumping
- Create replace all command
- Create replace some command
- Allow Regex expressions to be used?
0.2.4 (Syntax highlighting)
- Add support for reading XDG config variable
- Fix blank file runtime error
- Use RON format instead
- Syntax Highlighting
- Add basic Rust syntax
- Create a theme and regex definitions
- Implement basic colourization
- Fix overlapping tokens
- Fix fallout with unicode and trimming
- Trimming start
- Unicode
- Trimming end
- Finish Rust highlighting
- Add syntax to config file
- Allow for file type specific syntax highlighting
- Optimize
- Allow for multiline syntax highlighting
- Add Python
- Add Javascript
- Add C
- Add Ruby
- Add Crystal
0.2.5 (Multitasking) { Manage multiple buffers in one instance }
- Tabs
- Allow holding several documents
- Set up current doc variable
- Rewrite editor to use documents from current doc
- Allow editor to move between different documents
- Add tab line
- Ctrl + Q closes document rather than editor
- Make current tab bold
- Remove open confirmation
- Update hardcoded config file
- Balance load between editor and document files
- Move variables
- Move methods around
- Save all
- Add dirty indicator to tab
- Write function
- Set up keybinding
- Dynamic tab offset
0.2.6 (Macros) { Allow for more keybindings and operations }
- Fix file tab issue (27th)
- Fix (0, 0) deletion issues
- Macro system
- Allow special command mode
- Create Oxa parser (25th)
- Create unified event executor (2nd)
- Document functions
- Cursor functions
- Mass edit functions
- Tab functions
- Insertion function
- Allow repeated Ox commands
- Backspace functions
- Return functions
- Storage functions
- Allow multiple event execution
- Allow undo via reverse execution
- Split up events as much as possible
- Write the reverses for them
- Redo
- Fix committing issues
- Clippy
- Thorough Testing
- Write documentation for Ox (3rd)
- Have a few example macros (3rd)
- Goto line number
- Delete line
- Move cursor
- Move line
- Move forward a word
- Move backward a word
- Allow binding of macros to some keys (4th)
- Distribution
- Rpm
- Deb
- Homebrew
- Add more configuration options in the config file (6th)
- Multiple themes
- Read from config file
- Allow switching via command
- Status line format
- Form structure for information
- Allow config file reading
- Apply it
- Tab line format
- Add to configuration file
- Apply it
- Predefined macros
- Create it in config file
- Read and allow execution
- Update wiki
- Multiple themes
0.2.7 (Small patches) { Small tweaks and large rewrites to make Ox more comfy }
- Rewrite using crossterm for windows support and efficiency*
- Undoing
- Undoing to origin makes file not dirty
- CLI
- Allow jump to lines*
- Bug Fixing
- Fix line deletion runtime error
- Fix delete line issue
- Stop hiding welcome screen on resize
- Fix file name issue
- Fix line 0 deletion errors
- Add log file
- Fix unicode bug
- Fix potential tab issues
- Fix file hanging*
- Fix windows linebreak issue*
- Fix resize bugs
- Searching
- Rewrite replace all command
- Fix dodgy search positions
- Rewrite replace command
- Themes
- Small line specific retokenization for performance
- 16 bit colour fallback*
- Allow changing of colours of warning, info and error messages in config file
- Line number background
- Transparent background
- Improved language syntax highlighting support
- Highlight search and replace messages
- Live / Command for reloading of the config file
- Oxa
- Delete word
- General Editing
- File overwrite prevention
- Fix hardcoded values (easy)
- Goto only if not on screen (easy)
- Add support for cursor line wrapping* (easy)
- Better file save error messages (easy)
- Save as sudo / read only files* (medium)
- More keybindings (hard)
- Formatting
- Update built in config file