summaryrefslogtreecommitdiffstats
path: root/infrastructure/ace/notes.txt
diff options
context:
space:
mode:
Diffstat (limited to 'infrastructure/ace/notes.txt')
-rw-r--r--infrastructure/ace/notes.txt195
1 files changed, 0 insertions, 195 deletions
diff --git a/infrastructure/ace/notes.txt b/infrastructure/ace/notes.txt
deleted file mode 100644
index d9e1fda..0000000
--- a/infrastructure/ace/notes.txt
+++ /dev/null
@@ -1,195 +0,0 @@
-XXX This is a scratch file I used for notes; information may be out of date or random -- dgreenspan
-
-- rename ace2.js to ace.js
-
-
-Editor goals:
-- Highlight JavaScript accurately (including regular expression, etc.)
-- On large documents (say 2000 lines), be responsive to new input and rehighlight the screen quickly
-- Highlight "as you type", not when you're done with the current line
-- Propagate multi-line comment highlighting efficiently
-- Look and feel as "clean" and "native" as possible to the user
-- Support unlimited "undo" with arbitrary undo model
-- Allow features such as auto-indentation and parenthesis-flashing to be added easily
-- Work in IE 6, FF 2, Safari 3, Camino
-- Support native copy and paste, within the buffer and with other programs
-- Not display any flickering, blurring, or any kind of artifact
-- Support incremental syntax-highlighting of other languages too
-- Be extensible -- multiple views of whole document, lines, tokens, characters
-- Support native selection behavior, international input, assistive devices (potentially)
-- Resizable text
-- Unlimited editors per page
-
-
-compatibility, speed, power, generality,
-
-
-
-
-- enhancement ideas
- - show mismatched brackets
- - undo history limit
-
-ace2 changelog for week of 5/9:
-- full "undo" support! control-Z (Windows) or command-Z (Mac)
-- flashing parentheses are back, and better than before!
-- appjet:css sections are syntax-highlighted
-- optimizations for slower machines
-- fixed various quirks
-- lines too long for browser are hard-wrapped on entry
-
-
-== path to calls that change rep
-- doLineSplice
- - incorporateUserChanges
- - idleWorkTimer
- - handleKeyEvent
- - performDocumentLineSplice
- - setCodeText
- - importCode
- - setup
- - handleReturnIndentation
- - handleKeyEvent
- - performDocumentReplaceRange
- - handleKeyEvent
- - performDocumentReplaceSelection
- - handleKeyEvent
-- repSelectionChange
- - incorporateUserChanges
- - idleWorkTimer
- - handleKeyEvent
- - performSelectionChange
- - setCodeText
- - importCode
- - setup
- - handleReturnIndentation
- - handleKeyEvent
- - performDocumentReplaceRange
- - doLineSplice
-
-
-make ace2_common local?
-
-
-next steps:
-- safari scroll jump
-- FF 1.6 support
-- weird "delete" bug
-- speed on slow machines
-- paren flashing
-- undo
-
-
-- investigate errors with special "delete" handling turned off
-- track down FF quirk (delete at begging of line starting with one space)
-- (done for now: look for IE memory leaks)
-
-
-Outstanding issues:
-+ Bugs:
-+ Quirks:
- - FF: delete at beginning of line where line starts with 1 space (space briefly disappears)
- - IE: clicking below document body clears selection (instead of moving caret)
- - IE: horizontal scroll-bar sometimes unnecessary
-+ Speed:
- - skip-list is slow for insert/delete lines on highlighting
- - return at bottom of 3000-line file takes too long to normalize in Firefox (probably worse in IE)
-+ feature parity
- - regular expression highlighting not smart in lexically ambiguous cases (should use previous token)
- - paren flashing
-+ additional features
- - less zealous IDE document-dirty marking (e.g. arrow-key marks dirty)
- - undo
-+ fancy todo
- - bring back rich shell editor
- - use same highlighting for view-source, highlight on server
- - highlight CSS and stuff
-
-+ done
- - multi-line strings
- - does tab do the right thing?
- - indent on return
- - quirk: return key doesn't scroll caret into view
- - line numbers
- - highlight appjet directives
- - IE Support
- - slightly smarter indentation
- - tab deletes until a stop
- - interface: import/export
- - interface: rich/plain
- - bugfix: IE: return, delete, etc. doesn't mark document dirty!
- - bugfix: IE: can't copy/paste within document
- - caret not always in view after an edit
-
-====================
-
-Highlighting strategy:
-- allow incremental dirty-region highlighting, based on time and char to pass
-- first lex the viewport, based on information extending a little before it
-- then highlight the viewport
-- then highlight around the viewport?
-- lex the whole document from the top
-- highlight lines outside the viewport
-
-
-
-
-
-- deal with key events in relation to when they are responded to (doLater after all?)
-- use Pygment!
-
-- handle international characters (fragile DOM state)
-- normalize only when idle (make sure that works)
-- better detection, e.g. paste in Safari
-- selectionchange event?
-
-- can eventually allow discarding user changes!
-
-DONE:
-- editing when lines consist of spans
-- all browsers: scroll to full left on return, etc
-- why does IE let you type without firing events?
-- slow in IE?
-
-tests:
-- type some stuff, return, type more stuff, return
-- return repeatedly starting at end of line, delete repeatedly
-- return repeatedly starting at beginning of line, delete repeatedly
-- return repeatedly starting in middle of line, delete repeatedly
-- return/delete starting between blank lines
-- try to move past end of document, then try to type, then try to move
-- from collapsed selection, shift-left repeatedly, across lines, shift-right repeatedly
-- from collapsed selection, shift-right repeatedly, across lines, shift-left repeatedly
-- shift-up, shift-down; shift-down, shift-up
-- cut-and-paste span of characters into middle of line
-- cut-and-paste span of characters into blank line (FF)
-- cut-and-paste span of characters at end of line (FF)
-- cut-and-paste selection with blank lines in it, make sure lines still blank
-- cut-and-paste selection starting and ending with blank lines (IE, FF)
-- doc with blank lines, select-all, cut, paste
-- doc starting and ending in blank lines, select-all, cut, paste (IE, Firefox)
- - IE currently loses one blank line at end if > 0
- - Safari loses one blank line at end if > 1
-- non-empty doc, select-all, delete, select-all, delete (IE crash, Safari hidden cursor)
-- non-empty doc select-all, return, return, return (IE)
-- on last line of document: type stuff, return, type stuff. down arrow goes down = bad (IE)
-- on last line of document: type stuff, return, return. should be no extra lines (IE)
-- go to start of next-to-last line, shift-down, cut (IE)
-- cursor at start of line, shift-down, cut, paste (IE cursor jump)
-- cursor at start of one empty line, shift-down, cut, paste (IE)
-- cursor at start of two empty lines, shift-down, cut, paste (IE, FF)
- - on IE, no new line is pasted; default behavior is worse, so I'll take it
- - on FF, the equivalent of two returns; good enough
-- cursor at start of two empty lines, shift-down, cut, paste in middle of line (IE, FF)
- - in IE, FF, Safari, the equivalent of two returns
-- type letter on blank line, delete it (IE)
-- type space on blank line, delete it (IE)
-- type space before non-blank line, delete it
-- delete blank line, then delete again quickly
-- delete blank line from caret at start of line starting with one space (FF)
-- type over selection from middle of one line to middle of next
-
-- in middle of a word (span), quickly delete, then type a character, then delete (IE)
-- paste text with blank lines from an external source
-- meta-delete
-- up arrow from beginning of line (WebKit)