PageRenderTime 22ms CodeModel.GetById 9ms app.highlight 4ms RepoModel.GetById 2ms app.codeStats 0ms

/jEdit/tags/jedit-4-3-pre5/doc/TODO.txt

#
Plain Text | 258 lines | 223 code | 35 blank | 0 comment | 0 complexity | a8c5c805dcb5a24ee2b336e426047cf3 MD5 | raw file
  1[error] ExtensionManager: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 379
  2[error] ExtensionManager:  at org.gjt.sp.jedit.Buffer.getLineOfOffset(Buffer.java:892)
  3[error] ExtensionManager:  at errorlist.DefaultErrorSource$DefaultError.getLineNumber(DefaultErrorSource.java:510)
  4[error] ExtensionManager:  at errorlist.DefaultErrorSource.findError(DefaultErrorSource.java:330)
  5[error] ExtensionManager:  at errorlist.DefaultErrorSource.getLineErrors(DefaultErrorSource.java:134)
  6[error] ExtensionManager:  at errorlist.ErrorHighlight.paintValidLine(ErrorHighlight.java:53)
  7[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.TextAreaExtension.paintScreenLineRange(TextAreaExtension.java:70)
  8[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:146)
  9[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:106)
 10[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:699)
 11
 12[error] ExtensionManager: java.lang.NullPointerException
 13[error] ExtensionManager:  at org.gjt.sp.jedit.Buffer.markTokens(Buffer.java:2161)
 14[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ChunkCache.lineToChunkList(ChunkCache.java:760)
 15[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ChunkCache.updateChunksUpTo(ChunkCache.java:635)
 16[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ChunkCache.getLineInfo(ChunkCache.java:244)
 17[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.TextAreaPainter$PaintText.paintValidLine(TextAreaPainter.java:1039)
 18[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.TextAreaExtension.paintScreenLineRange(TextAreaExtension.java:70)
 19[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:146)
 20[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:106)
 21[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:699)
 22
 23
 24TO DO
 25
 26absolute path completion
 27
 28does not indent properly:
 29
 301000 [
 31    [
 32        [
 33            [
 34                50000 cons-a-lot
 35            ] 4 10 make-trash
 36        ] 4 10 make-trash
 37    ] 4 10 make-trash 0 swap [ [ + ] when* ] tree-each drop
 38] times
 39
 40Note that this is not a complete to do list. It mostly only lists bugs
 41and quirks that I need to fix eventually.
 42
 43splitting messes up last physical line in the newly created text area
 44
 45console: cd / repeatedly on windows
 46
 47ok [error] ExtensionManager: java.lang.NullPointerException
 48[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.StructureMatcher$Highlight.getOffsets(StructureMatcher.java:181)
 49[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.StructureMatcher$Highlight.paintHighlight(StructureMatcher.java:207)
 50[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.StructureMatcher$Highlight.paintValidLine(StructureMatcher.java:147)
 51[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.TextAreaExtension.paintScreenLineRange(TextAreaExtension.java:70)
 52[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:146)
 53[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:106)
 54[error] ExtensionManager:  at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:699)
 55
 56+ text area:
 57
 58  - click&drag breaks fast scroll
 59  - format: doesn't wrap right if selection starts in the middle of the
 60    line
 61  - ruleset importing trick
 62  - expand fold: try to expand even if already expanded
 63  - backspace with virtual caret: needs tweaks
 64  - independent text area component
 65    - gutter: has a depenency on View to do focus highlight, and Marker
 66    - text area: depends on view for input handling,
 67      smart home/end macro record, showing dialog boxes, abbrevs
 68    - mouse handler: registers
 69    - text area transfer handler: opening files dependency
 70  - new file: explicit folding: type {{{: fold marker doesn't appear
 71  - finish code to hide caret on user input; enter/backspace is a problem
 72    maybe listen for KeyTyped instead
 73  - indent folding: fold marker not always updated
 74  - format: preserve comment chars at start
 75  - tabs to spaces with rect select
 76  - input methods
 77  - remove-marker, select-next/prev-marker/bracket
 78  - format -- instead of \n\n, what if it has \n   \n?
 79  - DnD still dosn't work as expected when draging from the same buffer,
 80  but differen text area (for example droping at the position where drag
 81  was started erases text)- no support for vertical pasting
 82  - anoying cursor blinking (responsible for this is scrolling option :
 83  textArea.moveCaretPosition(pos,JEditTextArea.ELECTRIC_SCROLL) in
 84  dragOver() method)
 85
 86Ideas: a lot of the code in the jedit text area can be simplified
 87   for example, i'm not sure we really need the ChunkCache anymore
 88   just keep the chunks for the currently
 89   painting line around, to speed up the multiple offsetToX() 
 90   calls that happen during painting
 91   also, you might want to rip out the text area's 
 92   scrolling code, and put in a JScrollPane
 93
 94
 95+ auto indent:
 96
 97  - ? : do not unindent
 98  - deep indent
 99  - Common Lisp &body forms
100  - pressing enter: carry over * from prev line in javadoc
101  - javadoc indent: if prev line was /* or *, unindent if prev line is
102  */
103  if(foo)
104    while(bar)
105    {
106      //
107    }
108  <--- cursor here
109  - option to disable electric keys
110  - unindentThisAndFollowing
111  - indent & syntax tokens
112
113+ vfs browser:
114
115  - test keyboard completion with expanded/collapsed tree
116  - test keyboard completion with high latency VFS
117  - fsb default size
118  - don't show 'new directory' in favorites:
119  - file system browser column widths are not saved
120  
121+ misc:
122
123  - kill ring still being reversed
124  - jEdit.checkBufferStatus() fucks with split panes
125  
126  - there is a comment in browser.actions.xml:
127  /* NOTE: I do NOT want plugins creating check box menu items
128   * in jEdit 4.2! The API is not stable, note the _comp hack...
129   * in 4.3 I will finish the full action API refactoring and
130   * IS_SELECTED blocks in browser actions will have access to
131   * the browser variable just like the CODE block above.
132   *
133   * Love, Slava */
134
135  - option to disable buffer local properties
136  - CA+PLUS +: bad
137  - jedit -encoding
138  - goToBuffer() -- if any parent has zero height or zero width...
139  - deferred loading API for macro handlers
140  - S+INS, etc in swing controls
141  - vfs: a way of running awt requests not all at end
142  - wrapped dock buttons broken
143
144+ beanshell:
145
146  ; after else if()
147  longs not read correctly if prefixed with 0x
148
149+ docs:
150
151- vfs browser changes
152- auto indent
153- save help index
154- document optional dependencies
155- deferred loading mention.
156- addCommandPath()
157- API thread safety
158- add note to documentation about exponential-time regexps
159- document deep indent
160- note about dependencies
161- plugin tutorial:
162  - plugin build environment docs
163  - auto-created actions
164  - link to jEdit devel page
165  - quicknotepad class -- links to API docs
166  - functions - links to API docs
167  - quicknotepad docs
168- plugin tips and techniques:
169  - common. properties, using properties for UI strings
170  - cutting down on startup time
171  - canned dialog boxes in GUIUtilities
172  - tools.jar
173  - string comparison in MiscUtilities
174  - writing a macro handler
175  - writing a fold handler
176  - OperatingSystem class
177  - option groups
178  - listening for buffer changes
179  - canned controls:
180    animated icon, color well button, enhanced dialog,
181    font selector, history text field, 
182    jcheckboxlist, rolloverbutton,
183    variablegridlayout
184  - displaying a help viewer
185  - canned icons
186  - vfs implementation
187  - running stuff in i/o threads
188  - multi-threaded i/o
189  - jeditresource: protocol
190  - getting line syntax info, textutilities.getTokenAtOffset()
191  - text area extensions
192  - text area caret & scroll listeners
193  - status bar messages & readNextChar()
194- vfs javadoc: invokeAndWait() example for createVFSSession()
195
196check tips of the day
197- help:
198  - titles in search are fucked
199- sidebars: need a border or some sort
200
201[error] WorkThread: java.lang.ClassCastException
202[error] WorkThread:  at archive.ArchiveVFS.getDirectories(Unknown Source)
203[error] WorkThread:  at archive.ArchiveVFS.cacheDirectories(Unknown Source)
204[error] WorkThread:  at archive.ArchiveVFS._listDirectory(Unknown Source)
205[error] WorkThread:  at org.gjt.sp.jedit.browser.BrowserIORequest.listDirectory(BrowserIORequest.java:159)
206[error] WorkThread:  at org.gjt.sp.jedit.browser.BrowserIORequest.run(BrowserIORequest.java:90)
207[error] WorkThread:  at org.gjt.sp.util.WorkThread.doRequest(WorkThread.java:194)
208[error] WorkThread:  at org.gjt.sp.util.WorkThread.doRequests(WorkThread.java:161)
209[error] WorkThread:  at org.gjt.sp.util.WorkThread.run(WorkThread.java:135)
210
211[error] ChunkCache: BUG: skew=1,out.size()=0
212[error] ChunkCache: BUG: skew=1,out.size()=1
213
214- C+d & killring
215- plugin mgr inspection of not-loaded plugins
216- history text field tweak
217
218+ obscure:
219
220- no need to wait for requests after newFile()
221- class loading problems
222- motif l&f: shortcuts in menu items
223- some JLists do not auto-scroll on keystroke
224- how to handle S+0-9?
225- invoking action bar command twice
226- backup time distance setting
227- if A depends on B but A is loaded before B and B breaks, A ends up
228  being loaded. Solution: load plugins in order of dependencies?
229
230+ performance:
231
232- 7000 line lisp file: window resize is slow
233- closing lots of files is slow -- esp. with close all dialog box!
234- menu drag: slow
235- bracket matching: no delay for current line match??
236- final optimization for OffsetManager: scan to zero or scan to end
237- do buffer load AWT half immediately after work thread half
238- replace all in a directory could be faster
239- buffer.setMode() slow
240- eliminate redundant scans and events when loading buffer
241- don't repaint whole selection when resizing
242- could make non-soft wrap chunk merge even faster!
243- syntax SPAN::END substitution: String --> char[] --> String
244- is getScreenLineOfOffset() called often?
245- if caret is at the end of a buffer when doing a replace all, a lot of
246  repaint() and getLineOfOffset() calls are made
247- optimize for no folding & no soft wrap case:
248  - reset() and changed() don't need to scan
249  - scroll/physUp/Down() simpler
250- inserting lines repaints whole text area
251- see if getLineOfOffset() can be optimized
252- optimize 1 long line case
253- two repaints in line insert
254- redundant calls to recalculateLastPhysicalLines()/updateScrollBars()
255- redundant updateChunksUpTo() calls
256
257jEdit buffer local properties:
258:wrap=hard:maxLineLen=72:indentSize=2: