/jEdit/tags/jedit-4-2-pre12/doc/CHANGES.txt
# · Plain Text · 1942 lines · 1291 code · 651 blank · 0 comment · 0 complexity · 34b76ca7537b513632d1f000bad9096a MD5 · raw file
Large files are truncated click here to view the full file
- JEDIT 4.2 VERSION HISTORY
- {{{ Version 4.2pre12
- Thanks to Lionel Fiol, Nicholas O'Leary, Ollie Rutherfurd and
- Thomas Alspaugh for contributing to this release.
- {{{ Miscellaneous Changes
- - The Buffer Options and Global Options->Editing panes no longer allow
- setting the wrap mode to 'soft' with a wrap margin of zero. Previously
- this was allowed, but did nothing since the feature was removed in
- 4.2.
- - DELETE key works with the tall caret now.
- - Macros in the user macros directory now override macros in the system
- macro directory.
- - Added 'Next Dirty Buffer' and 'Insert Selection' macros
- (Ollie Rutherfurd).
- - Pressing A+DOWN in a history text field now shows the field's popup
- menu (Joerg Spieler).
- - Added "Mode Switcher" macro (Nicholas O'Leary).
- }}}
- {{{ Syntax Highlighting
- - Updated BibTeX and LaTeX syntax highlighting (Thomas Alspaugh).
- - PHP mode now recognizes <script language="PHP">...</script>.
- - Updated Omnimark syntax highlighting (Lionel Fiol).
- - Added RTF syntax highlighting (Lionel Fiol).
- }}}
- {{{ Bug Fixes
- - Fixed a possible deadlock on startup when loading the SQL plugin. In
- fact this would happen with any plugin that attempted to load icons
- from its class initializer.
- - Fixed NullPointerException when unloading a plugin which has at least
- one floating window that is not docked.
- - Fixed problems immediately after changing the font size due to a
- missing recalculateLastPhysicalLine() call.
- - Fixed NullPointerException in PluginJAR on startup if settings
- directory can not be written to.
- - File->Save All would ask for confirmation even if "Confirm Save All
- Buffers" was switched off.
- - Fixed off-by-one error in Edit->Word Count if the selection ended with
- whitespace.
- - Text area's horizontal scroll did not update when the text area was
- resized.
- - jEdit.getActiveView() would return null if the current view was
- closed, and another view was not focused. This would break the
- edit server if -reuseview was specified.
- - Fixed NullPointerException from syntax highlighting code when buffer
- switching APIs were called in a certain sequence.
- - Fixed exception when clicking in one-line-high text area.
- - Fixed problems with rectangular selections when changes were being
- made before the selection in the buffer.
- - Disabling the status bar in the Status Bar option pane did not disable
- the "Show clock" option.
- - Scrolling with the keyboard did not update the horizontal scroll bar.
- - Control-clicking in a read-only buffer would beep, even if the click
- location was not beyond the end of a line.
- - Fix possible deadlock when calling VFSManager.waitForRequests() from
- an EditBus message handler for BufferUpdate.CREATED or
- EditPaneUpdate.BUFFER_CHANGED.
- - The new PropertyManager in pre10 broke handling of site properties;
- they would be overriden by plugin properties, which is not intended
- behavior.
- - QuickNotepad was not saving files with the correct encoding.
- - Filename completion on backspace was not disabled in the "Save As"
- dialog box, as intended.
- - Minor fix to VHDL syntax highlighting.
- - Kill ring was not being loaded properly; the text entries were loaded
- but the count was never incremented, so the "Paste Deleted" dialog
- would always be blank after a jEdit restart.
- - Fixed a possible deadlock when unloading the ProjectViewer plugin.
- - Workaround for A+PAGE_UP/PAGE_DOWN inserting garbage in the text area
- on Windows.
- - Fix ClassCastException when changing edit mode in Buffer Options
- dialog box.
- - A zero-length file did not open with the default line separator, but
- rather the Unix line separator.
- - jEdit did not start if the font size was set to zero.
- - Changing the font size did not update the font in open activity log
- windows.
- }}}
- }}}
- {{{ Version 4.2pre11
- This release fixes a show-stopper bug in pre10. The JAR file included in
- the installer was not completely up-to-date, and it had a property file
- lossage bug.
- Note that if you compiled from source, you will not see this problem.
- }}}
- {{{ Version 4.2pre10
- Thanks to Barry Carr, Brad Mace, Ken Turner, Nahuel Foronda,
- Ollie Rutherfurd, Trevor Harmon and Thomas Galvin for contributing to
- this release.
- {{{ Miscellaneous
- - Added "Create Constructor" macro, updated "Make Get and Set Methods"
- and "Get Class Name" macros (Thomas Galvin).
- - It is now possible to customize the metal look and feel fonts under
- JDK 1.5.
- - Page Up/Page Down restored to jEdit 4.1 behavior: when they are
- invoked at the beginning/end of the buffer, the caret is moved to
- the beginning/end, instead of staying at its current position.
- - File system browser now uses locale's short date format, not a
- hard-coded DD/MM/YYYY hh:mm (Ollie Rutherfurd).
- - Many macros updated, new Keywords_to_Uppercase.bsh,
- Emacs_Next_Line.bsh, Emacs_Previous_Line.bsh, Buffer_Switcher.bsh,
- Delete_Current.bsh, Glob_Close.bsh, Reverse_Lines.bsh,
- Single_Space_Buffer.bsh macros added (Ollie Rutherfurd).
- - Documentation updates.
- - Status bar clock now uses locale's short time format, instead of a
- hardcoded format.
- }}}
- {{{ Syntax Highlighting
- - Updated Pascal syntax highlighting (Barry Carr).
- - Updated ActionScript syntax highlighting (Nahuel Foronda).
- - Updated SDL/PR syntax highlighting (Ken Turner).
- - Added CVS and Subversion commit info syntax highlighting
- (Ollie Rutherfurd).
- - Added S# syntax highlighting (Barry Carr).
- }}}
- {{{ Bug Fixes
- - Fixed another NullPointerException in the file system browser when
- using VFS's that do not set the VFS.DirectoryEntry.symlinkPath field.
- - Actually fix the MacOS plugin for the latest MRJ update.
- - Fix status bar problem with GTK look and feel if memory indicator is
- enabled.
- - Fixed exception with auto indent (Brad Mace).
- - jEdit didn't compile with Sun's JDK 1.5 beta (Trevor Harmon).
- - "Find Next" didn't work with directory searches where the paths
- contained symbolic links.
- - Fixed highlighting of verbatim environments in LaTeX files.
- - Fixed ArrayIndexOutOfBoundsException when invoking "Expand Fold"
- outside of a narrowed range.
- - Fixed problem where any dialogs boxes shown by the search and replace
- code would force the search and replace dialog to be shown on OS X.
- - Fixed a performance regression since 4.2pre7 on MacOS X.
- - More deep indent fixes (Brad Mace).
- - The JARClassLoader's loadClass() method was not synchronized -- this
- problem has been there for ages!
- - Fixed backspace key in file name field of file dialogs on Java 1.5.
- - Fixed exception when control-clicking beyond the end of a line in a
- read-only buffer.
- - Fixed key binding conflict on OS X; command-drag would both activate
- rectangular selection and quick copy. This has been resolved and now
- quick copy is activated with an option-drag.
- - The order of the elements in the recent file list was being reversed
- each time jEdit was restarted if 'sort recent files' was switched off.
- - PluginJAR.generateCache() didn't correctly handle the case where a
- plugin JAR file had an actions.xml but no core class.
- - Unloading a plugin did not remove the buttons for its docked windows.
- - The "Rescan Macros" command did not update the actions list in the
- action bar.
- }}}
- {{{ API Changes
- - Added "optional dependencies". An optional dependency looks like this:
- plugin.MyPlugin.depend.0=optional plugin AnotherPlugin 1.3.1
- On startup, optional dependency are ignored; if AnotherPlugin does not
- exist, MyPlugin will still load. However, if AnotherPlugin is unloaded
- while jEdit is running, all plugins that depend on it, even ones with
- optional dependencies, will be reloaded.
- If your plugin does a runtime check for the existence of another
- plugin, and uses its services if it exists, but can otherwise
- function fine, then you *MUST* add an optional dependency on that
- plugin, otherwise reloading plugins will leave stale classes in the
- active class loader.
- - jEdit.getProperties() now returns a new collection, not the internal
- insance.
- }}}
- }}}
- {{{ Version 4.2pre9
- Thanks to Brad Mace, David Hardin, Matthew J. Price, Ollie Rutherfurd,
- Patrick Tingen, Thomas Galvin and Wiktor Adamski for contributing to
- this release.
- {{{ Miscellaneous
- - Includes new "Create Get/Set Methods" macro (Thomas Galvin).
- - Minor improvements to "Deep Indent" feature (Brad Mace).
- - "Reload All Buffers" command now only asks for confirmation if there
- are buffers with unsaved changes (Ollie Rutherfurd).
- }}}
- {{{ Syntax Highlighting
- - Updated Visual FoxPro syntax highlighting (Matthew J. Price).
- - Updated Lisp syntax highlighting (David Hardin).
- - Updated Progress syntax highlighting (Patrick Tingen)
- }}}
- {{{ Bug Fixes
- - Horizontal scroll bar was not updated sometimes.
- - The code that determines if a selection is being dragged is now much
- more accurate; for example, with rectangular selections is only
- registers a drag if the mouse is actually within the rectangular
- region, not just between the start and end locations in the buffer.
- - jEdit did not compile with Java 1.3.
- - Clicking "Select All" in the "Files Changed on Disk" dialog box did
- not enable the Reload button (Ollie Rutherfurd).
- - startup.bsh file was not included in installer bundle.
- - Fixed a performance problem with rollover buttons.
- - Pressing a shortcut that reads the next character from the keyboard
- while a control other than the text area is focused will now shift
- focus to the text area, and back again to the original control when
- the key is pressed. This allows you to use commands like "Go to
- marker" from the search bar, and so on.
- - Collapsing a folder node in the file system browser that is
- immediately followed by an expanded folder node would remove all
- columns from the view.
- - This change was advertised in the pre8 change log but didn't actually
- make it in:
- - Fixed possible deadlock in VFSFileChooserDialog when changing the
- cursor.
- - Hard wrap would wrap one word too early when inserting beyond the wrap
- margin.
- - Fixed exception when tab size was set to 0.
- - Fixed caret being offset too far to the right when dropping text in
- the text area, due to the gutter's width not being taken into account
- (Wiktor Adamski).
- - Dismissing the buffer switcher popup now sends focus back to the text
- area.
- - Fix layout problem with tool bars at the bottom of the view.
- - Fix layout problem with tool bar obscuring the right docking area.
- - Docking area sizes would be determined before the button sizes were
- known, so it was possible to resize a docking area beyond the edge of
- the view.
- - ChunkCache.getScreenLineOfOffset() didn't return the correct value -1
- if the given offset was before the first visible line.
- - "Confirm 'Save All Buffers' command" option didn't work.
- - jEdit would throw an exception on startup if the GTK look and feel was
- in use.
- - The MacOS plugin didn't work with the latest MRJ release.
- - Commands in the right-click menu of the parent directories list
- operated on the files currently selected in the file listing table.
- - Fixed NullPointerException in GUIUtilities.getComponentParent().
- }}}
- {{{ API Changes
- - BufferUpdate.SAVING is now sent before the IO flag is set to true.
- }}}
- }}}
- {{{ Version 4.2pre8
- Thanks to David Moss, Justin Dieters, Kris Kopicki, Ollie Rutherfurd,
- Philipp Janda, and Scott Allen for contributing to this release.
- {{{ Miscellaneous
- - New splash screen (Kris Kopicki).
- - Clicking "Reload" in the "Files Changed on Disk" dialog box now
- selects the next buffer. This improves usability.
- - Added Alt-key mnemonics to "Files Changed" dialog box
- (Ollie Rutherfurd).
- - Alternative caret movement shortcuts (A+a,i,j,k,l,q,x,z) now work
- together with Shift to extend the selection.
- - "Using jEdit" section of the jEdit user's guide is now mostly up to
- date for jEdit 4.2.
- - Fixed various mistakes in the documentation (Justin Dieters).
- }}}
- {{{ Scripting
- - BeanShell 2.0b1 imported. It has the following improvements over the
- previously-bundled release (1.3.1):
- - Full support for scripted classes that behave exactly the same as
- compiled classes.
- - Java 1.5-style static imports (this does not require Java 1.5). For
- example:
- static import java.lang.Math.*;
- sqrt(4.0);
- - Instance object imports (mix-ins) with the importObject() command.
- For example:
- importObject( new HashMap() );
- put("foo", "bar");
- print( get("foo") ); // prints "bar"
- - The ASM bytecode generation library is now bundled with jEdit since it
- is required by BeanShell 2.0.
- }}}
- {{{ Syntax Highlighting
- - Lua syntax highlighting (Philipp Janda)
- - SMI-MIB syntax highlighting (Scott Allen).
- - Updated Lisp syntax highlighting (Ollie Rutherfurd).
- - Added Swig and PSP syntax highlighting (Ollie Rutherfurd).
- - Added Poplog-11 syntax highlighting (David Moss).
- - Java mode now highlights the "enum" keyword, and annotation types that
- were added in Java 1.5.
- - BeanShell mode is now loaded from java.xml since now that BeanShell
- 2.0 supports class declarations, the syntax is almost identical. The
- "beanshell" mode is still distinct from "java" mode though, to allow
- plugins to differentiate between the two file types.
- }}}
- {{{ Bug Fixes
- - Fixed NullPointerException in FileCellRenderer if a VFS.DirectoryEntry
- had a null symlinkPath (which should not be the case anyway).
- - Fixed the roots: VFS to return non-null symlinkPaths.
- - "Go to Last Visible Line" went one line too far if the last visible
- line was only partially visible.
- - "Remove" button in Tool Bar pane of the Global Options dialog box now
- selects the next item after removing the currently selected item.
- - Changing the view layout in the View pane of the Global Options dialog
- box did not take effect for currently opened views.
- - Fixed a few dockable window layout problems.
- - Fix for numeric keypad not working after switching virtual desktops
- with various keyboard sequences on Linux.
- - Fixed a performance regression -- the entire text area was being
- repainted on every edit.
- - apacheconf.xml in 4.2pre7 distribution was corrupted.
- - New files no longer appear in the perspective if the autosave task
- runs while the "Close Files" dialog box is showing.
- - Delete perspective.xml before saving it so that past versions don't
- accumulate on OpenVMS.
- - Fixed MiscUtilities.isAbsolutePath() on OpenVMS.
- - It was not possible to bind an action to S+SPACE.
- - Key event workaround code now uses the time when an event was fired,
- not when it was received. This should fix the problem with stray keys
- getting inserted into the text area when an action takes a long time
- to execute.
- - Fixed possible deadlock in VFSFileChooserDialog when changing the
- cursor.
- - 0-byte files are now opened with the default line separator, not the
- Unix line separator.
- - Fixed some minor inconsistencies in the behavior of the directory
- chooser dialog box.
- - On some Windows systems, the last few lines of each page would not
- be printed. This was due to a Java bug; the incorrect
- FontRenderContext was being returned. There is now a workaround for
- this bug.
- - BeanShell 2.0b1 fixes a problem with variable scoping in macros.
- - Added a workaround for a Java bug where switching between windows
- using A+TAB would focus the menu bar.
- - Removed debugging message from VFSBrowser class ("request already in
- progress").
- - The backspace key now functions correctly with a tall caret.
- - Making changes in a buffer before the start of a rectangular selection
- would cause exceptions to be thrown.
- }}}
- }}}
- {{{ Version 4.2pre7
- Thanks to Aaron Bell, Alessandro Falappa, Ben Williams, Chris Petersen,
- Kris Kopicki, Lee Turner, Ollie Rutherfurd, Mike Dillon, Randolf Mock,
- and Randy Hudson for contributing to this release.
- {{{ Miscellaneous
- - The list of modes in various dialog boxes is now sorted (this does not
- affect the order that buffer names are matched against modes).
- - Bundled some macros from various sources (Ollie Rutherfurd).
- - The plugin manager no longer lists the JDK's "tools.jar" if it is
- loaded.
- - The "Search in Directory" command now always selects the most recently
- searched in directory. To search in the current directory with the
- filter based on the current buffer's file name, click the
- "Synchronize" button.
- - Updated "Preview Javadoc of Current Buffer" macro (Tom Gutwin).
- - Added option to file system browser's Commands->Encoding menu to
- disable encoding auto-detection.
- - Added support for UTF-8Y encoding, which is like UTF-8 except there
- is a three-byte signature (0xEFBBBF) at the beginning of the file.
- See http://oss.software.ibm.com/icu/docs/papers/forms_of_unicode/#t2.
- UTF-8Y files are automatically detected, just like UTF-16.
- - Removed File->Insert File command. As before, you can still invoke
- File->Open and select "Insert" from a file's right-click menu in the
- file system browser.
- - Added "Display Actions" macro (Lee Turner).
- - Wrote "What's new in jEdit 4.2" document.
- }}}
- {{{ Syntax Highlighting
- - Added MoinMoin syntax highlighting (Ollie Rutherfurd).
- - Added Relax NG compact syntax highlighting (Randy Hudson).
- - Minor fix to Perl heredoc syntax highlighting (Chris Petersen).
- - Updated ADPL syntax highlighting (Randolf Mock)
- - Added Renderman-RIB syntax highlighting (Alessandro Falappa).
- - Added PowerDynamo syntax highlighting (Ben Williams).
- - Added WebSphere MQ scripting syntax highlighting (Aaron Bell).
- - Added squid.conf syntax highlighting (Kris Kopicki).
- }}}
- {{{ Platform Specific
- - MacOS plugin now supports services (Kris Kopicki).
- }}}
- {{{ Bug Fixes
- - Fixed NullPointerException on startup which prevented jEdit from
- loading if a corrupted JAR file was present in one of the jars
- directories.
- - Dropping a file onto the text area did not work if the text area was
- read-only.
- - On Windows, MiscUtilities.constructPath() would fail if the parent
- path was a URL and the child path started with a \.
- - On Windows, MiscUtilities.constructPath() would return a path with a
- double backslash if the parent used / as a separator, and ended with a
- /.
- - UTF16 files with a byte order mark were not being detected due to a
- regression in pre6.
- - The history code now tries very hard not to write a malformed
- ~/.jedit/history file.
- - Fixed a slowdown of 5-7 seconds on startup in some cases that results
- from calling GraphicsDevice.getConfigurations().
- - The list of words in the "Complete Word" window was not sorted.
- - Fixed a race condition where the text area would throw a
- NullPointerException if EditPane.setBuffer() was called twice in a row
- with buffers that were not yet loaded.
- - Loading and unloading plugins that added menu items to the file system
- browser did not update the file system browser's "Plugins" menu.
- - History lists were not being saved at all unless the history file
- existed in the first place!
- - The "Shortcuts" option pane will no longer refuse to display with
- various malformed plugins.
- - An entry for inform.xml was missing from the mode catalog file.
- - Removing from the before the first visible line to inside the visible
- region threw an exception.
- - Fixed NullPointerException when pressing PageUp/PageDown inside a
- collapsed fold.
- - Sometimes, multiple line insertions did not update the screen line
- count of newly inserted lines. This would result in the scroll bar
- value being incorrect until you went to the end of the buffer and back
- again.
- - Using the TextTools plugin's "Transpose Lines" command in the first
- line of a collapsed fold would cause the folding state to be
- incorrectly updated, resulting in exceptions and an unusable text
- area.
- - When performing a text removal that would put the first visible line
- inside an invisible region, the chunk cache would be updated
- prematurely so the invisible line would be visible, and trying to
- move the caret to it would throw exceptions.
- - GZipped files were not being loaded correctly.
- - Opening an XML file that specified an invalid encoding name in the
- <?xml?> processing instruction would throw an exception. Now, XML
- files that specify an invalid encoding are opened with the default
- encoding.
- - Changed default shortcut of "Find Previous" from C+h to C+e g since on
- Mac OS X, C+h is always captured by the OS.
- - Changing the wrap mode didn't invalidate screen line counts, this
- could result in scrolling getting messed up.
- - Fixed NullPointerException when right-clicking on a drive root in the
- file system browser on Windows.
- - Fixed floppy drive access when selecting a floppy drive in the drives
- list on Windows.
- - Fixed a problem on some Windows versions where going to the drives
- list would display an error message from the OS.
- - A display manager that is not associated with a visible buffer no
- longer tries to maintain state; instead everything is recalculated
- when it becomes visible. This fixes a whole class of bugs that would
- manifest usually as incorrect scrolling behavior after switching
- buffers.
- - The Utilities->Action Bar command would only work once.
- - Scrolling would jump if electric scrolling was off when moving the
- caret past the first or last visible line, if they were only partially
- visible due to soft wrapping.
- - Fixed scrolling inconsistencies after collapsing a fold with soft wrap
- switched on.
- }}}
- {{{ API Changes
- - MiscUtilities.getFileExtension() now works with path names too.
- - Removed BufferListener.wrapModeChanged() method.
- }}}
- }}}
- {{{ Version 4.2pre6
- Thanks to Magnus Henriksson, Mirco Bova, Ollie Rutherfurd, and
- Stephen Bartlett for contributing to this release.
- {{{ Syntax Highlighting
- - Added Apache httpd.conf syntax highlighting (Ollie Rutherfurd).
- - Improved Scheme syntax highlighting (Stephen Bartlett).
- - Improved MS-DOS batch file syntax highlighting (Mirco Bova).
- - Added MCS51 (8051) microcontroller assembly syntax highlighting
- (Mirco Bova).
- - Updated XSLT syntax highlighting (Magnus Henriksson).
- }}}
- {{{ Miscellaneous
- - Pressing TAB with a rectangular selection now inserts a tab at the
- appropriate column, instead of shifting indent to the right.
- - Added Up/Down arrows to the file system browser's colors option pane.
- This lets you change the order that file names are matched against the
- patterns in the list.
- - Collapsed/expanded arrow icons in file system browser should now look
- good with a dark background as well (Kris Kopicki).
- - The option for what to do when files change on disk in the General
- pane of the Utilities->Global Options dialog box is now tri-state:
- - Do nothing
- - Prompt
- - Automatically reload
- The first and last options correspond to the previous setting in
- 4.2pre5. The second option is similar to the behavior in jEdit 4.1,
- except all changed buffers are listed in one dialog box.
- - Edit->Complete Word now completes words in all visible buffers (ie,
- showing in at least one edit pane). So as a poor man's CodeAid, you
- can open a text file listing Java classes and methods in a zero-height
- split.
- - The plugin manager now has better handling of loading and unloading
- plugins with dependencies.
- - jEdit now attempts to auto-detect the encoding of XML files by looking
- for an <?xml ... encoding="..." ?> processing instruction on the first
- line of the file. Note that if this processing instruction is present,
- an encoding selected in the File->Open dialog box is ignored.
- - jEdit will now refuse to load a plugin if some of the JAR files listed
- in its 'jars' property are missing.
- - Added a few macros to the base distribution (Ollie Rutherfurd).
- }}}
- {{{ Bug Fixes
- - Fixed problems with structure matching when soft wrap is on, if the
- structure spans more than one screen line (for example, this can
- happen with the tag matcher in the XML plugin).
- - If 'Complete Word' was bound to TAB, pressing TAB would show the popup
- and immediately hide it.
- - File drag and drop actually works now (so you should now remove the
- DragAndDrop plugin. Having it installed causes all dropped text to be
- copied, instead of moved.)
- - Fixed a problem highlighting C preprocessor directives containing <.
- - Batch mode didn't recognize @rem as a comment.
- - The multiple results toggle in the HyperSearch results window was not
- being saved.
- - International keys should once again work on JVMs that send AltGR
- sequences as Control+Alt (which is completely broken).
- - Buffer.getPriorNonEmptyLine() did not access segments properly. This
- caused obscure problems with auto-indent.
- - Fixed more problems with symbolic link handling in the file system
- browser.
- - Fixed long-standing race condition in file system browser that could
- prevent a directory listing from being updated after a file was
- created, removed or renamed.
- - Changes made in the Docking option pane only took effect after a
- restart.
- - Fixed minor problem with digit handling in the Complete Word popup.
- - Fixed problem with repeating user input in the action bar.
- - Made it so that site properties are loaded just before user
- properties. This allows the look and feel to be changed via the site
- properties.
- - Fixed a problem with Replace All over rectangular selections where
- only the first occurrence would be replaced.
- - If a duplicate copy of a plugin was installed, opening the Shortcuts
- option pane could throw an exception.
- - The Plugin Options dialog box can still be opened if initialization of
- an option pane fails.
- - The key event workaround would ignore a KEY_TYPED event with the AltGR
- modifier that followed a KEY_PRESSED with a keyCode of \0. This is
- incorrect, and broke international key handling.
- - Changing the buffer sorting options, or having untitled files would
- would cause the wrong buffers to be restored on startup.
- - Fixed a problem with inserting text at the beginning of a fold line.
- - The behaviour of shift-clicking inside an existing selection did not
- work in 4.2pre5.
- - Selecting the "Install" or "Update" tab in the plugin manager no
- longer shows a modal dialog, since on some systems this would cause a
- beep.
- - After opening a new file, the scroll bars would still reflect the
- previous buffer's state while the new file was being loaded.
- - If a Replace All failed (for example, because the regular expression
- was invalid) the wait cursor would linger in the search and replace
- dialog box.
- - If a buffer listed in the 'files on changed' dialog box was closed,
- clicking it in the list would cause problems.
- - When editing a buffer in more than one text area, changing the last
- token of a line (for example, by inserting the start of a comment on
- that line) would not update subsequent lines in some cases.
- }}}
- }}}
- {{{ Version 4.2pre5
- Thanks to Ollie Rutherfurd, Peter Lundqvist and Silas Smith for
- contributing to this release.
- {{{ Syntax Highlighting
- - Updated Icon syntax highlighting (Silas Smith).
- - Updated Pike syntax highlighting (Peter Lundqvist).
- - The "if" in #include <net/if.h> is no longer highlighted in C and C++
- modes.
- - SCRIPT tags in HTML files no longer recognize <?php ... ?>.
- }}}
- {{{ Miscellaneous Changes
- - Drag and drop in the text area. You can disable this in the Mouse pane
- of the Global Options dialog box. The functionality of the DragAndDrop
- plugin (handling files dropped from your operating system's file
- manager) has been incorporated too.
- - Files that don't exist on disk are no longer saved in the perspective
- (Ollie Rutherfurd).
- - The end of a fold is now indicated in the gutter.
- - Added "Plugin Options" button to plugin manager.
- - Pressing a non-alphanumeric character with the 'Complete Word' popup
- showing now inserts the currently selected entry first, instead of
- just closing the popup and then inserting the entered character.
- - If there are several search results in one line, clicking the line in
- the HyperSearch Results window now selects all occurrences, not just
- the first one.
- - If regular expressions are on, the search bar now shows an error
- message instead of silently failing if you attempt a reverse search
- with S+ENTER (reverse search with regular expressions is not
- supported).
- - Added an option for disabling the confirmation dialog box shown by the
- "Save All Buffers" command.
- - When running on Java 2 version 1.4, jEdit now uses NIO APIs to obtain
- a list of supported file encodings. On Java 2 version 1.3, the same
- hard-coded list of encodings is offered as before.
- - The Docking option pane has been reintroduced since a number of people
- preferred the old docking style (the new direct manipulation still
- works of course).
- }}}
- {{{ Bug Fixes
- - Fixed international keys on MacOS X.
- - "Multiple results" button in the HyperSearch Results window did not
- work correctly.
- - Line number shown in status bar when matching brackets was off by one.
- - Fixed some usability issues with the "Search in selection" setting in
- the Find dialog box.
- - Directory search settings were being reset when a search flag was
- changed.
- - Fixed handling of space bar which could result in extra spaces being
- inserted when using dead keys.
- - Fixed NullPointerException sometimes thrown when scrolling to the line
- after the last visible line with electric scrolling switched off.
- - Fixed problems such as ArrayIndexOutOfBoundsExceptions or the
- beginning of the buffer becoming inaccessible when expanding the last
- fold in a buffer.
- - Pressing ENTER at the end of a collapsed fold line now properly
- expands the fold.
- - Setting indentOpenBrackets and indentCloseBrackets to ( and ) didn't
- work, this broke Lisp auto indent.
- - When text editing moves the caret out of the visible region, jEdit
- only scrolls the text area if its active, so that editing with a split
- view does not scroll the inactive text area's caret into the visible
- region. However the logic for handling this case in jEdit 4.2 was
- flawed and even selecting a command from a menu would not cause
- scrolling.
- - "Searching..." message in HyperSearch window did not go away if the
- file set contained no files.
- - jEdit will no longer fail to start if the user properties file could
- not be loaded.
- - Fixed a few cosmetic bugs in the Global Options dialog box.
- - In some cases changing between text and BeanShell replace mode would
- not take effect.
- - Clicking "Replace and Find" or "Replace All" in Search dialog will now
- beep if no search string is entered, instead of using the last search
- string.
- - Text insertion while overwrite mode is on is now recorded correctly in
- macros.
- - Collapsing or expading nodes in the file system browser would deselect
- the node. This was a usability problem since pressing LEFT or RIGHT
- should not deselect anything.
- - The labels of -toggle and -float actions for dockables were not being
- set correctly.
- - Triple clicking to select a line did not place the line in the %
- register.
- - Various combinations of insertions and removes could mess up floating
- positions.
- - "Run Temporary Macro" no longer runs the temporary macro file from
- disk if the buffer is not open.
- - Inserting text at the end of the buffer did not update the vertical
- scroll bar in other text areas viewing the same buffer.
- - Fixed an exception thrown when narrowing to a range where the first or
- last line was the first or last line of the buffer.
- - Various combinations of insertions and removes could mess up the fold
- visibility map.
- - The up/down arrow keys, delete line, expand/collapse fold and a few
- other commands might not have put the caret in the right place if
- horizontal scrolling was involved.
- - AElred (the XML parser used by jEdit) would bomb if an XML element
- contained more than twice the text of the current I/O buffer size.
- When it ran out of the room, the I/O buffer was always doubled even if
- the text to be inserted was more than this length.
- - Restored the jEdit 4.1 behavior of consuming key events that are bound
- to an action. So now you can bind A+f to a command, and pressing A+f
- will execute the command without popping up the File menu.
- - The text area's screen line cache was not invalidated on buffer
- changes. This caused rare and obscure problems like bracket matching
- and the caret showing up in the wrong place.
- - Incorporated BeanShell 1.3final, which fixes a bug with static field
- access.
- - _REGEXP syntax rules that matched strings containing whitespace did
- not display in some circumstances.
- - The file system browser would not refresh, and edit modes would not be
- reloaded, if the paths in question contained symbolic links.
- - "Join Lines" no longer prints an exception if the buffer is read only.
- - Fixed NullPointerException being thrown when clicking tool bar buttons
- in a file dialog box with no associated view.
- - Fixed NullPointerException when pressing RIGHT at the end of a line
- with rectangular selection mode on.
- - The "Save As" dialog box no longer completes file names on the fly.
- Press TAB to complete file names. This was done since previously it
- was impossible to save to a file named "jjj.sss" if there was a file
- "jjj.sss.xxx" already in the destination directory.
- }}}
- {{{ API Additions
- - Icon theme support. Pass a URL to GUIUtilities.setIconPath() and all
- icons will be loaded from that URL prepended to the icon name.
- - Added BeanShell.runScript(View view, String path, Reader in,
- NameSpace namespace) method. Also added a corresponding _runScript()
- method.
- }}}
- {{{ API Changes
- - Within an event listener, Buffer.isTransactionInProgress() always
- returns true, and transactionComplete() is now always called on each
- event listener after every buffer change. As far as I know, no plugins
- use the transaction API so this should not affect anyone.
- }}}
- }}}
- {{{ Version 4.2pre4
- Thanks to Chris Morris, Marcelo Vanzin, Ryan Fowler and Ryan Grove for
- contributing to this release.
- {{{ Syntax Highlighting
- - Updated NSIS2 syntax highlighting (Ryan Grove).
- - Modes from the user catalog file are checked first for a matching
- first line or file name glob (Ryan Fowler).
- - Updated Ruby syntax highlighting (Chris Morris).
- - Updated Pike syntax highlighting (Peter Lundqvist).
- }}}
- {{{ Scripting
- - BeanShell 1.3b2 is now included. Improvements since 1.3a1 (which was
- included with jEdit 4.2pre3) include:
- - Properties style auto-allocation of variables.
- // foo is initially undefined
- foo.bar.gee = 42;
- print( foo.bar.gee ); // 42
- - Scripted class support (with class keyword). Limitations:
- - Scripted classes may only extend other scripted classes
- - implement clauses are currently ignored
- - All Scripted classes appear as type bsh.This - they are
- effectively the same type of object.
- - The bsh.system object which is shared across Interpreter instances
- has been renamed "bsh.shared". For backwards compatability it is
- still referenced as bsh.system as well.
- - All scripted objects now implement the standard object protocol of
- toString(), hashcode() and equals().
- - Various bug fixes and optimizations.
- - Actions and dockables are now invoked in their own temporary
- namespace. This prevents memory leaks in code like this:
- antfarm = wm.getDockable("antfarm");
- antfarm.foo();
- // reference to 'antfarm' remains in global namespace, possibly
- // after the dockable is closed
- }}}
- {{{ Miscellaneous
- - Removed the "synchronized scrolling" option which hasn't actually
- worked since 4.2pre1 or 4.2pre2. If you liked this feature, you can
- write a plugin that does the same thing pretty easily.
- - The kill ring is saved between editing sessions.
- - The Latest Version plugin now shows the latest stable and development
- version numbers, previously it only showed the latest development
- version.
- }}}
- {{{ Optimizations
- - Faster regular expression search and replace.
- }}}
- {{{ Bug Fixes
- - Changing the no modifier click action for the gutter didn't work.
- - The 'jedit' script was not being created on Unix.
- - Fixed AltGR key on certain JVMs that send it as Control+Alt.
- - Regular expression replace didn't work with certain regular
- expressions.
- - When deep indent is on, indentation of code like this is handled a bit
- better:
- if(foo
- bar)
- {
- However it is still not 100% correct.
- - Added an option for the "deep indent" setting to the Editing option
- pane.
- - "Save as" did not update the buffer map properly if buffer sorting was
- switched off, or if symbolic links were involved.
- - Heredocs in PHP are <<< not <<.
- - Position tree update code had several problems, and this caused hangs
- and various exceptions.
- - jEdit would do a two-stage save for settings files, but it would still
- delete the old file if the save failed, thus settings could be lost of
- the disk is almost full, etc. Now, files are only overwritten if the
- new settings are saved successfully.
- - Fixed possible NullPointerException in Shortcuts option pane when a
- newly-installed plugin contains dockables but no actions.
- - Using the Global Options dialog box or anything else that calls
- jEdit.propertiesChanged() no longer clears the kill ring.
- - Escape sequences in the replace string (\n, \t) didn't work properly.
- - When viewing the favorites: URL, the full path of the entries is now
- shown, just like in 4.1.
- - The Favorites menu in the file system browser was sorted by entry
- name, but full paths were listed, so it looked like there was no order
- to it at all.
- - Fixed bogus DIRTY_CHANGED messages sent when loading a buffer with
- persistent markers.
- - The numeric keypad didn't work on JDK 1.3.
- - Apparently OS/2 Java has a broken File.getCanonicalPath()
- implementation, so we don't call this method on that OS.
- - Reload command now works with Untitled files.
- - If a virtual file system threw an exception other than an IOException,
- the file system browser would refuse to perform further operations
- with an "I/O already in progress" message.
- - Fixed Perl syntax highlighting for variable names that began with
- s, m, q or tr followed by a non-alphanumeric character.
- }}}
- {{{ API Changes
- - SearchMatcher.nextMatch() returns an instance of SearchMatcher.Match
- instead of a two-element integer array.
- - Added jEdit.getPlugin(String name, boolean loadIfNecessary) method
- (Marcelo Vanzin).
- }}}
- }}}
- {{{ Version 4.2pre3
- Thanks to Brad Mace, Brant Langer Gurganus, Christoph Daniel Schulze,
- Jonathan Revusky, Ken Turner, Kris Kopicki and Ollie Rutherfurd for
- contributing to this release.
- {{{ Editing
- - The kill ring no longer shows duplicate entries, or entries that
- consist entirely of whitespace.
- - Added emacs-like "deep indent" which can be enabled using the
- deepIndent buffer-local property:
- fooBar(baz,
- moreParameters,
- ...); (Brad Mace)
- - Just like the Find Previous command, S+ENTER in the search bar now
- shows an error message if regular expression search is enabled.
- Previously it would just search forward.
- - The "Format Paragraph" command now shows an error message instead of
- just beeping if the wrap margin is not set.
- - The "Paste Previous" and "Paste From List" dialog boxes now show the
- selected item in a multiple-line text area (Ollie Rutherfurd).
- }}}
- {{{ Syntax Highlighting
- - Added LOTOS syntax highlighting (Ken Turner).
- - Added SDL/PL syntax highlighting (Ken Turner).
- - Added IMPORT element to RULES tag. All rules from the ruleset named
- by the required attribute DELEGATE are copied into this ruleset.
- - Improved Velocity syntax highlighting.
- - Added TPL syntax highlighting (Brant Langer Gurganus).
- - Added UnrealScript syntax highlighting (Christoph Daniel Schulze).
- - Updated FreeMaker syntax highlighting (Jonathan Revusky).
- - Updated Pyrex syntax highlighting (Ollie Rutherfurd).
- }}}
- {{{ User Interface
- - Activity Log now autoscrolls when dragging the mouse outside the log
- area bounds.
- - Docked window menu buttons should now look better on MacOS X.
- - When closing a buffer, the previous buffer is now selected, not the
- first buffer. The code that does this was actually there all along,
- but it never worked and I didn't notice (it would just go to the first
- buffer).
- - On Windows, entering X:\ or X:/ where X is a drive letter will
- automatically list that drive so that further paths can be completed.
- This is similar to how on Unix entering / opens the root directory.
- - Improved 'Choose Directory' dialog box.
- - A warning dialog box is now shown if nothing is selected in the text
- area and the "search in selection" setting is activated.
- }}}
- {{{ Plugin Manager
- - The plugin manager now lists JARs that do not contain a plugin core
- class.
- - A warning is shown when updating a plugin from a version using the old
- API to a version using the new API, advising the user to restart
- jEdit.
- - The plugin manager no longer removes an existing plugin if downloading
- of an update failed.
- }}}
- {{{ Optimizations
- - Fixed a performance regression from pre2. Opening large files with
- soft wrap off should now be as fast (or faster) than 4.1.
- - Fixed delays when exiting editor if help viewer and/or plugin manager
- windows were open.
- - jEdit.getBuffer() now uses a hashtable instead of a linear scan.
- - Optimized away some redundant code in the display manager, which
- should result in improved performance.
- - Search dialog should open a little bit faster. This fixes the issue
- where if you press C+f and type a search string really quickly,
- characters would be inserted in the text area.
- - Undo queue is now stored in a linked list, rather than an array. As
- offensive as it might sound, the array was being shifted along one
- position for each (non-compound) edit! Especially if the undo limit
- was set to a large value this could cause slowdowns.
- - The buffer no longer grabs a write lock when calculating a fold level
- or syntax tokens for a line. This should prevent the text area from
- stalling if the buffer is being saved in an I/O thread.
- - Fixed a performance regression from pre2. If all line contexts were
- valid, a subsequent request for a line's syntax tokens would
- invalidate all contexts from that line onwards. This did not happen if
- for example all but one context was valid.
- - Faster directory listing in the file system browser.
- - Fixed slowdown if activity log was docked and the "tail" option was on
- in Java 1.3.
- - Floating positions are now stored in a more efficient data structure
- allowing operations to be performed in logarithmic time. This improves
- performance with plugins that create a lot of positions, such as XML
- and anything using ErrorList.
- }}}
- {{{ Bug Fixes
- - Fixed NullPointerException when loading plugins if opened buffers
- contained an invalid 'folding' property.
- - Fixed NullPointerException when invoking Complete Word in an edit mode
- that did not define a keyword map.
- - Selecting 'Close' from a cloned dockable's popup menu closed the wrong
- window.
- - Plugin manager window did not have the same icon as all other jEdit
- windows.
- - "What's new in jEdit 4.2" document was missing from the download due
- to a packaging error.
- - "Highlight every n lines" color setting in Gutter option pane didn't
- work properly.
- - Plugin manager hardcoded the table foreground color to black, this
- could make the table unreadable if the text area background was dark
- and "use jEdit text area colors in all text controls" was on.
- - EOL_SPAN_REGEXP rules threw NullPointerExceptions.
- - Plugins that failed to load were not marked as such, and showed up as
- "Loaded" in the plugin manager.
- - Added a workaround for a MacOS X Java bug where renaming a file to
- contain a path to a non-existent directory would delete the file.
- - It is now possible to rename a file to another name that only differs
- in case on Windows.
- - If "Ignore Case" was on, searching for strings containing certain
- characters (such as Unicode 0x00df) did not work since
- String.toUpperCase() sometimes mangles the string in various ways.
- Processing the string with Character.toUpperCase() doesn't seem to do
- this.
- - The "Abbreviations" option pane now correctly handles expansions with
- duplicate abbreviations.
- - An undoable edit is no longer merged if there is a pending redo. This
- would cause the undo queue to become inconsistent.
- - Changed input modifier mapping on MacOS X.
- C+ is the Command key as before
- A+ is now the Control key
- M+ is no longer bound!
- A+ used to be the Option key however this caused problems such as
- special characters on international keyboards triggering jEdit
- shortcuts; for example, Option+' inserts # on an Italian keyboard, and
- jEdit would pick this up as A+QUOTE which is bound to "Scroll Page
- Up".
- - Fixed NullPointerException when clicking in text area in a soft
- wrapped line that was but off at the bottom.
- - Fixed NullPointerException when scrolling to a line that was longer
- than the visible area.
- - Added a workaround for a problem with the Toolkit class which is
- non-reentrant on the Solaris JDK. This could cause a segmentation
- fault on jEdit startup.
- - Fixed a problem in the text offset to screen line conversion. It
- usually manifested itself in the form of the "disappearing selection"
- bug; if only part of the first line was visible due to scrolling and a
- selection began in the part that was not visible, painting the
- selection would throw an exception which would result in the selection
- extension being removed from the text area.
- - Printing is no longer done in a background thread, and now blocks the
- UI, due to various thread-safety problems.
- - Printing a range of pages would always print starting from the first
- page.
- - jEdit didn't compile with Java 2 version 1.3.
- - Invalid delegates in syntax mode files could throw exceptions.
- - "Spaces to Tabs" was broken.
- - Added a workaround for the print spacing problem on some Java
- versions. Note that this results in much larger spool files. Enable in
- Utilities->Global Options->Printing.
- - Added a workaround for buggy/incomplete implementations of JDK 1.4
- printing API. Now you can force use of the JDK 1.3 API when running on
- 1.4. Enable in Utilities->Global Options->Printing.
- - Re-introduced jEdit 3.2.2-style Unix window geometry workarounds. If
- you saw problems like dialog boxes getting smaller each time they were
- opened, etc, let me know if this fixes them.
- - Fixed hang if a mode contains regular expression rules that match a
- zero-width string.
- - The jEditLauncher configuration is no longer updated if installing a
- new jEdit release over an old one with the jEditLauncher de-selected
- in the installer.
- - When searching for text, jEdit tries a little harder to make sure the
- search occurrence is visible if the text area needs to be scrolled
- horizontally.
- - When using TAB to move focus from the buffer switcher, or search bar,
- etc. it should eventually end up in the text area, instead of getting
- stuck.
- - Simplified key event workaround code. Let me know if you encouter any
- problems (such as garbage being inserted in the text area when certain
- keys are pressed, etc.)
- - File dialog's completion was case sensitive when the TAB key was
- pressed. This was inconsistent with all other completion behavior
- which was case insensitive.
- - File names that ended with a colon (:) were being treated like URLs
- even if there was no VFS named by the string before the colon. This
- made it impossible to open files named "foo:".
- - Docking areas can no longer be resized beyond visible bounds if the
- "alternate tool bar layout" setting is off.
- - Fixed a problem where the status bar would throw errors about negative
- array offsets if a buffer change resulted in the text area being
- scrolled.
- - Glob patterns of the form {!{a,b,c}} didn't work properly.
- - Browser actions were incorrectly written in the resource cache, so for
- example the FTP plugin's menu in the file system browser did not work.
- - The install directory setting of the plugin manager didn't work.
- - Refactored key dispatching code should make alternative keyboard
- layouts work better on MacOS X.
- - gnu.regexp has rather strange substitution behavior, which caused
- problems with some SPAN_REGEXP's.
- - Dialog box for confirming plugin removal now lists the JAR files to be
- removed in a scrolling list, this fixes the problem of the dialog
- getting too large in some cases.
- - Fix a minor UI layout problem with the style editor dialog box of the
- Syntax Highlighting option pane.
- - Fixed exception when reloading a buffer if a marker was set beyond the
- location where the buffer ends on disk.
- - Fixed problem with table columns in the file system browser resizing
- incorrectly when a node was collapsed.
- - Redoing a remove did not clear the buffer's modified flag if
- necessary.
- - Fixed status bar display for prefixes longer than three keys.
- - Pressing TAB in the action bar on JDK 1.3 would cause it to lose
- focus.
- - Glob patterns containing + caused exceptions to be thrown.
- - "Select Line Range" now respects the multiple selection setting.
- - When installing updates, dependencies are now correctly installed
- (Kris Kopicki).
- }}}
- {{{ API Changes
- - TokenHandler.handleToken() method now takes a Segment instance as
- the first parameter.
- - Direct construction of SearchDialog no longer possible due to internal
- changes. The SearchDialog.showSearchDialog() method that has been
- recommended since jEdit 4.0 still works.
- - Buffer.setReadOnly() can be used to make a buffer read only even if
- the file is writable on disk.
- - Added JEditTextArea.addTopComponent() method (Brad Mace).
- - Case-sensitivity is now determined on a per-filesystem basis, instead
- of always being on when running on Windows or MacOS X. To have yo…