Skip to content

Latest commit

 

History

History
371 lines (355 loc) · 11.1 KB

tasks.todo.md

File metadata and controls

371 lines (355 loc) · 11.1 KB

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

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

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

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

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