/jEdit/tags/jedit-4-2-pre4/doc/CHANGES.txt
Plain Text | 1165 lines | 792 code | 373 blank | 0 comment | 0 complexity | 18821d9916a72246377dda1a8978b98f 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.2 VERSION HISTORY
- {{{ 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 your
- VFS be case-insensitive, define the CASE_INSENSITIVE_CAP.
- - Added generic structure matching API for presenting the user a
- consistent interface for bracket matching, XML tag matching, BEGIN/END
- matching, etc.
- Simply write an implementation of StructureMatcher and add it to the
- text area with JEditTextArea.addStructureMatcher().
- }}}
- }}}
- {{{ Version 4.2pre2
- Thanks to Carmine Lucarelli, Matt Albrecht, Ollie Rutherfurd and
- Sebastien Pierre for contributing to this release.
- {{{ Editing
- - "Complete Word" now inserts the longest common prefix if there is more
- than one possible completion (the popup is still displayed as well).
- - Added Ignore Case (C+e C+i) and Regular Expressions (C+e C+x) commands
- to Search menu for changing search bar settings from the keyboard.
- - Incremental Search Bar and HyperSearch Bar commands now always
- disregard the selection. Use Incremental Search for Word and
- HyperSearch for Word commands if you want to search for the selected
- text.
- - Made behavior of auto indent caused by "Insert Tab and Indent",
- "Insert Enter and Indent", and "Indent Selected Lines" commands is
- more consistent.
- - Register commands now list registers, and marker commands now list
- markers with shortcuts in the status bar.
- - Added Edit->More Clipboard->Paste Deleted (C+e C+y) command. Similar
- to Paste Previous, it lists recently deleted strings.
- - Quick copy now works between text areas.
- - Paste Previous dialog box now supports multiple selection.
- }}}
- {{{ File System Browser
- - The favorites list can contain files now.
- - Added a Utilities->Favorites menu.
- - The expansion triangles are now flush with the icon. Previously they
- were vertically aligned which was inconsistent with Swing JTrees.
- - Added "Copy Path Name" command to file system browser's right-click
- menu.
- }}}
- {{{ Syntax Highlighting
- - Updated Inform syntax highlighting (Matt Albrecht).
- - Added S+ syntax highlighting (Matt Albrecht).
- - Added Io syntax highlighting (Sebastien Pierre).
- - Added Pyrex syntax highlighting (Ollie Rutherfurd).
- - Added Erlang syntax highlighting (Ollie Rutherfurd).
- }}}
- {{{ User Interface
- - The Global Options dialog box has been rearranged a little. There are
- two new panes, Autosave & Backup, and View. The Loading & Saving pane
- has been removed.
- - "Copy" button in Activity Log window now copies entire log if nothing
- is selected.
- - Added "Remove All Nodes" button to HyperSearch Results window
- (Carmine Lucarelli).
- - Removed "Go to Text Area" (C+e C+e) action. "Scroll to Current Line"
- (C+e C+j) now sends focus to the text area, and also expands the
- current fold if the caret is not visible.
- - The block caret is now drawn as a hollow box. Previously it was drawn
- as a filled box using XOR paint mode, but the XOR paint mode caused
- problems on some Java versions and was slightly slower.
- - New gutter mouse behavior for brackets:
- C-click on a bracket scope selects the scope.
- A-click on a bracket scope narrows to the scope.
- These were changed to be consistent with the behavior when clicking on
- a fold.
- - Previously, jEdit would remember the caret position for the 50 most
- recent files, and the File->Recent Files menu would list the same
- number of entries as the history text field setting. Now, a single
- recent files setting in the General pane of the Global Options
- controls both.
- - A change makes the buffer history use a linked list instead of an
- array to store entries. However, since Java provides no way to iterate
- backwards over a linked list, this results in the recent file list
- being stored backward from how it was in previous versions. So when
- upgrading from 4.2pre1 or older, your oldest files will be at the top
- of the list.
- }}}
- {{{ Plugin Loader
- - The plugin manager now loads plugins immediately after they are
- installed if they are using the jEdit 4.2 plugin API, and unloads
- plugins when removing and updating. Note that a restart is still
- required after updating from a jEdit 4.1 version of a plugin to the
- 4.2 plugin, but future updates do not require a restart.
- - Added an option to Global Options->Plugin Manager to leave the
- downloaded ZIP archives in ~/.jedit/PluginManager.download.
- - If a plugin failed to load, its actions, dockables, etc are no longer
- visible from the UI.
- }}}
- {{{ Scripting Changes
- - BeanShell 1.3a1 included. This release features improved error
- reporting, code cleanups and minor bug fixes.
- - For some reason the search and replace code was hard-coded to auto
- wrap around if it was run from a macro. I'm not sure what the original
- rationale for this was, but it has been changed to always respect the
- auto wrap flag.
- - "Evaluate For Selected Lines" can now be recorded in a macro.
- }}}
- {{{ Optimizations
- - Fold visibility information is now stored in a more efficient manner.
- Folding should be faster and more robust. Also, the limit of 8 text
- areas editing the same buffer has been lifted.
- - Various minor display manager optimizations.
- }}}
- {{{ Bug Fixes
- - It was possible to open multiple plugin manager instances from the
- "Plugin Error" dialog box.
- - Fixed selection issue when right-clicking on a file system browser
- window.
- - The file system browser would report files larger than 1 megabyte as
- being an order of magnitude smaller, eg 13 kilobytes instead of 13
- megabytes.
- - Changing the folding mode to "none" did not work correctly.
- - Changing from a syntax highlighting mode to text mode did not
- invalidate line contexts.
- - The file system browser's "Open in" menu didn't work.
- - Toggle menu items did not show up as such when a plugin was
- constructed from the summary cache.
- - -nobackground command-line switch did not actually work.
- - Title bar "modified" indicator was not displayed for recovered
- autosave files.
- - jEdit never closed streams of XML files being read in. This bug has
- been there for ages, however its not too major since the stream
- objects would get garbage collected and closed eventually.
- - Fixed incorrect handling of buffer modification flag in undo code.
- - No longer print an exception if the clipboard contains a zero-length
- string.
- - The file system browser might not have been updated correctly after
- moving a file from one expanded branch to the root.
- - Right-clicks in the empty space below the file list should work now.
- - Fixed possible NullPointerException on MacOS X in the OperatingSystem
- class.
- - Various fixes for dynamic plugin loading.
- - Changing the plugin download mirror had no effect on an open plugin
- manager window.
- - Fixed popup menu positioning.
- - Fixed possible corruption of the undo queue due to a regression in
- pre1.
- - Fixed some problems with symbolic links.
- - Collapsing a directory in a file system browser threw an exception if
- it was the last item in the list.
- - Using C+e C+` shortcut to close dockables didn't work because the view
- would send focus to the text area after C+e was pressed. This was done
- to correctly handle shortcuts like C+e n n while a text field had
- focus (previously "nn" would be inserted in the field). Now, if the
- focus was sent to the text area as a result of a prefix, it is sent
- back to the original owner when the prefix is finished.
- - Fixed various file system browser completion problems.
- - PHP mode's inline script ruleset was missing a commentEnd property.
- - Plugins which provided a dockables.xml file but no actions.xml could
- not be invoked, since the action set was only added if the actions.xml
- file was present.
- - Disabled CS+click to narrow to a bracket scope since it didn't
- actually work.
- - DynamicMenuUpdate messages only worked for top-level menus.
- - TAB didn't work in the action bar if there was nothing entered (it is
- supposed to list all actions.)
- - Fixed obscure problem with work thread code where an AWT request added
- from another AWT request could be executed before I/O is complete.
- - Fixed repainting problem when removing text from the last line of a
- buffer with soft wrap on.
- - Selecting "Search in Directory" from the file system browser's
- Commands menu with a file selected was supposed to set the directory
- search filter to that file's extension, however this didn't work.
- - Fix a problem with "Indent Selected Lines" on text like the following:
- if(foo)
- bar();
- if(baz) {
- quux();
- }
- - Fixed possible exceptions thrown when the buffer is narrowed to a
- range, and with the caret outside this range.
- - Action bar's action list wasn't updated if plugins were added or
- removed at runtime.
- }}}
- {{{ API Additions
- - Added a new dynamic menu API, so that plugins using the 4.2 plugin API
- can provide dynamic menus. Simply write an implementation of
- org.gjt.sp.jedit.menu.DynamicMenuProvider
- - EditPlugin.start() is always called from the AWT thread now.
- - Added a method to bsh.NameSpace:
- addCommandPath(String path, Class clas)
- You can call this on BeanShell.getNameSpace(). BeanShell will search
- for resources named path + methodName + ".bsh" in the class loader of
- the given class when an undeclared method is invoked. Plugins can use
- this to provide additional scripting commands, the Console plugin uses
- this for example.
- - Added a new method to TextAreaExtension class:
- public void paintScreenLineRange(Graphics2D gfx, int firstLine,
- int lastLine, int[] physicalLines, int[] start, int[] end,
- int y, int lineHeight)
- This method paints a whole bunch of lines at once, instead of one at a
- time, so it should be more efficient for plugins like Background and
- ErrorList.
- See javadoc for parameter documentation.
- - Added long-missing DefaultInputHandler.removeKeyBinding() method.
- - Added AbstractOptionPane.addComponent(Component comp, int fill)
- method.
- - Virtual file systems can now show arbitriary columns in the file
- system browser.
- - Use the VFS constructor that accepts a String[] of extended
- attribute names. You can use the canned names (EA_TYPE, EA_STATUS,
- EA_SIZE, EA_MODIFIED) or add your own. If you add your own, you
- must also define properties "vfs.browser.<extended attribute name>".
- - Then, write a VFS.DirectoryEntry subclass that overrides
- getExtendedAttribute(). Return instances of this class in
- _getDirectoryEntry() and _listDirectory().
- }}}
- }}}
- {{{ Version 4.2pre1
- Thanks to Bill McMilleon, Kasper Graversen, Kris Kopicki,
- Oliver Rutherfurd, Rudi Widmann and Ryan Grove for contributing to this
- release.
- {{{ Editing
- - Quick copy now more consistent with usual mouse behavior:
- - Control-middle-clicking on a bracket will insert the contents of the
- bracketed block at the caret position.
- - Shift-middle-clicking at a point will insert text from the caret to
- the point at the caret position. Can be used to duplicate a line,
- for example.
- - Register contents are now saved across editing sessions in
- ~/.jedit/registers.xml.
- - Complete Word popup now has keyboard shortcuts (1 - 0) for inserting
- the first 10 elements in the list.
- - Entering a prefix while a JTextComponent has focus will move focus to
- the text area. This allows shortcuts like C+e n n to be used from the
- search bar and such without having to prefix them with C+e C+e first.
- - Control-Shift-click on a bracket scope in the gutter or a bracket in
- the text area narrows to that scope.
- - Previously setting the wrap margin to zero with soft wrap on would
- wrap to the width of the text area. This is no longer supported.
- - The text area now scrolls by screen lines, not by physical lines, when
- soft wrap is enabled. The previous behavior resulted in simpler code
- but was extremely counter-intuitive.
- - Right-clicking in the text area with no selection (or if multiple
- selection mode is enabled) moves the caret to the clicked line before
- displaying the popup menu (Rudi Widmann).
- - Control-clicking beyond the end of a line inserts the appropriate
- amount of white space and moves the caret there (Rudi Widmann).
- }}}
- {{{ Rectangular Selection
- - Edit->More Selection->Rectangular Selection (A+\) enables rectangular
- selection mode:
- - Dragging with the mouse or using keyboard selection commands creates
- rectangular selections.
- - A status bar indicator has been added for this mode.
- - Clicking beyond the end of the line inserts the appropriate amount
- of white space and moves the caret there (just like when Control is
- held down, see above).
- - Changed vertical paste behavior. Now if the rectangle we are inserting
- into has more lines than the pasted text, the pasted text cycles
- through the rectangle. Previously, it would be inserted at the top
- with the remaining lines blank. The new behavior is very convinient;
- for example, you can select a zero-width rectangle and paste "final"
- to mark a set of variables in Java source as being final.
- - Entering text while a zero-width rectangular selection is active now
- shifts the selection horizontally.
- }}}
- {{{ Syntax Highlighting
- - A new default color scheme.
- - Added a few more token types: COMMENT3, COMMENT4, LITERAL3, LITERAL4,
- KEYWORD4.
- - AT_LINE_START, AT_WORD_START and AT_WHITESPACE_END attributes can now
- be set independently for BEGIN and END tags of a SPAN.
- - The default background color of a token is now the background color of
- the current ruleset's default token type. It now only defaults to the
- text area background if the ruleset's default token type does not have
- a background color. This matters because for example if COMMENT2 has a
- background but MARKUP does not, HTML markup in Javadocs now has the
- same background as the rest of the comment.
- - Any groups matched by a SPAN_REGEXP's BEGIN sequence are substituted
- into any positional parameters in the END sequence. This allows
- read-ins to be properly handled in languages like Shell Script, PHP,
- and Perl.
- - Added NO_ESCAPE attribute to SPAN and SPAN_REGEXP rules. This allows
- C# literals (@"...") to be highlighted correctly.
- - Added JCL and SAS syntax highlighting (Bill McMilleon).
- - Improved C pre-processor syntax highlighting.
- - Updated NSIS2 syntax highlighting (Ryan Grove).
- - Parrot syntax highlighting (Oliver Rutherfurd).
- - Aspect-J syntax highlighting (Kasper Graversen).
- }}}
- {{{ Folding
- - Different syntax styles are used for collapsed fold lines with
- different fold levels. Fold levels 1, 2 and 3 have distinct styles,
- and all higher levels are assigned another style.
- - Alt-clicking on a fold triangle in the gutter narrows to that fold.
- }}}
- {{{ Action Bar
- - Utilities->Action Bar (shortcut C+ENTER) shows the action bar, for
- quickly invoking editor commands and changing settings from the
- keyboard.
- - Enter an action name (or a substring) to invoke that action.
- - Press TAB for a completion popup.
- - Enter a repeat count then invoke an action using any means to repeat
- that action.
- - Enter "buffer.<prop>=<value>" to set the buffer-local property
- <prop> to <value>; for example, "buffer.tabSize=4" changes the
- curent buffer's tab size to 4.
- - Enter "!buffer.<prop>=<value>" to set a buffer property on a global
- basis; for example, "!buffer.tabSize=4" changes the default tab size
- for all buffers to 4.
- - Buffer-local properties are documented in the user's guide.
- - Enter "<prop>=<value>" to set any other global property; for
- example, "view.showToolbar=false" hides the tool bar.
- - Note that global property names are undocumented, so this feature is
- primarily for plugin developers. You can get a list using the
- Misc->Properties->jEdit Properties macro.
- }}}
- {{{ File System Browser
- - The file system view now shows file attributes such as type, status,
- size and modification date.
- - Re-added "Filter in file dialogs is current buffer extension" option
- that used to be present in jEdit 4.0.
- - Added "Show menu bar" option.
- - Improved completion in file dialogs. Completion in the field is now
- case-insensitive, and the full path is not inserted into the field
- unless you press TAB.
- - Added option to make the default directory the working directory of
- the jEdit process.
- }}}
- {{{ User Interface
- - If regular expressions are enabled, Search->Find Previous now shows a
- dialog box message instead of silently searching forwards.
- - Added an option to Appearance option pane to control menu spillover
- (default is 20 items).
- - The title bar now indicates if the current buffer has been modified
- since the last save.
- - Moved plugin option panes to a new Plugins->Plugin Options dialog box.
- - Improved window docking.
- - Floating windows now have a bar across the top with a menu for
- docking the window.
- - Right-clicking on a docked window button shows a menu for undocking
- the window, opening a cloned instance, and moving it to another
- docking area.
- - Docking pane of Global Options dialog box removed because it is no
- longer necessary.
- - Added Utilities->Repeat Last Action command, bound to C+SPACE.
- - jEdit now remembers if more than one view was open, and if the view
- was split.
- }}}
- {{{ Miscellaneous
- - Symbolic links are no longer resolved in buffer path names. Opening
- two buffers both pointing to the same file on disk is still not
- allowed.
- - If buffers have changed on disk, instead of asking for each one, they
- are all listed in a single dialog box. Also, if the buffer is not
- dirty, it is reloaded automatically.
- }}}
- {{{ Command Line
- - Added a few new command line parameters, documented in jedit -usage:
- -gui
- -newplainview
- -newview
- -nobackground
- -plugins
- -quit
- -restore
- -reuseview
- -startupscripts
- -wait
- }}}
- {{{ Optimizations
- - New "deferred loading" plugin API. Plugins must be updated for this,
- however existing plugins continue to work (with no performance
- improvement). jEdit's startup time remains constant (+/- some
- milliseconds) regardless of how many plugins using the new API are
- installed.
- - Faster buffer loading.
- - Faster activity log.
- - Bracket matching is now only performed 200ms after the last caret
- movement. This should solve the problem of annoyingly slow response
- when eg, inserting a number of characters before an unclosed bracket
- near the beginning of a large source file.
- - Bracket matching now only scans up to 10,000 lines.
- - Consecutive "chunks" with the same style attributes were previously
- merged when a line was being painted, for improved performance. Now we
- take this one step further and merge them when putting a line's chunk
- list in the cache. This should improve scrolling performance,
- especially when smooth text is on.
- - jEdit now performs much better when very long lines are present in a
- buffer.
- - A funky little display optimization with monospaced fonts is now
- performed. In jEdit 4.1 this could be enabled with a hidden property,
- but now we detect if a monospaced font is actually in use. If this
- causes display problems, please let me know about it and put this in a
- startup script:
- Debug.DISABLE_MONOSPACE_HACK = true;
- - Faster line insertion and removal when there are collapsed folds below
- the insertion point.
- - Faster painting of tokens with background colors. Previously if tokens
- defined a background color, there was a noticable lag when scrolling
- for example (at least with Java 1.4.1 on Linux). This no longer
- happends.
- - Faster buffer transactions if both soft wrap and narrowing is active.
- - Faster search and replace where the search or replace string matches
- on multiple lines.
- - Dockable window resizing is now done with a "rubber band", instead of
- live updates of the dockable container's size. This improves
- responsiveness of resizing noticably.
- - When dragging with the mouse, the text area now autoscroll at a rate
- proportional to how far away the mouse is from the edge of the area.
- }}}
- {{{ Platform-Specific
- - MacOS plugin version 3.0 now requires Java 1.4.1. All native calls now
- use the Cocoa API, and a dock menu has been added. The dock menu
- provides similar functionality to the plugin menu (Kris Kopicki).
- - Background mode is now enabled by default on MacOS, since this is the
- platform convention.
- - Added compatibility with Java 1.4.2 beta's GTK look and feel. Note
- that the look and feel itself is quite buggy, at least with the 1.4.2
- beta.
- - The installer should now work on VMS.
- }}}
- {{{ Bug Fixes
- - jEdit no longer minimizes and then restores windows when files are
- opened through the edit server on windows. This was done to work
- around an apparent bug in the Windows JRE. If you still experience the
- problem, there is a hidden property that can be set with the action
- bar:
- C+ENTER server.brokenToFront=true
- - Some HTTP proxies decompress GZip streams for whatever reason. The
- plugin manager now checks if the stream starts with the GZip magic
- characters; if not, it parses it without decompression, instead of
- throwing an exception.
- - Multiple monitors should work properly now (Kris Kopicki).
- - Selecting "Search in Directory" from the right-click menu of a
- directory in the parent directories list would search in the wrong
- directory.
- - Fixed problems with bracket matching not being activated when
- switching between split panes.
- - Not all keyboard shortcuts worked in the Complete Word popup.
- - Closing a view did not close any cloned dockable windows.
- - Page Up/Page Down commands now scroll by the correct amount when soft
- wrap is on.
- - Fixed I/O thread deadlock that could manifest when using the FTP
- plugin.
- - Fixed initial position of options dialog box divider.
- - If the default edit mode had a tab size of 8, and the global default
- was 4, a buffer-local property specifying a tab size of 8 would be
- ignored.
- - "Spaces To Tabs" didn't work with non-leading tabs.
- - C+e v ENTER and C+e v TAB still did auto indent, instead of inserting
- a literal ENTER and TAB like the documentation says.
- - Pressing ENTER with nothing selected in the File->Open dialog box no
- longer closes the dialog box.
- - Nested { and } work in globs now.
- - Fixed problem with EOL_SPAN delegating to a ruleset with a
- NO_LINE_BREAK rule.
- - Fixed horizontal scrolling when creating a rectangular selection in
- virtual space.
- - Clicking in the text area before the buffer is loaded no longer throws
- exceptions.
- }}}
- {{{ API Changes
- - You can a detailed guide on what has been broken, and what has been
- added, in doc/news42/index.html.
- - The following plugins are known to be broken:
- Background
- Console
- ErrorList
- JDiff
- WhiteSpace
- SideKick
- Templates
- Vimulator
- XML
- - Also, a lot of plugins that depend on ErrorList and Console will fail
- to load, even if they are not broken themselves. So don't panic if you
- see a huge list of plugin errors on startup; most of them won't need
- fixing.
- }}}
- }}}
- jEdit buffer local properties:
- :wrap=hard:maxLineLen=72:indentSize=2:
- :folding=explicit:collapseFolds=2: