Skip to content

A basic cross-platform file editor written with html/css/javascript/tauri

License

Notifications You must be signed in to change notification settings

Swiftaff/editaur

Repository files navigation

editaur

A basic cross-platform file editor written with html/css/javascript/tauri

⠀⠀⠀⠀⢀⣴⣿⣿⣿⣷⣄⠠⣤⣤⣤⣤⣤⣤⣄⣀⡀⠀⠀⠀  ⠀
⠀⠀⠀⣀⣼⣿⡟⠉⡉⠻⣿⣷⣮⣿⣿⣿⣿⣿⣿⡿⠿⢷⣦⠀⠀⠀
⠀⢠⣾⣿⣿⣿⣷⡀⣿⠀⣹⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⣸⣿⣧⠀⠀⠀
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀
⢰⣿⣿⣿⣿⣿⣿⣍⠉⠿⠋⠹⠟⠛⢿⡿⢿⣿⠿⢿⡿⠻⠟⠀
⢸⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠘⠁⠀⡿⠀⠘⠁⠀⠀⠀    e d i t a u r
⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣴⣶⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣀⣠⡄⠀⠀⠀
⠀⣿⣿⣿⣟⡿⣿⣿⣿⣿⣿⡿⠿⢿⣿⣿⣿⣿⣿⣿⠿⠃⠀⠀
⠀⠘⣿⣿⣿⣿⣶⣶⣦⣤⣶⣶⣶⣆⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀
⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠙⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠄

Things editaur does (extra checkbox if tested):

  • ✅ clicking or arrowing to a row highlights it. The highlight should be full width regardless of length of row text.
  • ✅ clicking somewhere puts the cursor between two characters
  • ✅ clicking left of a row puts cursor before first character
  • ✅ cursor blink animation restarts after each action
  • ✅ clicking right of last character on a row, puts cursor after last character
  • ✅ click and drag to the right and release on a single line, selects some characters
  • ✅ click and drag to the left and release on a single line, selects some characters
  • ✅ click and drag to the right and down and release on multiple lines, selects to the end of first line, all of intermediate lines, and to the end selection of last line
  • ✅ click and drag to the left and up and release on multiple lines, selects from the end selection to the end of first line, all of intermediate lines, and to the start selection of last line
  • ✅ holding shift after a selection allows the end point of the selection to be changed forwards or backwards, releasing finishes the selection
  • ✅ clicking and dragging a selection to the top, right or bottom of the scrolling window, will scroll it - albeit too fast
  • ✅ double-clicking a word (between two non-space characters) will select that word
  • ✅ triple-clicking anywhere on a line will select the whole line
  • ✅ use arrow keys to move up, down, left, right
  • ✅ left arrow at start of a row, moves cursor to end of previous row, except first row
  • ✅ right arrow at end of a row, moves cursor to start of next row, except last row
  • ✅ using up and down arrow keys will remember the current column starting point across lines of differing lengths
  • ✅ using left and right arrow or other cursor moving functions (e.g. typing characters) will reset this column starting point for future up down moves
  • ✅ copy selected text, including mulitline to the clipboard, paste clipboard, including multiline, starting at the current cursor (not yet replacing selection)
  • ✅ cut selected text, including mulitline to the clipboard, paste clipboard, including multiline, starting at the current cursor (not yet replacing selection)
  • ✅ tabbing while a multiline select is active, will insert [4] spaces at the start of all selected rows - and shift the selection to match original
  • ✅ tabbing while a single line select is active, will replace that selection with [4] spaces
  • ✅ using delete on a selection will delete it all, and leave cursor at leftmost point
  • ✅ using Backspace on a selection will delete it all, and leave cursor at leftmost point
  • ✅ Backspace will remove the character to the left, and at beginning of 2nd or lower line will join that line with previous, pulling it onto same line
  • ✅ Delete will remove character to the right, and at end of 2nd last line or higher will join that line with the next, pulling it onto same line
  • ✅ Typing a character from these keys will insert it at the cursor and move cursor on 1 character
    • [US-Keyboard] [abcdefghijklmnopqrstuvwxyz] [`] [1234567890] [-=] [[]] [;'] [,./]
  • ✅ Shift-typing a character from these keys will insert it at the cursor and move cursor on 1 character
    • [US-Keyboard] [ABCDEFGHIJKLMNOPQRSTUVWXYZ] [~] [!@#$%^&*()] [_+] [{}] [:"] [<>?]
  • ✅ Capslock should capitalise text
  • ✅ Ctrl-A select all
  • double clicking while holding shift will extend selection
  • triple clicking while holding shift will extend selection
  • quadruple clicking selects all
  • display a sidepanel with files and folders from current directory
  • open or save text files
  • display files and directories in nested listing
  • identify file is dirty with a dot in the tab, using basic string hash comparison
  • draggable sidepanel width handle
  • tab showing current filename
  • navigate folders and files

Things editaur still needs to be a basic text editor:

  • if a cursor update takes cursor offscreen, as in hitting return at end of page - scroll to cursor
  • shift-tabbing while a single or multiline select is active, will outdent the line by removing up to 4 spaces from the start of the line(s)
  • Undo once
  • Multiple Undo
  • using tab or paste into a selection will replace it
  • tabs for multiple files
  • line numbers
  • Enter creates a new line at start, middle or end of current line depending on cursor
  • using Enter on a selection will delete it all, and insert a linebreak, and leave cursor at start of next line
  • typing a character on a selection will delete it all, and insert the character and leave cursor after new character
  • switch focus between text view and sidepanel. mute text view's cursor and selection when on sidepanel
  • delete files and directories with warning
  • rename files and directories
  • move files and directories with drag and drop onto new parent directory
  • create new files and directories, in an existing directory
  • refresh listing button, should refresh and keep same directories expanded

Things editaur would like to do when it grows up:

  • save favourite project locations
  • code colouring
  • Multiple Undo with tree-based history?
  • Search & replace
  • partially implement VS Code extensions API

About

A basic cross-platform file editor written with html/css/javascript/tauri

Topics

Resources

License

Stars

Watchers

Forks