JEDIT 2.6 VERSION HISTORY

* Version 2.6final

+ Enhancements

- Better support for MacOS X in installer
- Clicking 'Save' in the 'Save As' dialog box while a directory is
  selected in the list will save the buffer to the selected directory
- The edit server is now initialized earlier in jEdit's startup
  sequence
- Haskell mode (Kristian Ovaska)
- ML mode (Dominic Stolerman)
- Minor improvements to Colors & Styles option pane
- Updated VHDL mode (Dante Fabrizio)
- Minor fix to C++ mode (Dirk Moebius)

+ Bug Fixes

- Fixed a minor bug relating to abbreviations and auto indent
- The 'Sort Buffers' option in global options didn't work
- 'Save As' didn't update the title bar
- Minor command line and text area focus bugs fixed
- Up and down arrow keys would throw NullPointerExceptions in the command line
  if nothing was entered
- Fixed possible ArrayIndexOutOfBoundsException when removing plugins using
  the plugin manager
- jEdit would attempt to load sessions from an arbitriary directory if the
  -nosettings command line switch was specified
- Minor changes to MiscUtilities.constructPath() that should make
  the Console plugin's 'cd' command work better
- Minor fix to jEdit.setProperty() method

* Version 2.6pre9

+ Enhancements

- Due to popular demand, the 'buffer sort' option is now settable again
- The border color of docked windows can now be set in the Global Options
  dialog box
- When a line with no syntax info is being painted, the token marker will
  now backtrack up to 100 lines in the buffer in order to get accurate
  syntax info. This should result in better highlighting when pasting
  long blocks of text, scrolling backwards in the buffer, and such
- When changes are made in the 'Global Options' dialog box, the VFS browser
  now only updates itself if browser settings were changed. This avoids
  unnecessary 'display flicker', disk activity, etc.

- Macro improvements:
  - Line numbers entered in "Go to Line" dialog box are now recorded
  - Clicking 'Cancel' in a macro input dialog box will now abort execution
    of the macro
  - The dialog box showing the number of replacements made is no longer
    displayed when playing back a "Replace All"
  - Several more sample macros included in download
  - 'Edit User Macros' and 'Edit System Macros' commands replace 'Edit
    Macro' command

- Clicks and drags in the space between the gutter and text area are now
  handled
- Java mode now supports Infoshere's non-standard extended JavaDoc tags
  (Todd Papaioannou)

+ Neutral

- The installer no longer creates batch files on windows. Just double-click
  on 'jedit.jar' instead

+ Bug Fixes

- Sample macros were left out of download
- '\t' in macro expansion inserted a 't' instead of a tab in the text area
- 'Up' button in VFS browser didn't always go to the list of drives if
  the current location was the root of a drive on Windows
- Bracket highlight no longer painted while buffer is being loaded (this
  could cause minor visual quirks when reloading, for example)
- Minor fix to makefile syntax highlighting
- Closing the global options dialog box no longer reshuffles the main
  tool bar to the bottom if plugin tool bars are also active
- Better error reporting when the user attempts to save to a 'pseudo'
  filesystem such as 'favorites:' or 'roots:'
- Fixed possible NullPointerException when saving files to FTP servers

* Version 2.6pre8

+ New Features

- When the new 'double-click close' option is enabled, double-clicking on
  an open file in the VFS browser will close it. This is disabled by
  default; enable it in Utilities->Global Options->VFS Browser

+ Enhancements

- Text area now has a border and looks a bit better
- Pressing 'Escape' in the command line field now resets the repeat count
- Help viewer has a new look
- Documentation updates
- Deleting, renaming, etc macros from the VFS browser will now update the
  macros list
- Installer source code now included in jEdit download
- Installer source code cleaned up a bit
- When the complete word or complete action popups are visible, the 'Tab'
  key will select the current item
- Literal search code updates (Mike Dillon)
- Contents of VFS browser's 'More' menu is now displayed in the right-click
  popup as well

+ Neutral

- 'Sort buffers' check box gone from Global Options. Buffer sorting is now
  always enabled
- 'Paint invalid lines as red tildes' check box gone from Global Options.
  This feature is no longer available
- 'Fully parse buffers for syntax info when loading' check box gone from
  Global Options. This feature slowed down file loading and provided
  little of benefit, so is no longer available
- Minor cosmetic changes to Editor option pane

+ Bug Fixes

- Repeating macro playback didn't work
- Marker menus were initially empty for newly opened buffers
- The 'Editor' option pane didn't display settings for modes that weren't
  loaded
- Fixed (harmless) NullPointerException when loading files from a URL
- Listing the root of a drive letter didn't work on Windows
- Backspace key didn't work in command line field on some Java versions
- Nested compound edits have been broken since some 2.6preX release, so stuff
  like a 'Replace All' would take several invocations of 'Undo' to fully
  reverse
- Having an unmatched ')' in a regular expression should no longer throw
  an ArrayIndexOutOfBoundsException (Alan Moore)
- Removed useless debugging message from Print command
- The key event workaround code would drop key events under some circumstances
- After the command line's completion popup appears, some key events are no
  longer handled

+ API Changes

- No-args Buffer.tokenizeLines() method deprecated

* Version 2.6pre7

+ Enhancements

- Numbers like 1e10 should now be highlighted by the syntax code
- 'Apply' button in Global Options dialog box
- When 'Complete Word' is invoked in the middle of the word, that word is no
  longer displayed in the list of completions
- The gutter border is now the focused color for the edit pane that last had
  focus, even if it doesn't have focus currently. This makes it easier to see
  which edit pane operations will take place in when using the command line,
  for example
- Open files in the VFS browser are now indicated by a thin vertical line to
  the left of the file's icon
- Standard Metal tool bar icons are now used instead of the JFA ones. Note
  that because of the above change, the toolbar is reset to the default when
  you upgrade from jEdit 2.6pre6 or earlier. This avoids problems with the
  toolbar costomizations using no longer existent icons, and so on.

+ Bug Fixes

- The activity log code would throw a NullPointerException the first time jEdit
  was started
- The command line and plugin manager should no longer print debugging messages
- The VFS browser would sometimes display 'You can only execute one I/O request
  per VFS browser...' messages, even if only one request was executing
- The bug where keys typed in docked plugins and the command line go to the
  text area should be fixed, for real, this time
- Disabling and then enabling the buffer tabs in the Global Options dialog box
  would select the wrong buffer tab
- EditBuddy (the first-time and new-version wizard plugin) was broken
- Clicking beyond the end of the list or tree in the VFS browser could have
  unexpected results
- Sometimes, clicking 'Start' in the HyperSearch window with no string
  entered would 'lock up' the window and make it unusable
- Repeating commands from the command line was really broken and didn't work
  most of the time; should be fixed now

+ API Changes

- GUIUtilities.loadToolBarIcon() deprecated; call loadIcon() instead
- Plugins that used the old JFA icons in the jEdit JAR file will break

* Version 2.6pre6

+ Enhancements

- While the complete word popup is visible, pressing any key except that
  handled by the popup (Up, Down, Enter, Escape) will hide the popup and
  pass the key to the view
- Shortcut changes:
  CS+DELETE becomes S+DELETE
  CS+BACKSPACE becomes S+BACKSPACE
  CA+[ becomes C+e [
  CA+] becomes C+e ]
  C+e C+x becomes C+/
  F7 becomes C+,
  F8 becomes C+.
  'Gutter Expanded' is now bound to C+'
- jEdit no longer prints exceptions to the console if errors occur with
  the edit server. This is to avoid confusing newbies. They are still
  printed to the activity log.
- When windows are docked into a view, double-clicking on a separator bar
  will collapse/expand it
- jEdit now attempts to work around bugs in the key event handling of
  various Java implementations
- Various workarounds to make complete-word and command line popups work
  better

+ Bug Fixes

- Incremental search didn't work
- Fixed compile error on JDK 1.3 in BrowserListView.java
- On Windows, opening FILE.txt and then file.txt used to open the same
  file in two buffers. jEdit now detects when it is running on an OS
  with a case-insensitive filesystem (Windows or MacOS) and adjusts
  accordingly
- Attempting to fix some bugs people have experienced with the Complete Word
  and command line completion popups under certain Java versions

* Version 2.6pre5

+ New Features

- New 'jEdit Command Line' consolidates a number of useful features.
  - C+ENTER (or Utilities->jEdit Command Line) moves keyboard focus to it
  - Typing numbers, followed by a keystroke or menu selection, will repeat
    that keystroke/menu selection
  - Typing an action name, followed by ENTER will execute that action.
    If, while typing the action name, you pause for more than half a
    second or so, a popup will be displayed showing possible completions
    for the currently entered text. To navigate the popup, use either the
    arrow keys and ENTER, or the mouse
  - 'Go to line' now prompts for the line number in the command line, for
    faster operation
  - Some actions, such as open-file and vfs-browser, behave differently
    when invoked from the command line. open-file prompts for a path name
    instead of displaying the Open File dialog box, and vfs-browser prompts
    for a directory to display in the browser
  - Search toolbar removed; Search->Quick Search and Search->Incremental
    Search now prompt for the search string in the command line
- Rudimentary keyboard navigation added to VFS browser:
  - typing first few characters of a file's name selects it (only in list
    view)
  - 'Enter' opens the currently selected file/directory (unless one of
    the two text fields has focus, of course)
  - 'Left' goes to parent directory (ditto)
  - This is in addition to the keys already supported by Swing, such as
    Up/Down to select the previous/next item in the list, etc
- Activity log is now written to $HOME/.jedit/activity.log, and only the
  last 500 messages are kept in memory. This conserves resources because
  the log could grow to a very large size if jEdit was open for a long
  period of time

+ Enhancements

- The 'Complete Word' command now displays the list of completions in a
  popup window below the caret, instead of a separate dialog box. This
  makes it faster and less intrusive
- Settings are now saved in the Search & Replace and HyperSearch dialog
  boxes even if 'Cancel' is clicked
- New method: View.setKeyEventInterceptor(KeyListener listener). If the
  listener is non-null, all key events will be forwarded to it. Useful
  when displaying popup windows and such
- Slightly tweaked auto indent
- The offset of the caret from the beginning of the line is now preserved
  by the Page Up and Page Down keys
- Updated VBScript mode (Ollie Rutherfurd)
- *.asa files are now opened in ASP mode
- The VFS browser no longer reloads the file list every time a buffer is
  saved. This was annoying, especially with autosave
- Documentation updates
- The window docking code is now slightly more resistent to broken dockables
- Undoing all changes up to a save now clears the dirty flag
- 'Load Session' and 'Save Session' commands moved to 'File' menu
- Improved Unix window positioning workaround. Many Unix Java versions
  position windows in an extremely broken manner. As a result, windows
  could 'drift' because their position would be restored incorrectly.
  jEdit 2.6pre5 should do much better; if windows don't appear where you
  last put them on Unix, please tell me!

+ Bug Fixes

- VFS browser couldn't list files on any VFS except for the FileVFS
- Using the Global Options dialog box while a VFS browser was open would
  leave the VFS browser's file list blank
- Pressing the 'Up' button in the VFS browser while viewing the 'roots:'
  or 'favorites:' locations would throw an NPE
- Pressing Enter in the VFS browser's path field also updates the filter,
  and vice versa. Previously, you had to press Enter in both fields if
  you wanted to view a different path with a different filter
- Keys pressed in text components inside views are no longer passed to
  the view's input handler if the text component can handle that key
- The 'Insert Literal' (C+e C+v) command would beep every time it was
  used to insert a character
- Changing a dockable window's position in the Global Options dialog box
  while the dockable is visible and then closing the dockable would
  reset its position to what it was previously
- Plugin manager would throw a NullPointerException when updating plugins
  with no main class, such as BuildTools
- jEdit would hang if buffer list sorting was enabled and a buffer was
  saved to a file name which would re-sort it to the beginning or end of
  the list
- Abbreviations containing backslash characters would not be expanded
  properly sometimes
- The last line of multi-line abbreviations wasn't indented
- Under very rare circumstances, undos would throw IllegalArgumentExceptions
- Bracket matching would fail when brackets surrounded a syntax token
- Buffers menu was empty for initially opened views

+ API Changes

- Signature of Buffer.indentLine() method changed to:
  boolean indentLine(JEditTextArea textArea, int line,
          boolean canIncreaseIndent, boolean canDecreaseIndent)
- EditPlugin.createMenuItems(View,Vector,Vector) deprecated; override
  createMenuItems(Vector) instead

* Version 2.6pre4

+ New Features

- TCL syntax highlighting (Michael P Jacobson)
- Passive-mode FTP can now be enabled in the Global Options dialog box
  (Mike Dillon)

+ Enhancements

- Improved abbreviations feature:
  - Abbrevs are now only expanded when a space is entered
  - Abbrevs are now only saved on exit if they were changed while
    the editor was running. This improves performance a little bit
  - Abbrev expansions can now contain more than one line; "\n" inside an
    expansion will create a new line
  - The caret position can be specified by placing "\|" inside an abbrev
    expansion
- I/O and VFS browser improvements:
  - Filename filter combo box in VFS browser is now a text field
  - New VFSUpdate message is sent when a file or a directory changes. As a
    result, VFS browsers are automatically updated when files are created
    or deleted (within jEdit)
  - When a file is added or removed, the VFS browser tree view now only
    updates the branch where the file is located, not the entire tree
  - The VFS browser now displays an error message if you attempt to execute
    more than one request simultaneously. Because the browser was not
    designed with this in mind, it would cause strange problems
- Previously, to position the caret on a specific marker or line number
  from the command line, you would write:
  jedit filename#<marker name>
  jedit filename#+<line>
  Now, you must write:
  jedit filename +marker:<marker name>
  jedit filename +line:<line>
- This is not an enhancement, but anyway: the -readonly command line
  flag has been removed
- doc/NEWS.txt written
- Documentation updates

+ Bug Fixes

- When using FTP URLs which don't specify the user name (for example,
  ftp://hostname) jEdit would prompt for the user name/password for
  every VFS operation
- FtpVFS no longer throws NullPointerExceptions when an error occurs
  while connecting to a server
- A bug in the WorkThreadPool.waitForRequests() method would cause
  HyperSearch to begin searching inside buffers before they were fully
  loaded
- The 'Up' button in the VFS browser would behave incorrectly if it was
  pressed while the current directory was a file system root
- Double-click on directory bug in 'save as' dialog box fixed yet again
- The 'New Directory' command didn't appear in the 'More' menu of the
  VFS browser
- Closing the global options dialog box while a VFS browser was open
  would reload the current directory twice
- Closing all buffers didn't work properly if the view was split and
  buffer tabs was disabled
- Closing and opening buffers would always shift the focus to the last
  text area if the view was split
- Using the tree view with the 'favorites:' protocol would cause the
  VFS browser to use the wrong VFS when deleting and renaming files
- Sometimes, buffers would be loaded empty due to a bug in the
  WorkThreadPool class

* Version 2.6pre3

+ New Features

- Window docking added to the core. This allows plugins and other windows
  to be 'docked' into views. By default, all dockable windows are shown
  in their own frames. This can be changed in Utilities->Global Options->
  Docking. This obsoletes the PluginHolder plugin.

+ Enhancements

- Previously, buffer closing and search & replace would block the GUI
  until all pending I/O was complete. Now, these commands only do it if
  it is really necessary
  the buffer _being closed_ is currently being loaded or saved
- If the default edit mode is not 'text', *.txt files are now opened in
  text mode anyway
- jEdit now remembers all FTP passwords until it is quit. To force it
  to forget passwords while it is still running, invoke Utilities->Forget
  Remote Passwords
- More VFS code cleanups
- Documentation updates

+ Bug Fixes

- Double-clicking on a directory in the 'save as' dialog box did not have
  the desired effect (since 2.6pre2)
- On some systems, File.list(), for whatever reason, returns files in the
  list, which return false when exists() is called on them. This caused NPE's
  (since 2.6pre2)
- The VFS browser would throw 'VFS session in use' errors after the
  Global Options dialog box was closed (since 2.6pre2)
- The 'Add to Favorites' button in the VFS browser would throw an NPE if the
  tree view was active (since 2.6pre2)
- The FTP VFS now resolves symlinks, so links to directories should no
  longer show up as plain files in the browser
- The DirectoryListSet would reject directories whose names didn't match
  the file name filter, and not check any files within them (since 2.6pre2)
- On some JVMs, IORequest.java would cause VerifyErrors, and as a result,
  buffers could not be loaded or saved (since 2.6pre2)
- Markers would not be loaded properly (since 2.6pre1)

+ API Changes

- Plugins that use PluginHolder to dock themselves in views will need to
  be updated to use the new API
- Plugins that dock themselves in directly (eg, BufferSelector) will need
  to be updated for the new component hierarchy

* Version 2.6pre2

+ New Features

- New file chooser. Has the following advantages over the Swing file chooser:
  - Uses VFS code, so you can browse the local filesystem and remote FTP
    sites from one dialog box (the old FTP Browser is gone, by the way)
  - Multiple file selection is supported
  - Remote directory listings are cached for improved performance. The cache
    can be flushed with the Utilities->Flush Remote Directory Cache command
  - Tooltips are shown for obscured and truncated file names
  - More flexible sorting
  - Frequently-visited directories can be stored in a 'favorites' list
  - Optional 'tree view' allows quick viewing of an entire directory
    hierarchy
  - Hidden files can optionally be displayed
  - Geometry of file chooser is saved
  - The 'Find file' widget has not yet been ported to the VFS. It will appear
    in a future pre-release.
- Utilities->File System Browser displays a stand-alone version of the file
  chooser

+ Enhancements

- Major changes to VFS code to support browsing
- Updated JavaScript mode (Ollie Rutherford)
- Tool bar buttons now have a 'rollover' effect
- Global Options dialog box re-arranged somewhat
- 'Send' command moved to a plugin, out of the core
- Repeated actions can now be undone in one operation
- Macro invocations can now be undone in one operation
- HyperSearch command no longer displays the wait cursor in all open views
  while searching -- because the search is threaded, this didn't make sense

+ Bug Fixes

- Plugins couldn't be removed on systems that disallow removing open files,
  such as Windows (since 2.6pre1)
- FtpVFS.getFileLength() always returned 0 (since 2.6pre1)
- FtpVFS would throw a NullPointerException if an error occurred while
  connecting to the FTP server
- An autosave setting of '0' caused problems (since 2.6pre1)
- Macros invoked using keyboard shortcuts would always fail with a
  "macro not found" error (since 2.6pre1)
- 'HTML/Close Tag' macro called on non-existent goto-end-indent action
- HTMLActionButton.java didn't compile on JDK 1.3 (since 2.6pre1)

+ API Changes

- org.gjt.sp.jedit.REFileFilter class removed
- Many changes made to org.gjt.sp.jedit.VFS class
- New AbstractOptionPane.addSeparator(String) method
- New methods added to GUIUtilities class:
  input(Component comp, String name, String[] args, String def);
  inputProperty(Component comp, String name, String[] args, String def);
- MiscUtilities.constructPath() no longer returns a canonical path (ie,
  with all symlinks resolved)
- New method: GUIUtilities.loadMenu(String). Plugins that target jEdit
  2.6pre2 (or 2.5.2) can use this method instead of the older loadMenu()
  form.
- org.gjt.sp.jedit.syntax.SyntaxDocument class removed

* Version 2.6pre1

+ New Features

- Macros can now be added to the tool bar and right-click context menu
- The bracket matching code now only checks syntax tokens of the same type
  as the bracket for matches. As a result, string literals and comments
  containing brackets should no longer cause problems
- New 'EditBuddy' plugin, included in the jEdit distribution, displays
  'initial setup' and 'new version' wizards when jEdit is first run and
  when a new version is installed, respectively. These wizards help you
  configure firewall settings, install and update plugins, view the
  change log, and other such stuff.
- 'Print' command now supports printing of line numbers, and many printing
  settings can now be customized in Utilities->Global Options->Printing
- I/O requests no longer block the GUI, and multiple requests can be
  executed at once. By default, 4 I/O threads are started; this can be
  changed in Utilities->Global Options
- I/O requests can be monitored and aborted in Utilities->I/O Progress
  Monitor. A miniature version of the progress display is in the status
  bar of each view

+ Enhancements

- Gutter border color now reflects if the respective text area has focus
- Menu bar code restructured somewhat
- View-related commands moved out of Utilities menu to new View top-level
  menu, Buffers menu is now a submenu of the new View menu as well
- Colored 'orbs' displaying file modification status are now displayed in
  the Buffers menu
- Registers and markers are now highlighted using different colors in the
  gutter
- The plugin manager now deletes files for real when removing and upgrading
  plugins; previously, it shoved them in a 'backup' directory
- Shortcut of 'Exit' command changed to C+q
- 'Exit' command now asks for confirmation (can be disabled in
  Utilities->Global Options)
- The directory search feature now sorts file names before searching
- Abbreviations and history files are not saved if they are changed on disk
  while jEdit is running
- The 'Help' menu now displays documentation for plugins that didn't load
- Improved Python mode (Ivan Frohne)
- Improved JSP mode (Vicente Salvador)
- Improved autosave feature -- dedicated autosave thread gone, and up to
  four files are autosaved at once
- The 'Plugins' and 'Help' menus now display 'More' submenus if there are
  a lot of items. This prevents them from being too long
- Threaded FTP browser

+ Bug Fixes

- Fixed installer layout bug which might be the cause of exceptions people
  have been seeing on certain platforms
- Fixed minor cosmetic problem in status bar when entering repeat counts
  where the first digit is '1'
- When buffers were saved while the view was split, the focus would
  always shift to the last (bottom or rightmost) split pane
- JEditTextArea didn't unregister the gutter from the tooltip manager, this
  could result in memory leaks
- C, C++, Java and JavaScript didn't indent 'default:' statements properly
- Empty .marks files weren't deleted if no markers were set when saving to
  an FTP server
- The caret status in the status bar wouldn't be updated when switching
  between buffers where the caret was at the beginning of both

+ API Changes

- GUIUtilities.loadMenuItem(View,String) deprecated. Use
  GUIUTilities.loadMenuItem(String) instead. Don't worry, since all existing
  plugins use the old method, it won't be removed any time soon, if at all.
- Return type of TokenMarker.markTokens() changed from Token to
  TokenMarker.LineInfo
- EditActions can now be invoked without a view (of course the action
  will still fail if it calls EditAction.getView())
- Signature of VFSManager.error() is now void error(Component comp,
  String msg, Object[] args)
- JEditTextArea.get/setDocument(), getDocumentLength() deprecated; use
  get/setBuffer(), getBufferLength() instead
- VFS class changes:
  delete(String path) changed to _delete(Buffer buffer, String path)
  canDelete() changed to _canDelete()
  new _getFileLength(Buffer buffer, String path) method
