diff options
author | Egil Moeller <egil.moller@freecode.no> | 2010-03-22 00:16:53 +0100 |
---|---|---|
committer | Egil Moeller <egil.moller@freecode.no> | 2010-03-22 00:16:53 +0100 |
commit | fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7 (patch) | |
tree | 928419d6bfe794865e4b8f0634bd792f795c4b8a /trunk/infrastructure/ace/notes.txt | |
parent | 0fdab3db005c4fa31fb8306b573c0b35073d3e56 (diff) | |
parent | d56b9b3b82cdebcaeb00eec0fcb4326ad21adaa8 (diff) | |
download | etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.tar.gz etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.tar.xz etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.zip |
Merge branch 'master' into plugin-framework
Diffstat (limited to 'trunk/infrastructure/ace/notes.txt')
-rw-r--r-- | trunk/infrastructure/ace/notes.txt | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/trunk/infrastructure/ace/notes.txt b/trunk/infrastructure/ace/notes.txt deleted file mode 100644 index d9e1fda..0000000 --- a/trunk/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) |