/jEdit/tags/jedit-4-0-pre3/doc/CHANGES.txt
Plain Text | 534 lines | 497 code | 37 blank | 0 comment | 0 complexity | 5b1709d369939d6efc398d927fff4b70 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
- JEDIT 4.0 VERSION HISTORY
- * Version 4.0pre3
- jEdit now requires Java 2 version 1.3 or later! Java 2 version 1.2 and
- Java 1.1 can no longer be used to run jEdit.
- + New Features
- - Two-stage save (where a file is first saved to #filename#save#, then
- renamed to the actual file name) can be disabled in the 'Loading and
- Saving' option pane
- - -noplugins command line switch added
- - Added option to have backups created on every save (default is to only
- create one backup for each file, until it is closed)
- (Ollie Rutherfurd)
- - 'Extra word characters' setting added to Editing option pane
- - 'Range Comment' and 'Line Comment' commands now behave correctly when,
- for example, inserting comments in inline JavaScript in an HTML file.
- - The new Buffer.getContextSensitiveProperty() method first checks the
- properties of the parser rule set at the specified offset; then the
- edit mode that contains that rule set; and finally, the edit mode of
- the buffer itself.
- - In mode files, you can now place a PROPS element inside a RULES
- element to define ruleset-specific properties. Currently, only the
- 'commentStart', 'commentEnd' and 'lineComment' properties can be
- ruleset-specific.
- - 'Search->Incremental Search for Word' command puts the word under the
- caret in the search bar
- - 'Search->HyperSearch for Word' performs a HyperSearch for the word
- under the caret
- - View->Folding submenu is now a top-level Folding menu. A few commands
- have been added:
- - Add Explicit Fold (C+e a): surrounds the selection with explicit
- fold markers ({{{ and }}})
- - Go to Previous/Next Fold (A+UP, A+DOWN): self-explanatory. Go to
- Previous/Next Marker, which were formely bound to A+UP/DOWN, are now
- bound to C+e , and C+e ..
- - Go to Parent Fold (C+e u): moves caret to fold with a higher level
- than the one containing the caret
- - Narrow to Fold (C+e n n): equivalent to invoking 'Select Fold', then
- 'Narrow to Selection'
- - Narrow to Selection (C+e n s): this command is the same as before,
- but has a new shortcut
- - ActionScript syntax highlighting (Ben Glazer)
- + Enhancements
- - C+LEFT/C+RIGHT are now more intelligent. Tell me if you like the new
- behavior.
- - If there are more buttons in a docking area than can fit, a popup menu
- button is shown; clicking it shows a popup listing all dockables in
- that area
- - Added option to disable file system browser's tool bar
- - I/O errors are now batched into a single dialog box
- - New, smaller icons in file system browser (Dirk Moebius)
- - New jEdit window icon (Phillip Richdale)
- - First item in File->Current Directory menu (the directory path itself)
- is no longer a grayed out label; you can invoke it to view the
- directory in the file system browser
- - First item in 'Paste Previous' dialog pre-selected when dialog shown
- - Focus is returned to file list in 'Close All' dialog box after one of
- the buttons are clicked
- - Recent Directories menu, Browse System/User Macros commands, and other
- commands that open directories in the file system browser now work a
- little better
- - The list of open files is now saved by the autosave task
- - Smoother incremental search
- - When HOME is pressed while there is a selection, the caret is moved to
- the beginning of the first selected line. END moves the caret to the
- end of the last selected line.
- - Search bar automatically selects its contents as soon as it gets focus
- - The file system browser's 'Search in Directory' command no longer
- hangs the event dispatch thread until the directory hierarchy has been
- listed
- - If an error occurs while loading one of the files involved in a
- multi-file search, the search will continue; previously it would have
- been aborted. Any errors will be listed in a dialog box after the
- search is complete.
- - Commands in View->Splitting menu moved to top level of View menu
- - Updated PL-SQL mode (Steve Snider)
- - Updated MS-DOS batch mode (Mirco Bova)
- - Files on read-only filesystems (such as the URL filesystem) now have
- the read-only flag set. Previously, only local files would have the
- read only flag set automatically.
- + Neutral
- - Syntax highlighting can no longer be disabled -- too many features
- (bracket matching, commenting commands) rely on syntax info now
- + Bug Fixes
- - JEditTextArea now uses type-safe buffer property accessors, so there
- shouldn't be any more ClassCastExceptions
- - Fixed stack overflow if attempting to use URL filesystem (to open an
- http:// URL, for instance)
- - Fixed stupid bug in installer that affected MacOS X installation
- - File system browser's parent directory view could not be completely
- hidden by dragging the split pane
- - Pressing the left arrow key in the file system browser didn't always
- work
- - Bracket matching would sometimes show a status bar message even if the
- bracket was visible
- - Fixed another minor bracket repaint problem that would occur if the
- matched bracket was not visible and the text area lost focus
- - Select Line, Select Word, Select Paragraph actions were slightly
- broken
- - Fixed minor undo modified flag clearing bug
- - Pressing the tab key with a one-line selection would insert a hard tab
- even if soft tabs were enabled
- - Deprecated MiscUtilities.compareVersions() method was an instance
- method, which made plugins that used it throw VerifyErrors on startup.
- These plugins will now work again (but should eventually be updated to
- call non-deprecated methods).
- - Fixed another search and replace bug triggered by the Tags plugin
- - When searching in multiple selections, HyperSearch would create one
- tree node for each selection
- - InputHandler.readNextChar() didn't work with all characters
- - Floating positions would sometimes be updated incorrectly when text
- was inserted
- - Fixed another file system browser 'Search in Directory'
- NullPointerException
- - Buffer-local property parsing code was broken
- - Sometimes multi-line tokens would not be repainted correctly
- - Opening files whose path began with ~ (which was supposed to be
- expanded to your home directory path) didn't work
- - Trying to do a directory search inside a directory which contained a
- symlink loop would hang jEdit
- - The 'Auto Wrap' search option did not take effect in macros
- - Bug fix in MacOS plugin (Kris Kopicki)
- - Fixed problem with default position of table of contents in help, and
- dockable window dividers
- - Default filename filter in file system browser skipped files with
- single-character names. Now the default filter is *[^~#], which should
- work properly
- - On JDK 1.4, closing a docking area didn't deselect the currently
- selected button
- + API Changes
- - VFS.reloadDirectory() method added; it is called before a directory is
- reloaded by the file system browser
- - MiscUtilities.charsToXMLEscapes() method added
- - To take advantage of the new I/O error dialog box, virtual filesystem
- implementations should call:
- VFSManager.error(Component comp, String path, String messageProp,
- Object[] args)
- instead of
- VFSManager.error(Component comp, String message, Object[] args)
- The message is obtained from the property 'messageProp' (nothing is
- prepended or appended to the property name).
- - New method: VFSBrowser.browseDirectory(View view, String path)
- - New method: MiscUtilities.listDirectory(String directory, String glob,
- boolean recurse)
- * Version 4.0pre2
- + New Features
- - MacOS plugin bundled (Kris Kopicki)
- - jEdit exits cleanly when Command+Q is pressed
- - Files created or associated with jEdit can now be opened from the
- Finder by double-clicking on them, or dragging them to the jEdit
- icon
- - jEdit is assigned as the creator of new files
- - A few Alt-key shortcuts added for commonly-used commands so that you
- don't have to move your fingers all over the keyboard:
- - A+i, A+k: prev, next line
- - A+j, A+l: prev, next character
- - A+q, A+a: page up, page down
- - A+z, A+x: home, end
- - A+d: delete next character
- - A new View->Docking menu; contains commands for closing the left, top,
- right and bottom docking areas (shortcuts: C+e 1,2,3,4)
- - Narrowing re-implemented. This feature was present in jEdit 3.2 but
- was missing from 4.0pre1.
- + Enhancements
- - Bracket matching improvements:
- - If the highlighted bracket is off screen, the text of the matching
- line is shown in the status bar. And here's the best part: if the
- matching line cosists of only a bracket and whitespace, the
- *previous* line is shown in the status bar instead
- - Clicking the scope indicator in the gutter moves the caret between
- the two matching brackets
- - Control-clicking the scope indicator or a bracket in the text area
- selects all text between the two matching brackets
- - File system browser improvements:
- - Parent directories are now listed in a widget at the top of the
- file system browser
- - File->Recent Directories menu lists directories that were recently
- visted in the file system browser
- - File selection dialog boxes now have a status bar that shows the
- number of pending I/O requests
- - Middle mouse button click in file system browser now has the same
- effect as double-clicking
- - You can now enter relative paths in the file system browser's path
- field
- - 'More' menu split into 'Commands' and 'Plugins' menus
- - 'Commands' menu and tool bar now have the same set of commands
- - 'Favorites' menu added for quicker access to favorites
- - If invoked while a file is selected, the 'Search in Directory'
- command now sets the search file name filter to that file's
- extension
- - Icons added to 'BeanShell Error' and 'Close All' dialog boxes
- - Updated PV-WAVE mode (Ed Stewart)
- - Updated Transact-SQL mode (Ollie Rutherfurd)
- - Updated Omnimark mode (Lionel Fiol)
- - Closing a docked window now returns focus to the text area
- - Memory indicator tooltip now shows used and total Java heap memory in
- kilobytes
- - Option for search and replace to beep on auto wrap (Kenrick Drew)
- - Faster (in theory anyway) file loading as a side effect of some bug
- fixes
- - Improved help viewer welcome screen
- - Updated QuickNotepad sample plugin for jEdit 4.0 API changes (John
- Gellene)
- - 'Delete Line' now leaves the caret in the same column
- - '~' in buffer and directory path names is now automatically expanded
- to the home directory
- - Improved undo
- - Pressing Tab while there is a selection will now only shift the line's
- leading indent if the selection spans more than one line
- - If indent on tab is enabled, a line will only be indented if Tab is
- pressed inside the leading whitespace of that line. Indent on tab is
- now enabled by default
- - Bundled set of macros slimmed down somewhat. You can find more macros
- at http://community.jedit.org (John Gellene)
- - Text selection commands (Select Word, Select Line, and so on) are now
- multiple selection aware
- + Bug Fixes
- - Fixed a memory leak with the search and replace dialog box
- - Undo would be broken after a file was reloaded
- - Fixed exception thrown if a buffer contained definitions for integer
- properties (tab size, maximum line length, ...)
- - Changing the gutter font didn't update the gutter width
- - Fixed broken scrolling behavior
- - Some files would open with only one line visible
- - MiscUtilities.compareStrings() would throw exceptions with strings
- that contained embedded numbers larger than 2^31
- - Creating a new view or splitting the view didn't work
- - Tool bar tooltips were broken
- - With the Windows look and feel, file names were invisible in the file
- system browser
- - In the help viewer, the top-level user's guide link was broken
- - BufferChangeAdapter didn't properly implement BufferChangeListener
- interface (Maik Schreiber)
- - GUIUtilities.loadToolButton() no longer throws an exception with
- invalid tool bar buttons
- - It was not possible to bind an action to a non-alphanumeric key
- without any modifiers
- - The file system browser's notion of the current directory is not
- changed until the directory is actually loaded successfully
- - Some directories could not be deleted from the favorites
- - It is no longer possible to add the same directory to the favorites
- twice
- - File->Current Directory menu now shows 'No Files' if there are no
- files in the current directory
- - Fixed a few bugs in the File System Browser->Colors option pane
- - Compound edits were rather buggy
- - 'Trailing EOL' setting did not work
- - Fixed possible MacOS X keyboard problems (again...)
- - Fixed a buffer corruption bug
- - 'Select Fold' command threw an exception of there were no folds in the
- buffer
- - Fixed a few bracket matching bugs
- - Fixed cosmetic bug in search and replace code that was triggered by
- the Tags plugin
- - Fixed minor repaint bug with multiple selections
- + API Changes
- - New method in VFS class: _canonPath().
- - VFS.DirectoryEntry constructor accepting a 'color' parameter removed.
- Instead, write a VFS.DirectoryEntry subclass that overrides the
- getColor() method
- - MiscUtilities.constructPath(), .getFileName(), .getParentOfPath()
- methods are now VFS-aware
- - Note that the behavior of correspondingly-named methods in the VFS
- class has changed in a suttle manner, and they should no longer be
- called directly. Use the MiscUtilities methods for all path
- manipulation.
- - EditAction.getView() deprecated, call GUIUtilities.getView() instead
- * Version 4.0pre1
- + New Features
- - New document model uses less memory, loads files faster, and has a
- simpler API for developers. Also, finally, the file modification flag
- is cleared when all edits up to a save are undone
- - New folding features:
- - Three fold modes: none, indent, explicit. 'none' is the default now.
- 'indent' is the indent-based folding mode, that behaves the same as
- indent-based folding in jEdit 3.1 and 3.2. 'explicit' parses the
- buffer for {{{ and }}} and adds folds based on that.
- - Change the fold mode by clicking the fold mode widget in the status
- bar, or in the Buffer Options dialog box, or with the 'folding'
- buffer-local property, or in the Global Options dialog box.
- - Folds are now shown in the gutter as triangles, which is more
- intuitive than filled/not-filled boxes
- - View->Folding->Collapse All Folds command, equivalent to invoking
- 'Expand Folds With Level' and specifying a level of 1
- - Different text areas editing the same buffer can now have different
- folds collapsed and expanded. Previously, fold visibility was stored
- at the buffer level
- - Utilities->Memory Status command to replace 'Show Free Memory' macro
- - General look and feel settings moved to 'Appearance' option pane
- - If you are using the Metal or Kunststoff L&F, the UI control font can
- be changed in Utilities->Global Options->Appearance
- - 'Vertical Paste' macro (Andre Kaplan)
- - File listings in the file system browser are now colorized. Change the
- colors in Utilities->Global Options->File System Browser
- - When a file is loaded, jEdit now remembers if it contained a trailing
- newline, and if so, writes it out when saving the file. Previously, a
- trailing newline would always be written, regardless of it being
- present in the file on disk or not
- - The tab and enter key can now be used in shortcut assignments
- - Utilities->Evaluate for Selected Lines command evaluates specified
- BeanShell expression for each selected line, replacing the contents of
- that line with the return value of the expression
- - Macros.confirm() method added, for use in macros
- - BBj (Business Basic based on Java) syntax highlighting (Thomas Bock)
- - BibTeX syntax highlighting (Nils Krahnstoever)
- - Option added to sort recent file list by name
- - -nogui switch is back. If specified when jEdit is being run in
- background mode, the initial view will not be opened
- - Edit->Invert Selection command added
- - The gutter now displays a scope indicator when the caret and matching
- bracket are not on the same line
- - Ant is used instead of jmk to compile jEdit
- + Neutral
- - Word wrap is disabled by default
- + Enhancements
- - BeanShell 1.2b3 now included, instead of slightly patched 1.2b1
- - New splash screen and about box (Kris Kopicki)
- - HTML documentation is now generated using DocBook XSL 1.44 stylesheets
- - Option in activity log window to automatically scroll to bottom on
- output (Dirk Moebius)
- - Status bar improvements:
- - Tool tips for all controls
- - Double-click on caret status shows the 'go to line' dialog box
- - Instead of showing 'multi' in gray of multiple selection was
- disabled, and in black if it was enabled, the display now
- alternates between 'multi' and 'single'
- - Same for the overwrite status; it now shows 'ins' or 'ovr'
- - I/O progress display replaced with a Java heap memory indicator
- - I/O status is now shown in the message area of the status bar
- - New color scheme
- - Pressing Tab while a selection is active shifts it right by one level
- of indent
- - Pressing S+Tab shifts the selection right by one level of indent
- - If a selection ends at the beginning of a line, that line is no longer
- considered to be part of the selection by line manipulation commands
- - Improved window docking feature:
- - New, much simpler API for plugins
- - 'Auto open' setting in Docking option pane removed, now jEdit
- remembers which dockables were open automatically
- - Docked windows are shown inside a custom control, not a tabbed pane
- - ALL dockable windows set to dock in a certain area are shown in that
- area, not just those currently 'open'. When a dockable is requested
- for the first time, it is created and loaded
- - Changes made in the Docking option pane now take effect immediately
- - In the Shortcuts option pane, each plugin's actions are shown in a
- separate section. This solves the problem of plugin actions having
- ambiguous names (for example, "Edit Settings"). This change is the
- reason for the jEdit.addAction() method was dropped.
- - Macros.message(), Macros.error() and Macros.input() methods now accept
- an arbitriary java.awt.Component, instead of a View, as the component
- that will parent the dialog box. This will not break any macros since
- BeanShell resolves methods at run-time.
- - jEdit now makes an effort to display popup menus on-screen. If you
- want your plugin to do this, use the new GUIUtilities.showPopupMenu()
- method.
- - Editing and saving a mode file, or mode catalog file within jEdit will
- automatically reload that mode, or all edit modes
- - A few keyboard shortcuts added to file system browser:
- ~ - goes to home directory
- / - goes to file system roots list
- - - goes to current buffer's directory
- - Improved Abbreviations option pane
- - Improved Styles option pane
- - Improved search and replace:
- - It is now possible to do a HyperSearch in the current selection
- - When a match is clicked on in the HyperSearch results window, the
- match is now selected in the text area. Previously, the caret was
- only moved to the line containing the match.
- - Search in Selection radio button: when selected, the 'Replace All'
- button does the same thing as the 'Replace' button
- - If text is selected when the dialog box is being opened, this radio
- button is selected automatically, unless only one line of text is
- selected, in which case that text becomes the search string
- - Because of the above, the 'Find Selection' command is no longer
- necessary
- - 'All buffers' and 'Directory' radio buttons now pre-select the
- 'HyperSearch' check box (it is still possible to do a normal search
- over a set of buffers, by deselecting the check box)
- - When doing a case-insensitive search and replace, the substituted
- string's case is converted to the found match case, if the found
- match is all lower case, all upper case, or title case
- - gnu.regexp 1.1.4 now included
- - Multiple selections are now stored in the order they appear in the
- buffer, not the order they were added
- - New MiscUtilities.compareStrings() method compares two strings,
- treating numbers specially. So, for example, it will say that
- "my file 10" comes after "my file 2", and that "2.9" comes before
- "2.10"
- - MiscUtilities.StringCompare and StringICaseCompare classes use this
- method by default
- - The buffer-local noWordSep property now has a default value of "_".
- Previously, there was no default, but most modes specified a value of
- "_".
- - jEdit now backs up files it saves to the settings directory to
- $HOME/.jedit/settings-backups
- - Settings files are now saved to #filename#save#, then renamed to the
- actual file name. This prevents settings from being lost if jEdit
- crashes in the middle of saving them
- - PL/SQL mode updates (Steve Snider)
- + Bug Fixes
- - 'Recent Files' menu behaved in a strange manner if there were no
- recent files
- - Fixed a NullPointerException if the 'Narrow to Selection' command
- was invoked with no selection
- - JCheckBoxList typo prevented it from working in the XML plugin
- - On MacOS, the option key, which is reported as ALT, can be used to
- generate user input, but jEdit ignored Alt key strokes that were not
- bound to shortcuts.
- - More JDK 1.4 key event bug workarounds
- - History text field border wasn't repainted after the model was changed
- - If two shortcuts were assigned to a command, the second wasn't shown
- in the tool bar button tooltip
- - In syntax highlighting rule sets that enabled digit highlighting but
- didn't have SEQ rules for '-' and '.', these two characters would be
- highlighted with the digit syntax style, even if they were not part of
- a numeric expression.
- - Pressing Home three times put the caret at the end of the last visible
- line, not the start of the last visible line as intended
- - Entering a file name in the text field of the Open dialog box would
- open that file name relative to jEdit's current working directory, not
- the directory selected in the dialog box
- - 'Reload' command didn't preserve caret position very well if sections
- of the buffer were folded
- - When running on Java 2 version 1.3 (and possibly others), the default
- size of the help viewer was not set properly
- - Velocity mode had an incorrect file name glob
- - In the Search and Replace dialog box, 'Replace with:' and 'Auto wrap'
- had the same Alt-key mnemonic
- - Regular expression bug fixes:
- - Searching for a regular expression of $ or ^ by itself should work
- now
- - In regular expressions, ^ and $ not only matched newlines, but the
- start and end of the substring to search.
- - Fixed possible ArrayIndexOutOfBounds when searching for regular
- expressions that start with \<
- - The RESearchMatcher class converted \t to the tab character and \n
- to the newline character, even if the replace string was a BeanShell
- script, in which case a BeanShell execution error would occur.
- - In the help viewer, nodes in the tree were not selected as links were
- followed
- - On Windows, it is now possible to rename a file such that the new name
- only differs from the old in case
- - Sometimes, the most recently opened files would not be restored if the
- -background command line switch was used
- - Sometimes, Untitled buffers would not be replaced when another file
- was opened
- - Fixed slowdown when making changes to the last line of a buffer
- + API Changes
- - New methods in jEdit class for accessing properties:
- jEdit.getIntegerProperty(String name, int def);
- jEdit.setIntegerProperty(String name, int value);
- jEdit.getFontProperty(String name);
- jEdit.getFontProperty(String name, Font def);
- jEdit.setFontProperty(String name, Font value);
- jEdit.getColorProperty(String name);
- jEdit.getColorProperty(String name, Color def);
- jEdit.setColorProperty(String name, Color value);
- - VariableGridLayout is now used to lay out tool bars, instead of
- BoxLayout. This means it is no longer necessary to add a
- Box.createGlue() to the tool bar to prevent it from being centered.
- - Removed these APIs, which have been deprecated since jEdit 2.6:
- EditPlugin.createMenuItems(View,Vector,Vector) (override
- createMenuItems(Vector) instead)
- GUIUtilities.loadMenuItem(View,String) (use loadMenuItem(String)
- instead)
- GUIUtilities.loadToolBarIcon() (use loadIcon instead)
- GUIUtilities.showFileDialog() (use showVFSFileDialog() instead)
- - Removed these APIs, which have been deprecated since jEdit 3.0:
- jEdit.addAction()
- EditAction.actionPerformed()
- EditAction.isSelected(Component)
- EditAction.getView(EventObject)
- EditAction.getBuffer(EventObject)
- - CreateDockableWindow class deprecated. Write a dockables.xml file
- instead of listening for this message.
- - DockableWindow interface deprecated. No need to implement it any more.
- - EditBus named list stuff deprecated. It was only being used for
- dockables and ErrorList's error sources. To register dockables, use
- the new dockables.xml API. To register error sources, use the relevant
- APIs in the ErrorList plugin.
- - DockableWindowManager.getDockableWindow() method (that returns a
- DockableWindow instance) has been deprecated in favor of the new
- DockableWindowManager.getDockable() (which returns a JComponent
- instance)
- - TextAreaHighlight.init() method removed. If it exists, it will be
- called via reflection so that old plugins can continue to work, but
- new plugins should pass a text area instance to the constructor of the
- highlighter.
- - MiscUtilities.VersionCompare class and MiscUtilities.compareVersions()
- method removed. Use compareStrings() instead
- - Buffer.markTokens() now returns instance of Buffer.TokenList class
- - New BufferUpdate message type: FOLD_HANDLER_CHANGED
- - Buffer.insertString() deprecated; call Buffer.insert() instead
- - Buffer.remove(), Buffer.getText() and Buffer.createPosition() no longer
- throw BadLocationExceptions
- - Buffer.getDefaultRootElement() deprecated; call
- Buffer.getLineStartOffset(), Buffer.getLineEndOffset(),
- Buffer.getLineLength() and Buffer.getLineOfOffset() instead