~davewalker/etherpad/ubuntu-unlimited-max-users-and-revisions

« back to all changes in this revision

Viewing changes to infrastructure/ace/notes.txt

  • Committer: James Page
  • Date: 2011-04-13 08:00:43 UTC
  • Revision ID: james.page@canonical.com-20110413080043-eee2nq7y1v7cv2mp
* Refactoring to use native Ubuntu Java libraries. 
* debian/control:
  - use openjdk instead of sun's java
  - update maintainer
* debian/etherpad.init.orig, debian/etherpad.upstart:
  - move the init script out of the way
  - create a basic upstart script
  - note that the open office document conversion daemon was dropped
    from the upstart configuration; if this behavior is desired, please
    create a separate upstart job for it
* debian/rules:
  - just use basic dh_installinit, as it will pick up the new upstart job
* New release
* Changed maintainer to Packaging
* Fixed installation scripts
* Initial Release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
XXX This is a scratch file I used for notes; information may be out of date or random -- dgreenspan
 
2
 
 
3
- rename ace2.js to ace.js
 
4
 
 
5
 
 
6
Editor goals:
 
7
- Highlight JavaScript accurately (including regular expression, etc.)
 
8
- On large documents (say 2000 lines), be responsive to new input and rehighlight the screen quickly
 
9
- Highlight "as you type", not when you're done with the current line
 
10
- Propagate multi-line comment highlighting efficiently
 
11
- Look and feel as "clean" and "native" as possible to the user
 
12
- Support unlimited "undo" with arbitrary undo model
 
13
- Allow features such as auto-indentation and parenthesis-flashing to be added easily
 
14
- Work in IE 6, FF 2, Safari 3, Camino
 
15
- Support native copy and paste, within the buffer and with other programs
 
16
- Not display any flickering, blurring, or any kind of artifact
 
17
- Support incremental syntax-highlighting of other languages too
 
18
- Be extensible -- multiple views of whole document, lines, tokens, characters
 
19
- Support native selection behavior, international input, assistive devices (potentially)
 
20
- Resizable text
 
21
- Unlimited editors per page
 
22
 
 
23
 
 
24
compatibility, speed, power, generality, 
 
25
 
 
26
 
 
27
 
 
28
 
 
29
- enhancement ideas
 
30
 - show mismatched brackets
 
31
 - undo history limit
 
32
 
 
33
ace2 changelog for week of 5/9:
 
34
- full "undo" support!  control-Z (Windows) or command-Z (Mac)
 
35
- flashing parentheses are back, and better than before!
 
36
- appjet:css sections are syntax-highlighted
 
37
- optimizations for slower machines
 
38
- fixed various quirks
 
39
- lines too long for browser are hard-wrapped on entry
 
40
 
 
41
 
 
42
== path to calls that change rep
 
43
- doLineSplice
 
44
 - incorporateUserChanges
 
45
  - idleWorkTimer
 
46
  - handleKeyEvent
 
47
 - performDocumentLineSplice
 
48
  - setCodeText
 
49
   - importCode
 
50
   - setup
 
51
  - handleReturnIndentation
 
52
   - handleKeyEvent
 
53
  - performDocumentReplaceRange
 
54
   - handleKeyEvent
 
55
   - performDocumentReplaceSelection
 
56
    - handleKeyEvent
 
57
- repSelectionChange
 
58
 - incorporateUserChanges
 
59
  - idleWorkTimer
 
60
  - handleKeyEvent
 
61
 - performSelectionChange
 
62
  - setCodeText
 
63
   - importCode
 
64
   - setup
 
65
  - handleReturnIndentation
 
66
  - handleKeyEvent
 
67
  - performDocumentReplaceRange
 
68
  - doLineSplice
 
69
 
 
70
 
 
71
make ace2_common local?
 
72
 
 
73
 
 
74
next steps:
 
75
- safari scroll jump
 
76
- FF 1.6 support
 
77
- weird "delete" bug
 
78
- speed on slow machines
 
79
- paren flashing
 
80
- undo
 
81
 
 
82
 
 
83
- investigate errors with special "delete" handling turned off
 
84
- track down FF quirk (delete at begging of line starting with one space)
 
85
- (done for now: look for IE memory leaks)
 
86
 
 
87
 
 
88
Outstanding issues:
 
89
+ Bugs:
 
90
+ Quirks:
 
91
  - FF: delete at beginning of line where line starts with 1 space (space briefly disappears)
 
92
  - IE: clicking below document body clears selection (instead of moving caret)
 
93
  - IE: horizontal scroll-bar sometimes unnecessary
 
94
+ Speed:
 
95
  - skip-list is slow for insert/delete lines on highlighting
 
96
  - return at bottom of 3000-line file takes too long to normalize in Firefox (probably worse in IE)
 
97
+ feature parity
 
98
  - regular expression highlighting not smart in lexically ambiguous cases (should use previous token)
 
99
  - paren flashing
 
100
+ additional features
 
101
 - less zealous IDE document-dirty marking (e.g. arrow-key marks dirty)
 
102
 - undo
 
103
+ fancy todo
 
104
  - bring back rich shell editor
 
105
  - use same highlighting for view-source, highlight on server
 
106
  - highlight CSS and stuff
 
107
 
 
108
+ done
 
109
  - multi-line strings
 
110
  - does tab do the right thing?
 
111
  - indent on return
 
112
  - quirk: return key doesn't scroll caret into view
 
113
  - line numbers  
 
114
  - highlight appjet directives
 
115
  - IE Support
 
116
  - slightly smarter indentation
 
117
  - tab deletes until a stop
 
118
  - interface: import/export
 
119
  - interface: rich/plain
 
120
  - bugfix: IE: return, delete, etc. doesn't mark document dirty!
 
121
  - bugfix: IE: can't copy/paste within document
 
122
  - caret not always in view after an edit
 
123
 
 
124
====================
 
125
  
 
126
Highlighting strategy:
 
127
- allow incremental dirty-region highlighting, based on time and char to pass
 
128
- first lex the viewport, based on information extending a little before it
 
129
- then highlight the viewport
 
130
- then highlight around the viewport?
 
131
- lex the whole document from the top
 
132
- highlight lines outside the viewport
 
133
 
 
134
 
 
135
 
 
136
 
 
137
 
 
138
- deal with key events in relation to when they are responded to (doLater after all?)
 
139
- use Pygment!
 
140
 
 
141
- handle international characters (fragile DOM state)
 
142
- normalize only when idle (make sure that works)
 
143
- better detection, e.g. paste in Safari
 
144
- selectionchange event?
 
145
 
 
146
- can eventually allow discarding user changes!
 
147
 
 
148
DONE:
 
149
- editing when lines consist of spans
 
150
- all browsers: scroll to full left on return, etc
 
151
- why does IE let you type without firing events?
 
152
- slow in IE?
 
153
 
 
154
tests:
 
155
- type some stuff, return, type more stuff, return
 
156
- return repeatedly starting at end of line, delete repeatedly
 
157
- return repeatedly starting at beginning of line, delete repeatedly
 
158
- return repeatedly starting in middle of line, delete repeatedly
 
159
- return/delete starting between blank lines
 
160
- try to move past end of document, then try to type, then try to move
 
161
- from collapsed selection, shift-left repeatedly, across lines, shift-right repeatedly
 
162
- from collapsed selection, shift-right repeatedly, across lines, shift-left repeatedly
 
163
- shift-up, shift-down; shift-down, shift-up
 
164
- cut-and-paste span of characters into middle of line
 
165
- cut-and-paste span of characters into blank line (FF)
 
166
- cut-and-paste span of characters at end of line (FF)
 
167
- cut-and-paste selection with blank lines in it, make sure lines still blank
 
168
- cut-and-paste selection starting and ending with blank lines (IE, FF)
 
169
- doc with blank lines, select-all, cut, paste
 
170
- doc starting and ending in blank lines, select-all, cut, paste (IE, Firefox)
 
171
  - IE currently loses one blank line at end if > 0
 
172
  - Safari loses one blank line at end if > 1
 
173
- non-empty doc, select-all, delete, select-all, delete (IE crash, Safari hidden cursor)
 
174
- non-empty doc select-all, return, return, return (IE)
 
175
- on last line of document: type stuff, return, type stuff. down arrow goes down = bad (IE)
 
176
- on last line of document: type stuff, return, return. should be no extra lines (IE)
 
177
- go to start of next-to-last line, shift-down, cut (IE)
 
178
- cursor at start of line, shift-down, cut, paste (IE cursor jump)
 
179
- cursor at start of one empty line, shift-down, cut, paste (IE)
 
180
- cursor at start of two empty lines, shift-down, cut, paste (IE, FF)
 
181
  - on IE, no new line is pasted; default behavior is worse, so I'll take it
 
182
  - on FF, the equivalent of two returns; good enough
 
183
- cursor at start of two empty lines, shift-down, cut, paste in middle of line (IE, FF)
 
184
  - in IE, FF, Safari, the equivalent of two returns
 
185
- type letter on blank line, delete it (IE)
 
186
- type space on blank line, delete it (IE)
 
187
- type space before non-blank line, delete it
 
188
- delete blank line, then delete again quickly
 
189
- delete blank line from caret at start of line starting with one space (FF)
 
190
- type over selection from middle of one line to middle of next
 
191
 
 
192
- in middle of a word (span), quickly delete, then type a character, then delete (IE)
 
193
- paste text with blank lines from an external source
 
194
- meta-delete
 
195
- up arrow from beginning of line (WebKit)