/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
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
- [error] ExtensionManager: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 379
- [error] ExtensionManager: at org.gjt.sp.jedit.Buffer.getLineOfOffset(Buffer.java:892)
- [error] ExtensionManager: at errorlist.DefaultErrorSource$DefaultError.getLineNumber(DefaultErrorSource.java:510)
- [error] ExtensionManager: at errorlist.DefaultErrorSource.findError(DefaultErrorSource.java:330)
- [error] ExtensionManager: at errorlist.DefaultErrorSource.getLineErrors(DefaultErrorSource.java:134)
- [error] ExtensionManager: at errorlist.ErrorHighlight.paintValidLine(ErrorHighlight.java:53)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.TextAreaExtension.paintScreenLineRange(TextAreaExtension.java:70)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:146)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:106)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:699)
- [error] ExtensionManager: java.lang.NullPointerException
- [error] ExtensionManager: at org.gjt.sp.jedit.Buffer.markTokens(Buffer.java:2161)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ChunkCache.lineToChunkList(ChunkCache.java:760)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ChunkCache.updateChunksUpTo(ChunkCache.java:635)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ChunkCache.getLineInfo(ChunkCache.java:244)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.TextAreaPainter$PaintText.paintValidLine(TextAreaPainter.java:1039)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.TextAreaExtension.paintScreenLineRange(TextAreaExtension.java:70)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:146)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:106)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:699)
- TO DO
- absolute path completion
- does not indent properly:
- 1000 [
- [
- [
- [
- 50000 cons-a-lot
- ] 4 10 make-trash
- ] 4 10 make-trash
- ] 4 10 make-trash 0 swap [ [ + ] when* ] tree-each drop
- ] times
- Note that this is not a complete to do list. It mostly only lists bugs
- and quirks that I need to fix eventually.
- splitting messes up last physical line in the newly created text area
- console: cd / repeatedly on windows
- ok [error] ExtensionManager: java.lang.NullPointerException
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.StructureMatcher$Highlight.getOffsets(StructureMatcher.java:181)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.StructureMatcher$Highlight.paintHighlight(StructureMatcher.java:207)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.StructureMatcher$Highlight.paintValidLine(StructureMatcher.java:147)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.TextAreaExtension.paintScreenLineRange(TextAreaExtension.java:70)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:146)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:106)
- [error] ExtensionManager: at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:699)
- + text area:
- - click&drag breaks fast scroll
- - format: doesn't wrap right if selection starts in the middle of the
- line
- - ruleset importing trick
- - expand fold: try to expand even if already expanded
- - backspace with virtual caret: needs tweaks
- - independent text area component
- - gutter: has a depenency on View to do focus highlight, and Marker
- - text area: depends on view for input handling,
- smart home/end macro record, showing dialog boxes, abbrevs
- - mouse handler: registers
- - text area transfer handler: opening files dependency
- - new file: explicit folding: type {{{: fold marker doesn't appear
- - finish code to hide caret on user input; enter/backspace is a problem
- maybe listen for KeyTyped instead
- - indent folding: fold marker not always updated
- - format: preserve comment chars at start
- - tabs to spaces with rect select
- - input methods
- - remove-marker, select-next/prev-marker/bracket
- - format -- instead of \n\n, what if it has \n \n?
- - DnD still dosn't work as expected when draging from the same buffer,
- but differen text area (for example droping at the position where drag
- was started erases text)- no support for vertical pasting
- - anoying cursor blinking (responsible for this is scrolling option :
- textArea.moveCaretPosition(pos,JEditTextArea.ELECTRIC_SCROLL) in
- dragOver() method)
- Ideas: a lot of the code in the jedit text area can be simplified
- for example, i'm not sure we really need the ChunkCache anymore
- just keep the chunks for the currently
- painting line around, to speed up the multiple offsetToX()
- calls that happen during painting
- also, you might want to rip out the text area's
- scrolling code, and put in a JScrollPane
- + auto indent:
- - ? : do not unindent
- - deep indent
- - Common Lisp &body forms
- - pressing enter: carry over * from prev line in javadoc
- - javadoc indent: if prev line was /* or *, unindent if prev line is
- */
- if(foo)
- while(bar)
- {
- //
- }
- <--- cursor here
- - option to disable electric keys
- - unindentThisAndFollowing
- - indent & syntax tokens
- + vfs browser:
- - test keyboard completion with expanded/collapsed tree
- - test keyboard completion with high latency VFS
- - fsb default size
- - don't show 'new directory' in favorites:
- - file system browser column widths are not saved
-
- + misc:
- - kill ring still being reversed
- - jEdit.checkBufferStatus() fucks with split panes
-
- - there is a comment in browser.actions.xml:
- /* NOTE: I do NOT want plugins creating check box menu items
- * in jEdit 4.2! The API is not stable, note the _comp hack...
- * in 4.3 I will finish the full action API refactoring and
- * IS_SELECTED blocks in browser actions will have access to
- * the browser variable just like the CODE block above.
- *
- * Love, Slava */
- - option to disable buffer local properties
- - CA+PLUS +: bad
- - jedit -encoding
- - goToBuffer() -- if any parent has zero height or zero width...
- - deferred loading API for macro handlers
- - S+INS, etc in swing controls
- - vfs: a way of running awt requests not all at end
- - wrapped dock buttons broken
- + beanshell:
- ; after else if()
- longs not read correctly if prefixed with 0x
- + docs:
- - vfs browser changes
- - auto indent
- - save help index
- - document optional dependencies
- - deferred loading mention.
- - addCommandPath()
- - API thread safety
- - add note to documentation about exponential-time regexps
- - document deep indent
- - note about dependencies
- - plugin tutorial:
- - plugin build environment docs
- - auto-created actions
- - link to jEdit devel page
- - quicknotepad class -- links to API docs
- - functions - links to API docs
- - quicknotepad docs
- - plugin tips and techniques:
- - common. properties, using properties for UI strings
- - cutting down on startup time
- - canned dialog boxes in GUIUtilities
- - tools.jar
- - string comparison in MiscUtilities
- - writing a macro handler
- - writing a fold handler
- - OperatingSystem class
- - option groups
- - listening for buffer changes
- - canned controls:
- animated icon, color well button, enhanced dialog,
- font selector, history text field,
- jcheckboxlist, rolloverbutton,
- variablegridlayout
- - displaying a help viewer
- - canned icons
- - vfs implementation
- - running stuff in i/o threads
- - multi-threaded i/o
- - jeditresource: protocol
- - getting line syntax info, textutilities.getTokenAtOffset()
- - text area extensions
- - text area caret & scroll listeners
- - status bar messages & readNextChar()
- - vfs javadoc: invokeAndWait() example for createVFSSession()
- check tips of the day
- - help:
- - titles in search are fucked
- - sidebars: need a border or some sort
- [error] WorkThread: java.lang.ClassCastException
- [error] WorkThread: at archive.ArchiveVFS.getDirectories(Unknown Source)
- [error] WorkThread: at archive.ArchiveVFS.cacheDirectories(Unknown Source)
- [error] WorkThread: at archive.ArchiveVFS._listDirectory(Unknown Source)
- [error] WorkThread: at org.gjt.sp.jedit.browser.BrowserIORequest.listDirectory(BrowserIORequest.java:159)
- [error] WorkThread: at org.gjt.sp.jedit.browser.BrowserIORequest.run(BrowserIORequest.java:90)
- [error] WorkThread: at org.gjt.sp.util.WorkThread.doRequest(WorkThread.java:194)
- [error] WorkThread: at org.gjt.sp.util.WorkThread.doRequests(WorkThread.java:161)
- [error] WorkThread: at org.gjt.sp.util.WorkThread.run(WorkThread.java:135)
- [error] ChunkCache: BUG: skew=1,out.size()=0
- [error] ChunkCache: BUG: skew=1,out.size()=1
- - C+d & killring
- - plugin mgr inspection of not-loaded plugins
- - history text field tweak
- + obscure:
- - no need to wait for requests after newFile()
- - class loading problems
- - motif l&f: shortcuts in menu items
- - some JLists do not auto-scroll on keystroke
- - how to handle S+0-9?
- - invoking action bar command twice
- - backup time distance setting
- - if A depends on B but A is loaded before B and B breaks, A ends up
- being loaded. Solution: load plugins in order of dependencies?
- + performance:
- - 7000 line lisp file: window resize is slow
- - closing lots of files is slow -- esp. with close all dialog box!
- - menu drag: slow
- - bracket matching: no delay for current line match??
- - final optimization for OffsetManager: scan to zero or scan to end
- - do buffer load AWT half immediately after work thread half
- - replace all in a directory could be faster
- - buffer.setMode() slow
- - eliminate redundant scans and events when loading buffer
- - don't repaint whole selection when resizing
- - could make non-soft wrap chunk merge even faster!
- - syntax SPAN::END substitution: String --> char[] --> String
- - is getScreenLineOfOffset() called often?
- - if caret is at the end of a buffer when doing a replace all, a lot of
- repaint() and getLineOfOffset() calls are made
- - optimize for no folding & no soft wrap case:
- - reset() and changed() don't need to scan
- - scroll/physUp/Down() simpler
- - inserting lines repaints whole text area
- - see if getLineOfOffset() can be optimized
- - optimize 1 long line case
- - two repaints in line insert
- - redundant calls to recalculateLastPhysicalLines()/updateScrollBars()
- - redundant updateChunksUpTo() calls
- jEdit buffer local properties:
- :wrap=hard:maxLineLen=72:indentSize=2: