File Release Notes and Changelog
Notes:
Changes:
JEDIT 4.3 VERSION HISTORY
{{{ Version 4.3pre3
Thanks to Bertalan Fodor, Björn Kautler, David Chan, James Turk,
Loren Charnley, Matthieu Casanova, Michael Macnair, Nicholas O'Leary,
Alan Ezust, Slava Pestov, Ollie Rutherfurd, Jeffrey Hoyt, Marcelo Vanzin,
Rob (copy_paste), and Simon Ruggier for contributing to this release.
{{{ Search and Replace
- HyperSearch results can now be displayed in a folder hierarchy tree
view. This makes it easier to see file locations when there are matches
for many different files from a deep folder structure. To activate,
right click on the top search node in the result tree and select
"Toggle Tree View". If multiple results is enabled, the tree view is
only toggled for the selected search.
There are also new context menu options for the result tree
that only display in tree view mode when a folder node is selected.
There are options to expand/collapse all child nodes, and another to
exeucte a "New Search From Here", which displays the search dialog
initialized with the path from the selected result tree folder node.
}}}
{{{ Syntax Highlighting
- Gnuplot syntax highlighting (Loren Charnley).
- Updated PHP syntax highlighting (Matthieu Casanova).
- Fixed end token of heredoc that must start at beginning of the line in
PHP (Matthieu Casanova)
- Updated MIPS R2000 assembly syntax highlighting (James Turk).
- Updated Java and LaTeX syntax highlighting (Alexander Klimetschek).
}}}
{{{ File System Browser
- Pressing / and BACKSPACE in the filename field no longer does
completion. Now, you must press TAB to complete.
}}}
{{{ Miscellaneous
- A new macro, SplitPane grow, was added to the macros/interface
directory
- A new macro, ToggleHeaderSource, for C/C++ editing.
- A single-line selection no longer hides the line highlight, for
better readability.
- The selection is now saved between buffer switches.
- ActionContext now remembers overridden actions, so another plugin
can override builtin actions (via listing one in actions.xml with the same name).
When the plugin is unloaded, the original action will be restored.
- Updated "Display Abbreviations", "Hex Convert" and "HyperSearch
Results to Buffer" macros.
- Updated "Insert Buffer Properties" macro (Björn Kautler).
- The plugin manager option pane now displays the name of the mirror
currently used (Matthieu Casanova).
- URLs dragged into the textarea are loaded rather than the URL pasted
(Nicholas O'Leary).
- Deselecting a plugin in the Plugin Manager persists between reloads of
jEdit (Nicholas O'Leary).
- Help Browser has an improved history model with drop-down style
forward and back buttons.
- Can specify caret column number in addition to line number when
opening a file (+line:<line>,<column>) (Bertalan Fodor).
- Added a new EventListener to notify subscribing plugins when jEdit was
looking for prefix completions and when it was done. These
notifications are for the ShortcutDisplay plugin.
}}}
{{{ Bug Fixes
- The following Java code did not indent properly:
if(foo)
{
foo(bar,
baz);
}
- The following Java code did not indent properly:
foo(bar(
<--- should not have two levels of indent here
- The soft wrap state is no longer reset when a buffer is saved. This
was pointless and slowed down the editor.
- Screen line management had an off-by-one error, so in some situations
the vertical scroll bar state would become inconsistent.
- Registers dockable window had a few problems (Nicholas O'Leary).
- Word count would show -1 for an empty buffer (Michael Macnair).
- Fixed corrupted cursor image problem on Mac OS X.
- Complete word popup is now always positioned within the screen bounds.
- The last physical line index was not updated when saving files
sometimes, resulting in exceptions when clicking in the text area.
- If rectangular selection mode was enabled and you clicked beyond the
end of the line in a read-only buffer, jEdit would beep.
- Using 'Delete Lines' with folding could mess up the vertical scroll
bar.
- File system browser's right click menu now contains the "Plugins" menu
(Nicholas O'Leary).
- Fixed file system browser's left arrow key behavior (David Chan).
- The startup script created by the Java-based installer on Mac OS X now
adds the Cocoa classes to jEdit's class path, so the Mac OS plugin
should work with no further tweaking.
- Fix race condition when there were buffers in the perspective, as well
as buffers specified to open on the command line.
- If windows were docked in the top docking area, the action bar would
display in the wrong place.
- After receiving a PropertiesChanged on EditBus, the PluginManager will
check if the mirror was changed before updating the plugin list
(Matthieu Casanova).
- Fix for drag'n'copy text to lower position in same textarea - #1246823
(Nicholas O'Leary)
- Register Viewer fixes (Nicholas O'Leary).
- Bug 1173630 fixed : Format paragraph with the caret at the end of it
(Matthieu Casanova).
- Mixed parser rules are detected when adding explicit fold
(Matthieu Casanova).
- Bug 1085135 fixed : when typing ctrl+S jEdit will not ask the user if
he wants to override the read only flag on the file
(Matthieu Casanova)
- NPE fixed when removing hyper search result that aren't cached
(Matthieu Casanova)
- NPE fixed when using turkish locale (889520)
}}}
{{{ API Changes
- bug 1386702: DockableWindowManager now sends an EditBus message
DockableWindowUpdate.ACTIVATED when a dockable is activated.
And a corresponding DEACTIVATED message when it is deactivated.
- A new EditBus message has been introduced: BufferUpdate.CLOSING
for Navigator (or other EBPlugins) to catch caret positions just
before buffers are closed.
- Selecting multiple directories in the file chooser dialog box is now
supported; just pass true as the last parameter (Matthieu Casanova):
GUIUtilities.showVFSFileDialog(view,null,
VFSBrowser.CHOOSE_DIRECTORY_DIALOG,true)
- Now that the text area is independent of the rest of jEdit, various
text area-related APIs that used to take org.gjt.sp.jedit.Buffer
instances now take org.gjt.sp.jedit.buffer.JEditBuffers:
- BufferChangeListener and BufferChangeAdapter are now deprecated. Use
BufferListener instead.
- FoldHandler.getFoldLevel() now takes a JEditBuffer as a parameter.
- VFS.copy() methods added (Matthieu Casanova).
- MiscUtilities.copyStream() and MiscUtilities.closeQuietly() methods
added (Matthieu Casanova).
}}}
}}}
{{{ Version 4.3pre2
Thanks to Bertalan Fodor, Dirk Moebius. Jarek Tuszynski, Joshua Gertzen,
Nicholas O'Leary, and Simon Ruggier for contributing to this release.
{{{ Auto Indent
- The auto indent engine has been rewritten from scratch to provide
more accurate indentation for a variety of langauges, including Java,
Common Lisp, and Factor.
- Aligned bracket indent is done as before with "indentOpenBrackets" and
"indentCloseBrackets" properties. Unaligned indent was previously
enabled by setting "lineUpClosingBrackets" to "false". Now, you must
specify "unalignedOpenBrackets" and "unalignedCloseBrackets"
properties.
The upside is that both aligned and unaligned indent can be used in
the same edit mode. For example, in Java source, the following piece
of code is indented correctly:
public void apply(Buffer buffer, int thisLineIndex,
int prevLineIndex, int prevPrevLineIndex,
List indentActions)
{
// ...
}
- The new "unindentThisLine" property, whose value is a regexp, allows
indentation of Java switch/case constructs:
switch(foo) {
case bar:
hello();
default:
yo();
}
- In order to immediately re-indent the line as soon as the case or
default statement is terminated with a :, the "electricKeys" property
is set to a list of characters whose input triggers a re-indent of the
current line.
- The new "unindentNextLines" property, whose value is a regexp, allows
indentation of Factor colon definitions -- in particular, after the ;
everything must be unindented:
: refers? ( to obj -- ? )
f swap [ pick eq? or ] each-slot nip ;
! Indent returns here
}}}
{{{ Syntax Highlighting
- Updated LilyPond syntax highlighting (Bertalan Fodor).
- Rd syntax highlighting (Jarek Tuszynski).
- Updated ASP syntax highlighting (Simon Ruggier).
- Slate (http://slate.tunes.org) syntax highlighting.
}}}
{{{
- The file system now lazily retreives file system attributes. For
plugins that use the VFS API, this has important implications; see
the below "API Changes" section. (Joshua Gertzen).
- Previously, file system browser columns would resize to fit all the
attributes of all visible files. Now, this is not possible, so instead
columns can be resized manually and their size is preserved.
}}}
{{{ Miscellaneous
- When an item from the "Paste Previous" or "Paste Deleted" dialog boxes
is inserted, it is moved to the top of the list.
- Pasting now preserves the tall caret.
- New text areas viewing a buffer inherit the fold visibility map from a
previous text area.
- The right-click popup for HyperSearch results nodes has three new
entries:
- Open
- Open in New View
- Open in New Plain View
- Open in New Split
- On Mac OS X, the close box is shown with a different appearance if a
visible buffer has unsaved changes.
- Dropping text into the text area now selects it (Nicholas O'Leary).
- The cursor is hidden when you start typing.
- Renamed 'Delete Line' to 'Delete Lines'; now does the right thing if
more than one line is selected. Same for 'Join Lines' versus
'Join Line'.
- When the search bar loses focus, the currently entered text is added
to the history.
- "Format Paragraph" now preserves the caret position.
}}}
{{{ Bug Fixes
- Fix NullPointerException in file system roots list.
- Search and replace dialog's "Search subdirectories" checkbox did not
have an Alt-key mnemonic.
- Binding actions to numeric keypad keys should now work better.
- Pressing something like A+f l where A+f was a prefix but A+f l was
not bound would insert l into the buffer, which was undesirable.
- The plugin manager did not select a plugin's dependencies when the
plugin was selected for installation.
- Invoking 'Expand Fold' when the fold is expanded would move the caret
to the wrong place.
- Changing the wrap mode didn't update screen line counts, causing
various problems.
- The custom history text field border with the popup widget is back.
- Fixed a memory leak. Token markers were retaining the line segment
they were given to tokenize -- in some cases, this line segment could
hang around for a while, and was huge.
- Fix performance regression when deleting text; too many lines were
being repainted.
- 'Cut Append' and 'Copy Append' commands did not update the Registers
dockable.
- Fix Control key on Mac OS X.
- Changing the font size did not update the vertical scrollbar.
- JSwat plugin did not work when running under Java 5 due to a bug in
jEdit's JARClassLoader (Dirk Moebius).
- Fix some problems with paths that end with multiple file separators.
- Inserting a long line of text did not always scroll horizontally as
required.
- Split panes now have resize weight, ensuring more intuitive behavior
when a split view is resized.
- If autosave kicked in while the 'Close All Buffers' dialog was open,
then the perspective would be saved, and the wrong buffer would be
restored on the next startup.
- Fix an exception from being shown when loading a file with a malformed
.marks file.
- Fix possible ArrayIndexOutOfBoundsException when deleting text after
decreasing the number of history elements.
- Double clicking the middle mouse button now pastes twice, instead of
pasting and selecting a word.
}}}
{{{ API Changes
- View.updateTitle() is now public.
- VFS.DirectoryEntry has been deprecated because its interface is not
conductive to lazy initialization. Virtual file systems should now
return instances of org.gjt.sp.jedit.io.VFSFile, and instead of
reading/writing the public fields of that class (they are public but
deprecated for VFS.DirectoryEntry compatibility), you should call the
accessor/mutator methods.
- A new MiscUtilities.pathsEqual() method has been added to check for
equality of path names while ignoring case sensitivity on Windows.
}}}
}}}
{{{ Version 4.3pre1
Thanks to Cameron Morrison, Igor Lesik, Jim Lawton, Marcelo Vanzin,
Nicholas O'Leary and Trevor Harmon for contributing to this release.
{{{ Search and Replace
- When invoking "Find", "Incremental Search for Word" or "HyperSearch
for Word" actions, if regular expression search is on, any special
characters in the selection are automatically escaped.
- Find dialog box now has fields that accept multi-line input. Pressing
ENTER activates the "Find" button; press C+ENTER to insert lines in
the field.
- Variables such as "view", "buffer" and "textArea" can now be used from
BeanShell replace expressions.
}}}
{{{ Syntax Highlighting
- Literate Haskell syntax highlighting (Cameron Morrison).
- Updated D syntax highlighting (Jim Lawton).
- Forth syntax highlighting.
- Motorola 68000 assembler syntax highlighting (Igor Lesik).
}}}
{{{ Scripting
- Macros written in the UTF-8Y and UTF-16 encodings are auto-detected.
- Added Macros->Repeat Last Macro command. This used to be in 4.1, but
got removed in 4.2, and now its back due to popular demand.
}}}
{{{ Miscellaneous
- jEdit no longer runs with Java 2 version 1.3. Java 2 version 1.4 or
1.5 is now required.
- If the wrap margin is set to 0 and soft wrap is enabled, wrapping is
now performed at the text area width. This used to be in 4.1, but
got removed in 4.2, and now its back due to popular demand.
- Rename Autosave & Backup option pane to Save & Backup, move some
options from General pane there (Marcelo Vanzin).
- Added Ant target for building a MacOS X .app package (Trevor Harmon).
- Added Register and Marker dockables (Nicholas O'Leary).
- "Rectangular Selection" command now changes the state of the current
selection to match the flag.
- "Select All" preserves current scroll position.
- When closing jEdit, open buffers are not added to the "Recent Files"
list if the "Restore previously open files on startup" option is on.
- View.goToBuffer() will try to find a non-zero height text area if
possible.
- Pressing TAB now preserves the tall caret, if there is one.
- When a directory is reloaded, it is no longer moved to the top of the
file system browser's history list.
- Added View->Splitting->Restore Split action -- it recreates a
split pane configuration as it was before the most recent 'Unsplit'.
}}}
{{{ Bug Fixes
- "Backup directory" feature now works if the file being edited is on a
different filesystem than the backup directory (Marcelo Vanzin).
- Don't use two-stage save if the file's parent directory is not
writeable (Marcelo Vanzin).
- Minor fix for handling of the recent buffer when the current buffer
was closed.
- Fix StringIndexOutOfBoundsException when opening files with a
malformed XML PI.
- Removing open files from the favorites list didn't work.
- calling readNextChar() no longer clears the status bar after the
script returns.
- Fix potential ArrayIndexOutOfBoundsException when indenting lines
containing unmatched brackets.
- The "deselecting this plugin will deselect dependencies" message did
not give the actual list of dependencies.
- Fixed NullPointerException when selecting QuickNotepad menu items
before opening QuickNotepad first.
- Register persistence was broken and didn't work in many cases.
}}}
{{{ API Changes
- New org.gjt.sp.jedit.gui.HistoryTextArea class can be used by
plugins.
- Removed EditPlugin.JAR, deprecated since 4.2.
- Removed Buffer.getRootElements(), Buffer.getParagraphElement() and
Buffer.getDefaultRootElement() methods, deprecated since jEdit 4.0.
}}}
}}}
jEdit buffer local properties:
:wrap=hard:maxLineLen=72:indentSize=2:
:folding=explicit:collapseFolds=2: