-
Notifications
You must be signed in to change notification settings - Fork 5
Features
Logan edited this page Dec 6, 2018
·
9 revisions
These features currently have been implemented but may need improvements due to bugs, oversights, etc. as they have not been accurately tested yet:
- Character, foreground colour, background colour, bold, italic and underline cell properties.
- Pencil, text, eraser, line, rectangle, flood fill, picker and select tools.
- Apply character, foreground colour and background colour cell properties independently of each other.
- Export as plain text, JSON, shell script and image.
- Import as plain text and JSON.
- Zoom in, out and reset the raster level.
- Pan around raster using scrollbars, middle click, arrows keys and automatically follow the cursor when moved.
- Raw text and cell copy, cut and paste.
- Visual grid that can be toggled on and off.
- Switch between themes.
- Undo and redo.
- Keyboard shortcuts.
- Resize and auto-crop raster.
These features should be straightforward to implement:
- 256 colours.
- Strike-through cell property.
- Export with option to remove unneeded empty cells (i.e. an extension of auto-cropping).
- Apply other cell properties independently of each other.
- Palette of characters to select from (useful for non-ASCII characters).
These features are expected to be harder to implement and would therefore require research into doing so:
- Support web browsers other than the latest version of Google Chrome, such as Firefox and Edge.
- Drawing mode that translates mouse movements into individual cell characters to achieve "smarter" drawing. Could use angles between points and/or OCR.
- Import shell script, some features may be able to be read easily such as colours but it could be hard to interpret other syntax that is not as relevant.
- Allow changing the font to other monospace fonts on the client, JavaScript does not seem to have permissions to know the fonts supported in the browser though.
- Handle larger raster sizes as the HTML canvas is quite limited in size and there is also very noticeable performance degradation when the amount of cells increases. A possible way to address this is for the canvas to behave as a window that only renders what can be seen by the client. This means that extra work is required to handle non-native panning of the raster shown in the canvas.