PageRenderTime 105ms CodeModel.GetById 101ms app.highlight 1ms RepoModel.GetById 0ms app.codeStats 1ms

/jEdit/tags/jedit-4-5-pre1/doc/TODO.txt

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