Subscribe to AfterDawn's weekly newsletter.
Version history for jEdit
<<Back to software description
Changes for v4.5.0 - v4.5.1
- Thanks to Björn "Vampire" Kautler, Matthieu Casanova, Kazutoshi Satoda, Alan Ezust, and Max Funk for contributing to this release.
- Bug Fixes
- Fixed memory leaks which happened when split panes or multiple views are used. (Kazutoshi Satoda)
- Fixed unreasonable slow down which could happen with complex syntax rules and large files. (Kazutoshi Satoda)
- Fixed memory leaks which could climb to be observable with complex syntax rules and large files. (Kazutoshi Satoda)
- Made basic edit operations aware of characters above BMP and combining character sequences. (SF.net bug #3040720 - Kazutoshi Satoda)
- The Install/Update plugin dialog with progress bar should not show the progression of installation in it's title (#3485497) (Matthieu Casanova)
- If the plugin list was not already loaded, there is no reason to load it because of a property change (#3485645) (Matthieu Casanova)
- Fixed status bar widget editing (#3414671) (Matthieu Casanova)
- Fixed text area corruption (strange exceptions and/or inconsistent display) which could happen when multiple files are opened simultaneously in a text area. This could also happen on some other minor conditions. (SF.net bug #3442116 - Kazutoshi Satoda)
- Wrong chars in auxiliary fonts (Max Funk - #3474765, 3474534)
Changes for v4.4.2 - v4.5.0
- Thanks to Shlomy Reinstein, Alan Ezust, Jarek Czekalski, Michael Pradel, Evan Wright, Matthieu Casanova, Nathan Gray and Björn "Vampire" Kautler for contributing to this release.
- Bug Fixes
- Inner class of FilteredListModel passes wrong "this" (patch# 3477759 - Michael Pradel)
- Large file mode text description dialog (#3456370) (Matthieu Casanova)
- VFS Browser was stuck if trying to browse a VFS that needed a session but the session could not be opened (#3471386) (Matthieu Casanova)
- Fixed Copy_Line macro that was copying one character of the next line (#3454377) (Matthieu Casanova)
- Fixed a NPE when trying to activate a plugin if one of it's dependencies is missing (#2077205) (Matthieu Casanova)
- When parsing buffer-local properties, there was a problem with escape processing that prevented buffer-local properties to be read sometimes (Bug #3438680 - Björn "Vampire" Kautler)
- Building offline was prevented by a bug in Ivy, this is workarounded now in the Ivy settings for jEdit. (Bug #3437212 - Björn "Vampire" Kautler)
- Fixed #3163058: middle mouse button paste doesn't respect gutter selection. (Shlomy Reinstein)
- ":encoding=...:" was treated as buffer local property and caused confusion about what encoding was used at loading/saving the buffer. (SF.net patch #3434651 - Jarek Czekalski, for bug #1643580)
- Fixed #3434527: Jump to wrong line with folded target (Evan Wright)
- \r (0x0A, CR) could be pasted from clipboard into buffer. (Bug #3142456 - Matthieu Casanova)
- Added select all and select none buttons to PingPongList fixing a bug in EncodingsOptionPane (#3434850) (Matthieu Casanova)
- Fixed #3474515 - MiscUtilities.expandVariables does not expand ~ (Alan Ezust)
- UI
- Changed menus to use Mac-specific symbols for accelerator keys when using OS X and the native look & feel (SF.net patch #1950147 - Nathan Gray)
- Miscellaneous
- Document jEdit's command line parameters into Activity Log (#2960844 - Alan Ezust)
- Removed 192mb heap size limit from startup scripts. Removed jedit.l4j.ini from Windows package files because no options were left. NOTE: Old jedit.l4j.ini won't be removed on upgrade. In that case, manual removal will be required. Please look for jedit.l4j.ini in the install directory after running the installer. If you found only "-Xmx192M" in the file, you can remove it or the file itself.
Changes for v4.4.1 - v4.4.2
- Bug Fixes
- Untitled buffer should not be created on VFS without write capability (#3399387) (Matthieu Casanova)
- Shortcuts option pane was showing shortcuts twice when an action was overridden by a macro or a plugin (Matthieu Casanova)
- When macros are reloaded, if one of them was overriding a built-in action, the action is not restored if the overriding macro is removed (#3110689 - Matthieu Casanova)
- Fixed a bug which caused lines to disappear when using indent folding if every line was indented (#3412237 - Evan Wright)
- When removing a plugin, the update and install panel were not refreshed (Matthieu Casanova)
- Fixed a corner case when trying to move caret during a buffer operation (loading, transaction, undo) prevent to move the caret forever (Matthieu Casanova)
- Fixed jEdit starting when max heap size is too low to load Killring (#1827853) (Matthieu Casanova
- MiscUtilities.expandVariables() now recognizes %varname% on Windows, meaning it can reverse what MiscUtilities.abbreviate() does. (Alan Ezust).
- Fixed NPE when starting jEdit with nosettings (#3401814) (Matthieu Casanova)
- Fixed several case where userinput during buffer loading cause exceptions (#3398342) (Matthieu Casanova)
- Pressing left arrow when the caret is at the buffer start but in a selection now cancels the selection as it should. (#3396672) (Matthieu Casanova)
- Fixed loading of jEdit in case of corrupted recent.xml file in the settings (#3396545) (Matthieu Casanova)
- If the current buffer is on a VFS that is not browseable (ex:http), trying to open a new file was trying to browse the path of the current file giving an error (Matthieu Casanova)
- Error Widget now use the same color as Invalid token instead of being always red (Matthieu Casanova)
- Fix for tracker 3034220, jEdit fails to load text-file under Mac OS X (#3034220 - Evan Wright)
- Fixed a bug that occured when jumping to a line inside of a nested fold. (#3406213 - Evan Wright)
Changes for v4.4 pre 1 - v4.4.1
- Version 4.4.1
- Thanks to Björn "Vampire" Kautler, Kazutoshi Satoda, Alan Ezust, and Matthieu Casanova for contributing to this release.
- Bug Fixes
- Collapsing all folds will move the caret outside any fold if necessary (Matthieu Casanova)
- Fixed an exception that occurs when opening jEdit from command line with some files to open as argument if a jEdit server is running (#3173669 - Matthieu Casanova)
- jEdit now force drops from external applications to be COPY and not MOVE drops. It prevents ftp explorer from deleting dropped files (#1208598 - Matthieu Casanova)
- Changing bufferset scopes now saved to properties as default scope. (#3316329 - Matthieu Casanova)
- Buffersets no longer populated with open files when creating new view. (#2990965 - Matthieu Casanova and Alan Ezust)
- BufferSet contents of new Plain View #3317405 fixed (Matthieu Casanova)
- When the cursor was at a start (or end) of non-top (non-bottom) line, Find Next (Previous) for a non-empty regex starting with "^" (ending with "$") wrongly skipped the occurrence at the cursor. (SF.net bug #2953604 - Kazutoshi Satoda)
- Corrected a wrong specifications (javadoc comments) of SearchMatcher#nextMatch(). (SF.net bug #2953604 - Kazutoshi Satoda)
- Fixed an exception that prevent from opening properties dialog of non local files in the VFS Browser (#3199876 - Matthieu Casanova)
- Remove sending to background from the Linux start script, otherwise it cannot be used properly as commit editor with the -wait option or to get the -usage output on the commandline properly (Björn "Vampire" Kautler)
- Improve integration with Unity Launcher. Without this change if you pin jEdit to the Launcher and then run it, a separate icon for the running instance is shown. With this change this is correctly merged with the pinned starter. (Björn "Vampire" Kautler)
Changes for v3.4.2 - v4.4 pre 1
- Thanks to Björn "Vampire" Kautler, Matthieu Casanova, Shlomy Reinstein, Kazutoshi Satoda, oman002, and Eric Le Lay for contributing to this release.
- Bug Fixes
- Fixed Standalone TextArea build target (Shlomy Reinstein)
- Fixed a NPE that happens when an error occurs before the view is loaded (Matthieu Casanova #2905487)
- Fixed bug #2927555: beanshell load() fails w/ exception (Shlomy Reinstein)
- Fixed a memory leak which held closed View and EditPane when using global bufferset scope. (Kazutoshi Satoda)
- When removing text from the buffer, the event contentRemoved was sent before making the buffer dirty (oman002 #2944145)
- Fixed leaky memory usage after some specific text operations. (Kazutoshi Satoda)
- Worked around a memory leak in Sun Java 6 where the sun.font.GlyphLayout is cached and reused while holding an instance to the char array (Björn "Vampire" Kautler)
- When setting a new message in the status bar in a macro called from the Macro menu the message was cleared immediately (Matthieu Casanova #2964522)
- don't log an error when the API docs are not available. Provide a link to the online docs instead (SF.net bug #1777806 - Eric Le Lay)
- RFC edit mode was misplaced in catalog and was never matching anything because text edit mode glob was more global and checked first (Matthieu Casanova)
- java installer refuses to install from a directory containing exclamation marks (SF.net bug #2065330 - Eric Le Lay)
- API Changes
- Applied patch #2932330 to suppress BufferUpdate messages from temporary buffers to improve performance. (Dale Anson)
Changes for v4.3.1 - v4.3.2
- Thanks to Björn "Vampire" Kautler, Alan Ezust, Eric Berry, Shlomy Reinstein, Damien Radtke, Dale Anson, Matthieu Casanova, Eric Le Lay, Bernhard Walle, Joerg Spieler, Kevin Hunter, François Rey, Dion Whitehead, Marcelo Vanzin, Jesse Pavel, Bernhard Walle and Jakub RoztoÄ?il for contributing to this release.
- Bug fixes
- Fixed an exception when trying to add new menu items to the context menu if some ActionSets have been unloaded (plugin deactivation) (Matthieu Casanova #3071355)
- Closes menus when toggling dockables. (#3022084 - Anshal Shukla)
- VFSBrowser escape handling fixed when used as a dialog (#3101808 - Alan Ezust)
- Context menu sorted when adding toolbar buttons (#3074164 - Alan Ezust)
- Fixed an exception when clicking ok while adding new action to the context menu if no action has been selected (Matthieu Casanova #3072546)
- Fixed TextArea.selectBlock() when the block is at offset 0 (Jesse Pavel #3062072)
- Fixed a memory leak in the beanshell snippet replacement (Matthieu Casanova #3043132)
- The "buffer" variable is always the current buffer and not the buffer where the replacement occurs when using beanshell snippet replacement (Matthieu Casanova #3043118)
- Removed workaround in drag & drop code of TextArea that doesn't seem useful anymore on Ubuntu and cause exceptions when dropping a Transferable that is not a String but has a java.io.InputStream as representation class (Matthieu Casanova)
- Fixed caret going to the wrong position when adding explicit folds in a buffer that uses an edit mode that has no line comment (Matthieu Casanova #2138160)
- Fixed caret going after the explicit folds when adding explicit folds to the wrong position when adding explicit folds while having no selection, in any edit mode (Matthieu Casanova)
- When saving a buffer the autoreload option of the buffer was overridden by global settings (Matthieu Casanova #2999966)
- Improve indentation settings of the shellscript edit mode. (Björn "Vampire" Kautler #3005463)
- Removed the duplicated "Architecture" line from the Debian control file. (Björn "Vampire" Kautler #2999456)
- In the manage panel, when selecting a library, the description panel do not contains "null" for every fields and the title is set to the jar name instead of "null" (Matthieu Casanova)
- Update of textarea scrollbars and bufferSwitcher are now done in EventQueue thread (Matthieu Casanova #2946031)
- Removed unnecessary popup warnings from InstallPanel when loading a pluginset. (Alan Ezust)
- fix #1439605 - remove installer.VariableGridLayout (r16596).
- Fixed bug in "selection-length" status bar widget: The widget was not added to the edit bus, so it wasn't updated when the edit pane changed. (Shlomy Reinstein)
- Removed write capability to the UrlVFS. Now http:// files are marked read-only. (Eric Le Lay #2805986)
- When having two monitors the About dialog was appearing between them, one half on each monitor. Now it's position is relative to the active View (Matthieu Casanova)
- Selection foreground color broken when soft wrap. (Shlomy Reinstein #2946203)
- Using regex style encoding auto detectors, StringIndexOutOfBoundsException could happen when loading a file. (Kazutoshi Satoda)
- The encoding could be less accurate when opening a file from File System Browser. (SF.net bug #1524181,1721796 - Kazutoshi Satoda)
- ALT key typing with Windows Look&Feel (for menu bar interaction) now behaves a bit closer to native Windows applications. NOTE: It's still incomplete due to some problems in JVM. http://bugs.sun.com/view_bug.do?bug_id=6923687 http://bugs.sun.com/view_bug.do?bug_id=6458497 ALT key typing is disabled on TextArea for now to prevent the latter problem. (SF.net bug #2795635 - Kazutoshi Satoda)
- HelpViewer loads pages asynchronously (SF.net bug #1231914 - Eric Le Lay)
- Don't replace colons by slashes in canonPath() on Mac OS X (SF.net bug #1488911 - Eric Le Lay - r17754)
- Fix Angle brackets showing up in plugin descriptions in plugin manager (SF.net bug #1963667 - Eric Le Lay)
- Fix SOCKS proxy accessing wrong property. Therefore, SOCKS proxy was never getting enabled. (SF.net patch #2820969 - Milutin Jovanović)
- CopyFileWorker now throws a FileNotFoundException instead of a NPE if the target path is not a directory and it's parent doesn't exists. (Matthieu Casanova)
- CopyFileWorker do not accept that the source and target are the same (Matthieu Casanova)
- Changed GUIUtilities.confirm() to work also from worker threads, by deferring the confirmation dialog to the EDT. This fixes threading issues with HyperSearchRequest, if the number of results exceeds the "max results" option. (Shlomy Reinstein)
- Fix "-reuseview" not bringing the view to the front. (Sf.net bug #1510651 - Shlomy Reinstein)
- Show search bar in full screen mode. (Sf.net bug #2944752 - Shlomy Reinstein)
- API changes
- Added methods to manage the cursor if the TextArea : In the TextAreaPainter class, added resetCursor() setCursor(Cursor) The cursor behavior is the following : when the cursor is the default one : TEXT_CURSOR, when typing text it is hidden, after moving the mouse it reappears. If a plugin calls setCursor() to replace it for whatever reason, the cursor will not disappear anymore when typing or be changed to TEXT_CURSOR until resetCursor() is called (Matthieu Casanova)
- Introduction of a new ThreadUtilities class implementing a threadpool using Java 1.6 Concurrent API. Use this instead of VFSManager's WorkThreadPool, which is now deprecated. Related: A new Task Monitor dockable which will eventually replace the I/O progress monitor, for showing progress of tasks. Still TODO: rewrite VFSManager + all plugins to use ThreadUtilities instead of WorkThreadPool. (Matthieu Casanova)
- Made method TextUtilities.getCharType() public (Matthieu Casanova)
- Method MiscUtilities.formatFileSize() moved to StandardUtilities (Matthieu Casanova)
- New method E ServiceManager.getService(Class
clazz, String name) to get service instance (Matthieu Casanova) - Register api changed, it now contains Transferable (Matthieu Casanova)
- Added ThreadUtilities utility class (Matthieu Casanova)
- Removed deprecated objectfactory xml parser.
- File System Browser dynamic menu support (#2938170 - François Rey)
- Added a method for unregistering macro handlers: Macros.unregisterHandler().
- bufferSet api rewritten. Now each editPane have its own bufferSet, does not share it with other editPanes. The bufferset scope is the same for all EditPanes. (Matthieu Casanova)
- Status bar widget : it is now possible to use labels starting with letters in status bar. (Matthieu Casanova)
- Removed long deprecated TextArea#isDragInProgress() and TextArea#setDragInProgress(). (SF.net patch #2809776,2936146 - Kevin Hunter)
- EditBus.send() will now always deliver messages on the AWT thread, although it can be called from any thread. (Marcelo Vanzin)
- Added EditBus.sendAsync(): this just enqueues messages to be send over the EditBus as soon as the AWT thread is not busy, and returns immediately. (Marcelo Vanzin)
- Added ability to tag classes with EditBus.EBHandler. This is only useful when tagging an EditPlugin class, and makes the plugin instance behave as if it implemented EBComponent (it's added to the bus when the plugin is activated). (Marcelo Vanzin)
- RFC edit mode was misplaced in catalog and was never matching anything because text edit mode glob was more global and checked first (Matthieu Casanova)
- New ping-pong list component org.gjt.sp.jedit.gui.PingPongList (Matthieu Casanova)
- PluginUpdate bus message now have a method getPluginVersion() that returns the plugin version if there is one (Matthieu Casanova #2953163)
- Added StyleEditor.invokeForCaret(textArea) which does same as buffer.editSyntaxStyle(textArea) did, but can be invoked without specifying the buffer object carefully. (Kazutoshi Satoda)
- HistoryModel's max size is no more defined globally : replaced the static max variable by a per-instance max variable and a static defaultMax variable (Eric Le Lay)
- The JeditBuffer class now have thread-safe getText() params-less convenience method (Vadim Voituk)
- Patch 3008954 to Mode and ModeProvider to allow an exact filename match when selecting the mode for a file. (Patch provided by Bernhard Walle)
- Patch 3022084 added View.closeAllMenus(). (Anshal Shukla)
- Editing
- Update for Stata-edit mode (goebbe, # 3019042)
- Added "using" keyword to haXe edit mode (patch #3081482 from Bad Sector, Matthieu Casanova)
- Added visualbasic.xml edit mode (Anonymous submitter, #3031412)
- Added haxe.xml and hxml mode files to support haXe language (Dion Whitehead, François Rey, # 2922986)
- Added plaintex.xml mode file, for plain tex files. (# 2787012 - James Nicholl)
- nsis2.xml update (#2653404 Uwe donovaly)
- sas.xml update (#2926121, 3015899 - goebbe)
- html.erb added to rhtml mode catalog entry. (# 2734062 Sergey Mezentsev)
- Added Go edit mode (#2898646 - Jim Lawton)
- When pasting text copied from the textarea, if the target textarea has no edit mode, the edit mode from the source is copied (Matthieu Casanova)
- Added the missing doxygen commands for doxygen v1.6.1 (bug #2895272 - report and patch from Bernhard Walle). doxygen now highlights quoted strings in comments.
- Ruby mode - keyword highlighting bug fix ( # 2868654 - Suraj Kurapati)
- Updated logtalk.xml file (# 2937909 - Paulo Moura)
- Slax Edit Mode ( # 2883030 - curtis_call )
- Json edit mode ( # 2979745 - Dale Anson )
- PHP Smarty Templates Mode ( # 2969956 - Rowan Collins)
- Haskell edit mode rewrite ( # 2993269 - Stephen Blackheath)
- Pure edit mode updates ( # 2988741 - asitdepends)
- url.xml mode (# 1991306 - Kevin Hunter)
- LaTeX mode - code indentation (2872638 - Michael Schlotter)
- 'dot.xml' mode file indent{Open,Close}Brackets wrong (#3008614 - Robin Neatherway)
- Added logtalk.xml mode file (#1945284 - Paulo Moura)
- Added regex.xml mode file (#2782258 - Kevin Hunter)
- Added sip.xml mode file to read sip messages (Matthieu Casanova)
- New paste special action accessible from menu Edit->More clipboard->Paste Special that will suggest different mode to paste data from clipboard, currently plain text, rich jEdit text (plain text + edit mode) and mime type html are supported (Matthieu Casanova)
- Added Ant mode file for Ant build files. (#3016053 - Dale Anson)
- Added TLD mode file for JSP Tag Definition Library files. (#3016054 - Dale Anson)
- Added Maven mode file for Maven pom.xml files. (#3016057 - Dale Anson)
- Updated javacc mode to better highlight keywords and regular expressions. (Dale Anson)
- Updated Django temlate mode to Django 1.2, added missing keywords and better integration with HTML, CSS and JS (Jakub RoztoÄ?il)
- Miscellaneous
- Fixed the build.xml which was for the Windows installer only working if completely run on Windows, making "ant dist-win" on another system and then using "ant dist-win-finish" was broken (Björn "Vampire" Kautler)
- Made the Windows launcher buildable on any system (Björn "Vampire" Kautler)
- Made the Windows installer buildable completely via wine on on non-Windows systems (Björn "Vampire" Kautler)
- Made our documentation build on FOP 0.93+, 0.20.5 is no longer supported by our files (Björn "Vampire" Kautler)
- Included the Windows launcher in the Java installer (Björn "Vampire" Kautler)
- Made the filter tasks use UTF-8 encoding as all our files are UTF-8 encoded (Björn "Vampire" Kautler)
- Made the Windows installer correctly show special characters like german umlauts (Björn "Vampire" Kautler)
- Fixed various indentation errors (Björn "Vampire" Kautler)
- Removed the Java 5 suggestion in the debian control file (Björn "Vampire" Kautler)
- Replaced the links to Java 5 documentation with links to Java 6 documentation (Björn "Vampire" Kautler)
- Removed the BAT launcher in the Windows installer in favor of the EXE launcher (Björn "Vampire" Kautler)
- Fixed the setting for building the Windows launcher (Björn "Vampire" Kautler)
- Reverted the erroneous changes for Mac OS X plugin (Björn "Vampire" Kautler)
- Fixed the information in README.SRC.txt (Björn "Vampire" Kautler)
- Reworked the Windows installer build file (Björn "Vampire" Kautler)
- Wrap mode tooltip in status bar now indicates the current wrap mode (Matthieu Casanova)
- It is now possible to copy several files in the VFS Browser at the same time, and copy from/to the OS explorer (Matthieu Casanova)
- Removed LatestVersion plugin.
- HelpViewer font can be configured via Appearance Option Pane. (#3002186 - Alan Ezust)
- Added actions for eating whitespace at word ends in both directions for findWordStart. (#1953341 - strank)
- Added a configurable selection foreground color. If set, this color will be used for the selection foreground instead of the syntax highlighting color. The new option can be set from Global Options -> Text Area. (Shlomy Reinstein)
- Implemented feature request #2919875: Namable views. You can now specify a name for each view using View -> Set view title. The name is persistent in the perspective.xml file.
- In Hypersearch result panel, the query string length is now limited to 100 chars by default for display (Matthieu Casanova)
- Applied patch #2887520: Allow filtering the recent file list using file globs, e.g. "*.java" or "{*.c,*.h}". (Patch provided by Joerg Spieler)
- New status bar widget design (Matthieu Casanova #1540560)
- New Encodings option pane using drag & drop (Matthieu Casanova)
- Parsing buffer local properties is limited to the first 10000 characters of the first and last 10 lines. This is a performance enhancement when loading buffers containing very long lines (Matthieu Casanova)
- Added a new option to perform font substitution in the text area when the current configured font can't display characters in the buffer. It's disabled by default, and can be enabled in the text area option pane, along with the option to choose preferred fonts for substitution. This makes reading files which contain text in multiple scripts more bearable. (Marcelo Vanzin)
- Fixed ModeCatalogHandler so if an edit mode in the user-specific catalog has the same name as an edit mode in the system catalog, the version in the user-specific catalog will override the system default. This is what the documentation for writing an edit mode has stated is true for some time, nowit is. (Dale Anson)
- - Gave better priorities within modes which matches with a file at the same time, as the following order:
- - exact filename match
- - both the filename glob and the first line glob
- - only the filename glob
- - the first line glob (Dale Anson)
- In status bar option pane, when adding a widget only widgets that are not already in the bar will be proposed (Matthieu Casanova feature #2937286)
- Added jedit.exe in the Windows installer, so that users can invoke jEdit more like a native application. (Feature Request #2661227, Patch #2984552 - Hisateru Tanaka)
- Added some more encoding detectors as default. (Kazutoshi Satoda)
- Extended the scope of the workaround for a bug in Sun (and Apple) JVM 5 to cover IBM JVM because the same problem was reported on it. (SF.net bug #3006686 - Kazutoshi Satoda)
- Added settings to Activity Log to adjust colors and filter by message type. (Dale Anson)
- Updated 'Make Get and Set' macro. (Dale Anson)
- Ctrl-P and Ctrl-N work from completion popups now (#3080463 - Damien Radtke)
- Added "Replace" button to Search and Replace dialog. This allows a 'replace once' as opposed to 'replace and find'. (#3084224 - Dale Anson)
Changes for v4.3 Pre 18 - v4.3.1
- Thanks to Björn "Vampire" Kautler, Alan Ezust, Damien Radtke, Kazutoshi Satoda, Dale Anson, and Shlomy Reinstein for contributing to this release.
- Bug Fixes
- Searching for regex "^\s*.*$" missed every second line of adjacent matching lines. (SF.net bug #2915720 - Kazutoshi Satoda)
- Fix for 2924261, BufferLocal ignores request to change encoding. (Dale Anson)
- Fix # 2921611 - PluginSets fail to load grand-dependencies. (Damien Radtke)
- Fix # 2920287 - Macro recording for home/end actions fixed. (Alan Ezust)
- Fixed #2920352: Can't disable "Restore previously open files on startup". (Shlomy Reinstein)
Changes for v4.3 Pre 17 - v4.3 Pre 18
- Thanks to Björn "Vampire" Kautler, Shlomy Reinstein, Alan Ezust, Chepel Matthieu Casanova, Denis Dzenskevich, Dennis Sheil, Jim Lawton and Suraj Kurapati for contributing to this release.
- Bug Fixes
- When using the quick syntax edition, if the operation is cancelled, do not send a propertiesChanged event (Matthieu Casanova)
- Fixed bug #2882702 - Right Click menu shows up to the left of the mouse pointer in a multiple monitor environment.
- Fixed bug #2881152 - Bufferset Order is incorrect after a "save as". (#2882756 - Shlomy Reinstein)
- Fixed bug #2806043: Token.tokenToString() throws ArrayIndexOutOfBoundsException on the END token. (Shlomy Reinstein)
- When switching back from fullscreen mode to normal, check property to decide whether to show status bar in normal or plain view. (Shlomy Reinstein)
- Fixed restoring of view bounds from perspective.xml for dual-monitor environments. This was broken by a fix in the previous version for users who switch from a dual-monitor environment to a single-monitor environment, and now should be fixed indefinitely. (Shlomy Reinstein)
- Fixed #2819701: DockableWindowManagerImpl causes NullPointerExceptions. (Shlomy Reinstein)
- Fixed #2817321: Exceptions on startup. Caused by a backward-incompatibility that was introduced by the BufferSets feature, of the "split configuration" format in the perspective.xml file. This incompatibility prevented jEdit from starting up for users who upgrade from any non-BufferSet version. A workaround for this is to remove perspective.xml, but then the previous layout is not restored. With this fix, jEdit should start normally with an old perspective.xml file. (#2817321) (Shlomy Reinstein)
- Fixed #2818261: Rectangular Selection Count wrong. (Shlomy Reinstein)
- Fixed #2823909: action bar not visible in full screen mode. (Shlomy Reinstein)
- Fixed #2825028: Plugins not properly unloaded during exit. (Shlomy Reinstein)
- Fixed #2825203: BufferSets not restored correctly on startup. (Shlomy Reinstein)
- Fixed the Java based installer not to use an undefined variable JAVA_HEAP_INIT_SIZE in Unix startup script. (Kazutoshi Satoda)
- Fixed #2818327: Plugin Error Dialog issues - allow copying the text from the plugin error dialog. (Shlomy Reinstein).
- Fixed #2833822: Selecting "View -> Line numbers" now shows the gutter if it was not shown before (otherwise, this has no effect).
- # 2838679 - Support Cygwin xsltproc in build.xml for docs generation (Sebastian Schuberth).
- Minor refactoring of Mode class to allow plugins to determine the mode of a file without having to necessarily read the first line of the file. This allows huge performance gains in plugins like TaskList that need to determine the mode of a large number of files that are not yet opened in jEdit. (Dale Anson)
- Fixed #2834900: DockingLayoutManager recursion when handling EditBus msgs. Prevented such recursions by avoiding creation of a dockable if it is already being created. (Shlomy Reinstein)
- Fixed syntax highlight when a " appear in a javadoc comment in java mode (#2818095) (Denis Dzenskevich)
- Fixed #2808363 (patch #2827234): fix perl highlighting hanging on some operators. (Dennis Sheil)
- Applied patch #2842678: Gutter selection problems (Shlomy Reinstein, patch provided by encorejane).
- Applied patch #2846169: IndentFoldHandler - allow blank lines after start of fold. (Shlomy Reinstein, patch provided by Suraj Kurapati)
- Applied patch #2844750: line height correction (disappearing underscores), using OpenJDK (Suraj Kurapati)
- Miscellaneous
- New Macro - "Text/Compose Tag". (Gordon Hollenbeck # 2644277)
- New action: toggle buffer switcher - toggles visibility of buffer switcher, and enabled-ness of focus menu item and focuses if enabled. (ezust)
- New (restored?) Actions: dumb "home" and "end": not as smart as smart home/end - stays on the same line always. (Alan Ezust)
- Smarter Smart-end - uses syntax info to determine end of code (before start of comment), giving smart-end 4 states instead of the previous 3. (Gordon Hollenbeck #2646484).
- New options to select the width and the background color of the selection area in the gutter (which is visible when line numbers are not shown).
- New button in Hypersearch dockable panel to stop an hypersearch (patch #2842444) (encorejane)
- API Change
- Renamed "EditPane.showBufferSwitcher()" to "focusBufferSwitcher", and the corresponding action that invokes it. (Alan Ezust)
- New method: TextArea.goToEndOfCode() (Gordon Hollenbeck #2646484).
- Removed deprecated TextAreaUpdate EBMessage. Use EditPaneUpdate instead. (Alan Ezust)
- Moved EditorExiting ebmessage earlier, before the unloading of plugin jars so plugins can catch it and act appropriately during shutdown. (Alan Ezust)
- Added support for undo-aware plugins:
- - A new interface: org.gjt.sp.jedit.buffer.BufferUndoListener This interface defines a listener that gets notified whenever undo/redo are performed on a buffer. The listener can be added to / removed from a buffer using: JEditBuffer.addBufferUndoListener(BufferUndoListener) JEditBuffer.removeBufferUndoListener(BufferUndoListener listener)
- - New methods in JEditBuffer: getUndoId(), canUndo(), canRedo() getUndoId() can be used during buffer content changes to find which changes are included in the same undo operation. The method returns a different undoId for each undo operation, and all changes included in the same undo operation get the same undoId. The other two methods return true if more items exist in the undo/redo list, respectively.
- New method: FoldHandler.getPrecedingFoldLevels - allows a fold handler to specify fold levels of lines preceding a line whose content has changed, to support patch #2846169, which makes the fold levels of blank lines depend on the first non-whitespace-only line following them. (Shlomy Reinstein)
- Editing
- "try" keyword added to erlang edit mode (patch #2769870) (Chepel)
- added assembly-agc (Apollo Guidance Computer) edit mode (patch #2848519) (Jim Lawton)
- added assembly-ags (Apollo Abort Guidance System) edit mode (patch #2848519) (Jim Lawton)
- added binsource-agc (Apollo Guidance Computer Binary) edit mode (Jim Lawton)
- Ruby edit mode updated (patch #2846453) (Suraj Kurapati)
- Added *.sv (System Verilog) extension to verilog edit mode (feature #2814425) (Matthieu Casanova)
Changes for v4.3 Pre 15 - v4.3 Pre 16
- Thanks to Björn "Vampire" Kautler, Kazutoshi Satoda, Dakshinamurthy Karra, Matthieu Casanova, Alan Ezust, Bernhard Walle, Shlomy Reinstein, Greg Merrill, Jeff Robertson, Kevin Hunter, and Eric Berry for contributing to this release.
- Bug Fixes
- When the bufferSet were not sorted it was possible to have two time the same buffer in a bufferSet (Matthieu Casanova)
- When changing the antialiasing mode to none, jEdit do not need to be restarted anymore (patch #2115400) (Dakshinamurthy Karra)
- The standalone textarea reloads the properties of the buffer when properties are changed (patch #2115400) (Dakshinamurthy Karra)
- When the close dialog is open with a list of dirty files, if one of those files is closed in jEdit by another thread, selecting will remove the file from the dialog (#2129419) (Matthieu Casanova)
- It is not possible anymore to open more than one clean untitled buffer in a bufferSet (Matthieu Casanova)
- Closed buffers were often kept in memory. (Kazutoshi Satoda)
- Error "Invalid screen line count" was shown when scrolling in a compound edit. (SF.net patch #1990960 - Kazutoshi Satoda)
- Folded lines sometimes became invisible after breaking the fold structure; like explicit fold markers, or indents. (SF.net patch #1999448 - Kazutoshi Satoda)
- Fixed char escape in shellscript (#2080891) (Kevin Hunter)
- When closing a view or an EditPane, the dirty buffers of it's bufferSet are now added to the previous EditPane (#2091052) (Matthieu Casanova)
- A memory leak fixed in the Activity Log panel (#2100926) (Matthieu Casanova, Kazutoshi Satoda)
- When starting jEdit without a settings directory an error happened when saving backup of setting files (Matthieu Casanova)
- The action on new bufferSet creation was not stored correctly in properties causing sometimes NPE (Matthieu Casanova)
- When a bufferSet is sorted, dragging a buffer in BufferTabs plugin was not possible (#2100690) (Matthieu Casanova)
- # 1519924 - Pressing escape in Path: field gets rid of dock window. (#1854542 - Jeff Robertson - jefftbob)
- Fixed occasional input problems after switching application focus. (SF.net bug #2093501, #1650718 - Kazutoshi Satoda)
- Numpad keys (ADD, SUBTRACT, etc) had been not bindable since 4.3pre13. (SF.net bug #1936714 - Kazutoshi Satoda)
- When launching jEdit with some files in the command line if the bufferSet was not global, the files were opened but not visible in the editPane (Matthieu Casanova)
- #1766853: View is not plain with -newplainview on first launch. '-newplainview' now works also when jEdit is not running. (Shlomy Reinstein)
- Fixed the released size shown by jEdit.showMemoryDialog() which was wrong when GC compacted the total heap size. (Kazutoshi Satoda)
- Fixed a long delay (typically 7-10 seconds) when showing the context menu of the text area or the drop down of a history text field the first time. This long delay was experienced mostly on Windows, and was caused by the call to GraphicsDevice.getConfigurations()
- The search and replace regex can now match an empty string. (SF.net bug #1671312 - Matthieu Casanova, Shlomy Reinstein, Kazutoshi Satoda)
- Some regex replace, like "\b" -> "|", falled into infinite loop. (Kazutoshi Satoda)
- Fixed an exception when searching within a selection for the regexp '$', if the last selection line is empty. (#2173112) (Shlomy Reinstein)
- Replace in selection which ends at middle of line for regex which ends with "$" could wrongly match the end of selection. (Kazutoshi Satoda)
- When splitting the view, using editpane scope for bufferSet the new editPane contained all buffers instead of having only buffers from the active EditPane (#2152509) (Matthieu Casanova)
- killring.xml or other XML files could be corrupted with control characters. (Kazutoshi Satoda)
- BeanShell codes could access non-public members by default. (Kazutoshi Satoda)
- Miscellaneous
- Disabled the MacOS plugin by default for now. (Björn "Vampire" Kautler)
- Added the absolute caret position in the caret status of the status bar (Matthieu Casanova)
- Added a widget for the statusbar that displays the length of the current selection (feature #1912735) (Matthieu Casanova)
- Moved buffer list sorting options from General to View Option Pane with other bufferset options. (Alan Ezust)
- Enabled reverse regex search. (SF.net patch #1923613 - Greg Merrill, Kazutoshi Satoda)
- New option in saving/backup: Never mark untitled buffers dirty. Related to that, buffers with length=0 never marked dirty. (request # 2068307 - Alan Ezust)
- New option in saving/backup: Calculate MD5 hash to see if the file as loaded from disk is the same as what is in the buffer. (Request # 2077326 - Alan Ezust, Kevin Hunter, K. Satoda)
- New action new-file-in-mode, which opens a dialog listing the available modes, the user can select one and a new file is created under that mode. (SF.net patch #1829669 - Eric Berry)
- Removed own back buffers for textarea, which were meant to speed up painting textarea, because the effect seemed to be not noticeable and not stable over runtime environments, while it broke Background plugin (SF.net Plugin Bugs #1620694) and consumed much memory. (Kazutoshi Satoda)
- Improved rendering of complex text layout (like Indic text) in text area. (SF.net bug #981012 - Kazutoshi Satoda)
- Added some new encoding detectors which reads some lines at the top of file and search for encoding declaration pattern in regex. - html: finds "\bcharset=(ENCODING)" - python: finds "coding[=:]\s*(ENCODING)" (Kazutoshi Satoda)
- Abbreviated buffer path in MiscUtilities.abbreviate() Replaces homedir with tilde, and reverse-expands environment variables. (# 1910097 - Jakub Roztocil, Alan Ezust)
- Angle Brackets are now also matched from find matching bracket. (encorejane - # 1849215)
- ActionSet combobox in "add to context menu" is sorted and remembers previous selection. (Alan Ezust)
- Added right click popup menu to the Error widget in the status bar to clear all errors (feature #2122926) (Matthieu Casanova)
- Added two new fold styles: Square folds (Explorer style) and round folds (Scintilla style). Created a service to provide the fold painter, and a property to select the fold painter service to use. The fold style can be changed using a new option in Global Options -> Gutter. (feature #1747300) (Shlomy Reinstein)
- Changed the "HyperSearch_Results_to_Buffer" macro to include the results of all searches, not just the last one, and also the search matcher of each search, in order to be able to "import" the search results from the buffer later. Added a new "Buffer_to_HyperSearch_Results" macro that reads a buffer that was previously created by the "HyperSearch_Results_to_Buffer" macro, and possibly manipulated manually later, and imports the results from the buffer into the HyperSearch Results dockable. This macro handles the "regular expression" and "ignore case" options correctly.
- Added macro Editing/Toggle_Fold.bsh for toggling the current fold. (feature #2190064) (Shlomy Reinstein)
- Added a combo box to the Docking option pane (in the Global Options dialog) for selecting the set of dockables to configure (plugin / core / all). (feature #2199003) (Shlomy Reinstein)
- Removed a JVM option "-Xms64M" from installed startup commands/scripts, which consumed too much memory. (Kazutoshi Satoda)
- Docker Plugin features merged into jEdit Core
- New actions: View - Docking - Load|Save docking layout (of current mode) You can save named dockable layouts, analogous to Eclipse perspectives, on a global or per-mode basis. (Shlomy Reinstein)
- New action: View - Docking - Toggle Docked Areas. (Alan Ezust)
- API Changes
- A public field buffer in HyperSearchFileNode was removed. Use getBuffer() instead. (Kazutoshi Satoda)
- A new service, DockableWindowManagerProvider, makes it possible for plugins to offer alternate docking managers. (Shlomy Reinstein)
- Embedded textarea refactoring for better usability. Now a software that wants to use the jEdit's textarea must instantiate the class StandaloneTextArea, and for use in a jEdit's plugin JEditEmbeddedTextArea (patch #2096752) (Dakshinamurthy Karra)
- SearchMatcher#isMatchingEOL(), which was introduced at 4.3pre7, has been removed in favor of better fix for the problem. (Kazutoshi Satoda)
- Editing
- New cmake mode (patch #2011419) (Bernhard Walle)
- More patterns for shellscript filenames (# 2056778 - Kevin Hunter (hunteke))
- added htaccess keywords AuthBasicAuthoritative and AuthBasicProvider (#2108778) (Matthieu Casanova)
- Added some indent rules in shellscript.xml (Matthieu Casanova)
Changes for v4.3 Pre 13 - v4.3 Pre 14
- Bug Fixes
- SearchBar appear/disapper fixes (# 1894235 - elvez671) - addresses bug # 1887293
- Fixed NPE with tokenMarker in jEditBuffer.java (Ezust)
- Reworked fold expansions [patch #1945472], which addresses #1942313 and #1538715 (Andrey Khalyavin)
- Fixed NPE on SplashScreen init on NX and older X-window displays. (#1628432, #1930320 - ezust, marcelo vanzin).
- Fixed an ArrayIndexOutOfBoundsException when opening search dialog on a fresh install (#1913979) (Matthieu Casanova)
- When a digit is typed for a completion popup to select a completion, the digit was inserted after the completed word. (SF.net Bug #1931333 - Kazutoshi Satoda)
- SF Bug #1873290: perl heredoc syntax highlighting is broken Thanks to Valeri Mytinski for pointing out that it was fixable with the current code. :-) The mode parser wasn't honoring AT_LINE_START for end tags, so that is fixed. Also, add AT_LINE_START="TRUE" to the perl and shellscript heredoc rules' END tags. (Marcelo Vanzin)
- When typing quickly in the activity logs filter, some exceptions were happening (patch #1938174) (Dale Anson)
- Miscellaneous
- Edit History Text Clicking on "Previously Entered Strings" pops up a dialog that lets you edit previously entered strings (Joerg Spieler - 1818140)
- New Tango icon set (Seph M. Soliman - # 1755992)
- Change the behavior of the directory chooser dialog slightly. (SF Bug #1932733 - Marcelo Vanzin)
- When a file could not be loaded due to strict error about encoding, the file is now loaded permissively. (Kazutoshi Satoda)
- Editing
- Move_Lines_(Up|Down).bsh replaced by Dale Anson to handle edge conditions (#1915824)
- fortran.xml indentation fixed (patch # 1740179 - honestguvnor + Robert Schwenn)
- Rewritten latex.xml mode (Patch # 1928855 - Michael Schlotter)
- SF Patch #1845842: perl.xml qq([test) syntax higlighting broken The q and qr operators were being highlighted wrong. The right way to do it is kinda messy, though, requiring a separate delegate depending on which character was used to start the quoted sequence. Applied patch is very similar to one in SF.net, with fixes for handling escaped characters correctly. (Chris Petersen, Marcelo Vanzin)
- Comments and literals are now filtered before matching with regexps in indentNextLines, indentNextLine, unindentThisLine, and unindentNextLines. COMMENT(1-4) tokens are replaced by space so that they are ignored by autoindenting. Similarly, LITERAL(1-4) tokens are replaced by '0' which which means a simple integer literal in most programming languages. (Kazutoshi Satoda - SF.net Patch #1868690)
- Tweaks to deep indent: ignore anything inside comments and literals, so alignment is only appied to actual code. Also, deep indent rules, if enabled, should have precedence over the open/close bracket rules. (Marcelo Vanzin)
- SF Bug #1927869: Perl edit mode: qr/"/ breaks highlighting If was not really qr/"/, but qr!"!. Added "!" to list of allowed characters to delimit quote operators. (Marcelo Vanzin)
- API Changes
- New status bar api (Matthieu Casanova)
- Added a method getPermissiveTextReader() to the interface org.gjt.sp.jedit.io.Encoding. (Kazutoshi Satoda)
Changes for v4.3 Pre 12 - v4.3 Pre 13
- After some keystroke like alt+tab the numpad stopped working until another printable key is pressed (#1788460) (Matthieu Casanova)
- Windows installer now look for javaw.exe in SysWOW64 directory before in System32. This is required on 64-bit Windows XP and Sun's JRE(1.6.0u3) though 64-bit package is installed. Nothing is changed on 32-bit environment because it doesn't have SysWOW64 directory. (Kazutoshi Satoda - SF.net Bug #1849762)
- If the autosave file path do not exists, it is ignored silently. As soon as this path exists again it will work as it should (#1825720) (Kazutoshi Satoda)
- (Mac OS X only?) Fixed a focus problem with Unsaved Changes dialog. Textarea had focus when the dialog pop up. (Jeff Robertson - SF.net Bug #1779849, Patch #1852805)
- Files Changed on Disk dialog moved focus to textarea when a file is selected in the list. (Kazutoshi Satoda)
- A NPE fixed when creating and clearing a register quickly in a macro if the Registers view is open (Matthieu Casanova)
- When clearing a register, the listeners are now notified (Matthieu Casanova)
- If you delete a plugin, the plugins that depends on will be unloaded (after a confirmation) (Matthieu Casanova)
- Column cursor (zero width rectangular selection) is now kept after completion. Only the built in word completion (C+b by default) is changed. Other completions provided by some plugins are not changed. (Kazutoshi Satoda - SF.net Bug #1866836)
- Fixed a bug where screens were shown off-screen because of a typo in GUIUtilities.adjustForScreenBounds() (Björn "Vampire" Kautler)
- In the replace dialog, the replace string can now use capturing groups above 9 (#1834620) (Matthieu Casanova)
- Electric scrolling done where it should not (#1906301 - zoniie)
- untitled buffer were not closed with 2 views (#1869978) (Matthieu Casanova)
- When closing a dockable panel, the DockableWindowUpdate.DEACTIVATED message is sent (#1075058) (Matthieu Casanova)
- ScrollLineCount was not calculated correctly (#1906288, #1868923) (Matthieu Casanova)
- In a directory search, if you use a regex, it is tested before, before listing files (#1556663) Matthieu Casanova
- Center Caret On Screen now scrolls your document so your caret doesn't change. [ 1883809 - ezust ]
- [About jEdit] dialog is refined. It now performs smoother animation and fade out effect. (xlinuks)
- [Macros] Copying/cutting/moving/duplicating multiple vs. single lines [ 1849180 - encorejane ] renamed Move_Line_(Down|Up) to Move_Lines_$1, renamed (Copy|Cut)_Selection_Or_Line to $1_Lines new macros: Duplicate_Lines_(Above|Below)
- The VFS Browser has a new command to paste a file. After copying the path name of a file, you can paste it in any folder to copy the file (Matthieu Casanova)
- When opening the search dialog if no text is selected the searched string will be filled with the previous entered string (feature #1500938) (Matthieu Casanova)
- The Activity Log option panel now have a textfield filter (feature #1593375) (Matthieu Casanova)
- In the plugin manager, a new panel shows detailed informations about the installed plugins (Matthieu Casanova)
- SF Bug #1853797: perl syntax highlighting: broken '\' after var interpolation The rule for matching literals was wrongly highlighting perl variables. Fix is to use the same rule used in the main rule set to match those variables. (Marcelo Vanzin)
- Handling of /regexp/ in ruby mode is refined. (Kazutoshi Satoda)
- NOTE: If a regexp begins with a whitespace (including a newline), the beginning "/" is wrongly treated as a division operator. But such regexp is rare enough and one can use %r notations or write like "/\ ..." to force jEdit to treat it as a regexp.
- Added macro Files/Duplicate_Buffer.bsh It copies the current buffer in a new untitled buffer (Request #1849184) (Matthieu Casanova)
- Added macro Clipboard/Paste_Indent.bsh that paste and indent the clipboard (Request #1827083) (Matthieu Casanova)
- Improved auto indentation in Ruby edit mode. It now unindents things like else, end, require etc on the fly. (SF.net patch #1726646 - Jim Morris and Kazutoshi Satoda)
- Improved PHP edit mode (Daniel Hahler):
- handle "${foo}" (SF Bug 1818619) and other valid expressions in literal, backticks and heredoc blocks
- fix comment props for HTML in TAGS ruleset (C-e C-c/range-comment uses proper comment syntax there now)
- fix delegating back from various rulesets (OBJECT_PHP, ...) to PHP ruleset; includes fixed handling of comments
- fix matching of PHP vars (using SEQ_REGEXP instead of MATCH_FOLLOWING), so that it does not match "$foo\" completely; now uses the exact regexp for valid variable names
- add ruleset PHP_COMMENTS (re-factored)
- tpl mode: delegate {php} tags to PHP mode (Daniel Hahler)
- Added regex highlight in javascript mode (#1042013) (Matthieu Casanova)
- assembly-mcs51 mode was missing in the catalog (#1887865) (Matthieu Casanova)
- transact-sql (tsql) mode: Fix escaping in string literals (#1007881) and highlight identifiers (`foo`) as LITERAL2 (Daniel Hahler)
- Moved gnu.regexp out of jedit core and into the XSearch plugin.
- Added class AbstractContextOptionPane for plugins which want to provide a panel similar to jEdit's context menu editor. The API is sort of restrictive right now, but can be enhanced later, if needed. (Marcelo Vanzin)
- Added a new method View#setBuffer(Buffer, boolean, boolean). The third parameter "focus" specifies whether the textarea should request focus. (Jeff Robertson - SF.net Patch #1852805)
- Added a new method View#showBuffer(Buffer), which is similer with goToBuffer() but doesn't move focus to the textarea.(Kazutoshi Satoda, based on Jeff Robertson's patch #1852805)
- Some improvements are made in CompletionPopup.
- Eliminated possibe undesired effects of setKeyEventInterceptor() while the popup is not shown yet or already disposed.
- KeyEvents which are not consumed in keyTyped() now work as if they were passed to View.
- Added a new constructor which does not require a position. (Kazutoshi Satoda)
- Added org.gjt.sp.util.SyntaxUtilities that will contains some syntax methods most of them comes from GUIUtilities (Matthieu Casanova)
- A new interface JEditVisitor is added and implements the pattern Visitor. It can visit the views, edit panes and textareas using the method jEdit.visit(JEditVisitor) or View.visit(JEditVisitor) (Matthieu Casanova)
- New FilteredListModel class that helps creating a filtered JList (Matthieu Casanova)
Changes for v4.3 Pre 11 - v4.3 Pre 12
- When removing a plugin that is not loaded, it's declared jars are now removed too (Matthieu Casanova)
- jEdit will not crash anymore if a beanshell.jar is already in the classpath (#893349) (Matthieu Casanova)
- The BufferHistory is now thread safe (#1808797) (Matthieu Casanova)
- Parsing XML files now uses correct encoding (which is declared in its source or UTF-8 by default) instead of the system default encoding. (Kazutoshi Satoda)
- NOTE: Related to this fix, some XML files which are saved by older jEdit may not be correctly loaded. They used the system default encoding and didn't declare the encoding (meaning they should use UTF-8). recent.xml, perspective.xml and registers.xml are known (and fixed).
- Changed the encodings of recent.xml, perspective.xml and registers.xml to UTF-8 to allow characters which are not covered by the system default encoding in them. (Kazutoshi Satoda)
- SF Bug #1764090: Slight Error in jedit.desktop file There was actually an error in jEdit.java that caused it to hit an NPE when processing URLs provided in the command line. Fix it by not trying to find an open buffer when trying to parse an URL in the openFile() method. (Marcelo Vanzin)
- SF Bug #1729313: BeanShell Error on Loading jEdit 4.3pre9 We need to force the default encoding to UTF-8 when running startup scripts, otherwise jEdit will fail to run the scripts shiped with it. On the flip side, if the user wants to use a different (non-compatible) encoding that is not trivially detected (such as anything with a BOM), a buffer-local property defining the encoding should be provided. (Marcelo Vanzin)
- registers.dtd now allow zero ENTRY element in ENTRIES. It required at least one ENTRY while jEdit creates zero ENTRY case in registers.xml. (Kazutoshi Satoda)
- Fix escape handling in the syntax highlighter. The handling of escape rules is now much more simplified: it's not only a lot less code but it's much easier to understand what it's actually doing. This fixes the following bugs: 1812205, 1807549, 1760646 and 1600458 (although the last one is fixed as a side effect, not because the root cause of the bug was fixed.) (Marcelo Vanzin)
- Binding simple "+" (not VK_ADD nor VK_PLUS) as a shortcut is now possible. (SF.net Bug #1166530 - Kazutoshi Satoda)
- Windows installer now prefer the path of javaw.exe in system directory to JDK/JRE directory, which was dependant on Java's version. Now you can update Java without reinstalling jEdit. (SF.net bug #1227497 - Kazutoshi Satoda)
- Manually changed edit mode was reset by the mode in recent files at saving the buffer. (Kazutoshi Satoda)
- Explicit "mode" value in props for jEdit.openFile() or jEdit.openTemporary() was overwritten by the mode in recent files. (Kazutoshi Satoda)
- After an hypersearch, if a result is on the caret line, it is automatically selected in the tree (Matthieu Casanova)
- If you remove the last node of the HyperSearch dockable, it will hide (Feature Request #1593526) (Matthieu Casanova)
- A new option introduced in Saving & backups option panel to turn off autosave of untitled buffers (Feature Request #1520769) (Matthieu Casanova)
- New option in General Options: Check for File Change upon. Many options to customize when jEdit checks for file changes, especially useful when many files are mounted on remote/slow file systems. (Joe Walp - Patch # 1768638)
- A new button is introduced in the plugin manager : "Find Orphans". It will find the jars that are in your jars directory and do not belong to any plugin. Be careful some plugins like SQL can use jars without declaring them like the JDBC drivers (Matthieu Casanova)
- A new option is introduced in the general option panel. Now jEdit will ask the user if he wants to stop hypersearch if a result count limit is reached. By default the count is 1000. It checks the limit before each file so it is possible that a few more results are found before asking (Matthieu Casanova)
- The release date in the plugin install panel is now aligned to the right (Matthieu Casanova)
- Some enhancements to the IDL mode, and made some definitions in the C mode more reusable. (Marcelo Vanzin)
- NO_ESCAPE is now deprecated and ignored by the parsing engine. ESCAPE is now a valid attribute for SPAN and SPAN_REGEXP rules. All mode files updated to follow the new escape rule semantics. (Marcelo Vanzin)
- Use MARKUP for tags in HTML mode and delegate css "style" attributes to the CSS mode. (Daniel Hahler - Patch # 1783634)
- Improved ml mode. (Lucas Dixon - Patch # 1834109)
- The bsh package was refactored to org.gjt.sp.jedit.bsh, all plugins that uses classes from this package will have to be repaired. This was necessary to fix bug (893349) (Matthieu Casanova)
- A new GUIUtilities.listConfirm() method that returns also the selected items in the list (Matthieu Casanova)
- JEditBuffer.undo() and JEditBuffer.redo() now takes a org.gjt.sp.jedit.textarea.TextArea as parameter (Matthieu Casanova)
- Cleaned up org.gjt.sp.jedit.buffer.KillRing to improve independence from jEdit's core. This narrowed a few parts of API. This can break some existing macros or plugins.
- It no longer has any protected data field. Use public or protected methods including a new protected method reset() instead.
- KillRing.KillRingHandler was removed because it should be a part of the core which does save the killring into a XML file. It became a private part of the core. (Kazutoshi Satoda)
- Dropped some concrete classes from API. They are just implementation details of the core. Use more abstract base classes or interfaces instead.
- org.gjt.sp.jedit.bufferio.JEditKillRing
- org.gjt.sp.jedit.buffer.KillRing
- org.gjt.sp.jedit.JEditMode
- org.gjt.sp.jedit.Mode
- org.gjt.sp.jedit.JEditRegisterSaver
- org.gjt.sp.jedit.RegisterSaver
- org.gjt.sp.jedit.JEditRegistersListener
- org.gjt.sp.jedit.RegistersListener (Kazutoshi Satoda)
- Added a new method ModeProvider.getModeForFile() that will try to find an appropriate mode for a filename (Matthieu Casanova)
- Added a new method EditPane.initPainter() that can be used when using a TextArea in the core or a plugin (Matthieu Casanova)
- Added a new method GUIUtilities.getShortcutLabel() that makes a label string to show users what shortcut are assigned to an action.
Changes for v4.3 Pre 10 - v4.3 Pre 11
- NPE in scroll code when deleting some content with no wrap but some closed folds (#1763932) (Matthieu Casanova)
- If the cached plugin list xml is broken, it is deleted and reloaded (Matthieu Casanova)
- Fixed a bug when calling a macro during macro recording (#1765738) (Matthieu Casanova)
- When removing content in a buffer when having softwrap on a NPE was happenning in some case (#1775258) (Matthieu Casanova)
- When changing download mirror, the plugin list cache was not refreshed (Matthieu Casanova)
- Reload/ReloadAll now ignores buffers with the UNTITLED flag set (instead of NEW_FILE). (#1720572) (Matthieu Casanova)
- SF Bug #1760646: perl colorization Escape rules for child rule sets were being ignored. Since the perl mode doesn't define a top-level escape char, escaped sequences inside strings were not being properly recognized. Fix looks for the contextual escape rule before trying to delegate to the parent's escape rule. (Marcelo Vanzin)
- Explicit folds are now expanded when deleting the '{' at the fold start (#1193683) (Matthieu Casanova)
- Folds are now expanded when inserting new line at the fold start, and when breaking explicit fold start (#950961) (Matthieu Casanova)
- The format-paragraph action was not recorded in macros (#1726207) (Matthieu Casanova)
- Changed the encoding of "history" file to UTF-8. (SF.net Bug #1691638 - Kazutoshi Satoda)
- Fixed ArrayOutOfBoundsException when adding explicit fold at the end of a buffer with a mode that has a "line comment" property (#1560584) (Matthieu Casanova)
- 1755430 - HistoryTextField looks bad with native GTK+ LnF (Seph M. Soliman)
- SF Bug #1742250: use of DELEGATE in mode rules can cause rules to be missing. (Daniel Hahler)
- Failure of autosave which was silently ignored is now handled and reported. (SF.net Bug #1775281 - Kazutoshi Satoda)
- IllegalCharsetNameException was not handled. It could be thrown for XML encoding declaration or [Reload with Encoding] action. (Kazutoshi Satoda) (This bug was reported by Andre Rudlaff as SF.net Patch #1789707)
- Removed hard coded "C:\Program Files" from Java based installer. It now uses %ProgramFiles% (a builin environment variable) instead. (SF.net Bug #917669 - Kazutoshi Satoda)
- Changed the default mirror from NONE to switch. (bug #1757229) (Björn "Vampire" Kautler)
- Fixed the "Evaluate Buffer in BeanShell" macro so that it does what its description states, that is evaluating the buffer in current state. Before the macro used the last saved state. Additionally the result of the toString() method of the return value of the scirpt, if any, is added to the newly created buffer in a new line. (bug #1554769) (Björn "Vampire" Kautler)
- Fixed inconsistent indentation which happened when adjacent lines both match with "unindentThisLine" pattern and they should be placed at first column. (Kazutoshi Satoda)
- Dropping files was broken when using Gnome Nautilus (patch #1795592) (xlinuks)
- ViewUpdate.CLOSED is now sent for all views. Previously, the view from where the exit request originated would fail to send a ViewUpdate.CLOSED message. (Marcelo Vanzin)
- New Interface: DockableWindow.java, an interface for jEdit dockable windows.
- When clearing all hypersearch results the HyperSearch Results dockable panel will hide (feature #1593526) (Matthieu Casanova)
- The release note of the plugins in the PluginManager install panel now displays html (Matthieu Casanova)
- PluginManager InstallPanel: All columns are sortable in either directions (#1781853 - Joerg Spieler)
- When dropping a directory on the textarea, the VFSBrowser will now browse to it (Matthieu Casanova)
- A new action "edit-syntax-style" that opens a dialog to change the token under the caret (patch #1788847) (Shlomy Reinstein)
- The plugin install panel now has a sortable column containing the release date of the plugin (Matthieu Casanova)
- When editing toolbar the dialog now remembers the last action set (#1538743) (Matthieu Casanova)
- The shortcuts option panel now have a textfield filter (Matthieu Casanova, Shlomy Reinstein)
- The recent files now remembers the edit mode (feature #1593543) (Matthieu Casanova)
- The Deb Ant Task now works with Ant 1.7 too. (Björn "Vampire" Kautler)
- mprovements to PHP edit mode (patch #1740618, bugs #1716134, #1504855) (Daniel Hahler)
- Added RFC edit mode (Matthieu Casanova)
- reST mode: improved handling of comments and literal blocks (SF: #1748471) (strank)
- Added HLSL edit mode (SF: #1724921) (Adam Sawicki)
- Added CLIPS edit mode (SF: #1745999) (Orhan Alkan)
- Added Template Toolkit edit mode (SF: #1738800) (Krassimir Berov)
- Added macros Editing/Open_Line_(Above|Below).bsh (Scott LeBaron) (sf: 1746798)
- Added "self" keyword in python edit mode (Matthieu Casanova)
- Added the "indent" properties to pl-sql edit mode (Matthieu Casanova)
- new class: org.gjt.sp.jedit.msg.VFSPathSelected EBMessage gets sent whenever a node in the VFSBrowser is clicked. (#1730075 - Alan Ezust)
- org.gjt.sp.jedit.gui.CompletionPopup has been extracted to provide basic UI of word completion. (SF.net patch #1752044 - Kazutoshi Satoda).
- org.gjt.sp.jedit.io.VFS.BROWSE_CAP is not deprecated anymore and browseable VFS must define this property (Matthieu Casanova)
- A new boolean attribute, 'MOVABLE', can now be specified for
tags in the 'dockables.xml' file. (1782091 - Shlomy Reinstein) - A new interface, DockableWindow, is introduced for MOVABLE dockable windows to be notified before their docking position is changed. (1782091 - Shlomy Reinstein)
- The BufferListener has a new method preContentInserted() (Matthieu Casanova)
- New FilteredTableModel class that helps creating a filtered JTable (Matthieu Casanova, Shlomy Reinstein)
Changes for v4.3 Pre 8 - v4.3 Pre 9
- avoid NPE from getIndentRules (patch #1611766) (Kazutoshi Satoda)
- bufferio operations are now exception-safe (patch #1597168) (Kazutoshi Satoda)
- Encoding errors properly reported on save (patch #1601830) (Kazutoshi Satoda)
- Filter Box lose focus bug (patch #1608948) (kuljc)
- Fixed the broken quick copy behaviour (Björn "Vampire" Kautler)
- Fixed the wrong text in SearchAndReplace Dialog (bug #1592529) (Björn "Vampire" Kautler)
- Fixed wrong highlighting of multiline strings in cobol editmode (bug #785290) (Björn "Vampire" Kautler)
- Plugins in plugins options are now sorted case-insentively (bug #1593410) (Matthieu Casanova)
- Fixed the not resolved IMPORTs in IMPORTs (bug #1569735) (Björn "Vampire" Kautler)
- Fix SF Bug #1596756: Annoying problem with file system browser in 4.3pre7 When reopening the "recent" files on startup, a buffer might fail to load (because, e.g., it's on a FTP server and the user canceled the password dialog). So ignore the buffer if it's null when restoring the view. (Marcelo Vanzin)
- Fix SF Bug #1590250: Bad EOF handling code in CBzip2InputStream The code seems to have other error handling problems, but at least now it doesn't compare a char to -1. It would be interesting to see what happens if we have a corrupted jar file... (Marcelo Vanzin)
- Fix SF Bug #1571752: 'Add Explicit Fold' in PHP mode - wrong comments Be smarter when inserting explicit folds in mode boundaries by trying harder to use the comment characters for the mode of the text that is being wrapped. Also do some tweaking for when to insert new lines and when not to. (Marcelo Vanzin)
- Fix SF Bug #1594910: Indentation of Javascript embedded in HTML is broken The fix is more generic than what the bug suggest. The indent rules were being kept locally by each buffer, and reflected the "top level" mode's rules. So rules for sections of the buffer that were delegated to other modes were ignored. The fix keeps the indent rules in the mode instance, and the buffers retrieve the context-sensitive rules when applying auto-indentation. (Marcelo Vanzin)
- When deactivating a plugin if the VFS Browser was open but it's menubar disabled, a NPE occured (#1593392) (Matthieu Casanova)
- Fixed a bug I introduced with the new HASH_CHAR handling (bug #1600380) (Björn "Vampire" Kautler)
- Fixed another bug with the new HASH_CHAR handling (bug #1600401) (Björn "Vampire" Kautler)
- Fixed precedence of Recent Files List caretposition over commandline supplied caret position (Björn "Vampire" Kautler)
- SearchMatcher in SearchAndReplace cannot match empty Strings anymore (#1601718) (Matthieu Casanova)
- If you use two stage save and your file is writeable but in a folder where you cannot write, a dialog will ask you if you want to save using normal method (#1609303) (Matthieu Casanova)
- Fixed that ESCAPE sequence of RULES tag couldn't appear at the beginning of a rule. Now this is possible. Also added documentation about the ESCAPE attribute. (Björn "Vampire" Kautler)
- Hypersearch now report occurences count and line count (#1565447) (Matthieu Casanova)
- Several exceptions fixed in plugin manager after update or remove plugins (Matthieu Casanova)
- When simplified keyboard handling was off, typing Alt+F o to open a file, the o was also written in the textarea. (#1593359) (Matthieu Casanova)
- VariableGridLayout resized Components to sizes bigger than their maximum size, now it resizes it only up to its maximum size and positions the Components according to their alignmentX/alignmentY values if the cell is bigger than the Component's size. (Björn "Vampire" Kautler)
- Horizontal scrollbar in the textarea was not always updated (#1534016, #1617483) (Matthieu Casanova)
- In hypersearch when switching to flat nodes, the full path is displayed correctly (#1593523) (Matthieu Casanova)
- The VFS Browser filter was not working as expected (#1617509) (Matthieu Casanova)
- When reloading a buffer, the markers were not saved for each EditPanes (Matthieu Casanova)
- When closing an untitled buffer is is removed from the CaretInfo map of the EditPanes (Matthieu Casanova)
- When a buffer is renamed the key is changed in the CaretInfo map of the EditPanes (Matthieu Casanova)
- Memory tooltip in status bar reports wrong values (#1538051) (Matthieu Casanova)
- Better handling of plugin optional dependencies (Matthieu Casanova)
- Fixed some cursor changes when dragging the dockable panel split bar (Matthieu Casanova)
- New edit mode: quake.xml
- Updated TCL edit mode (Jean-Francois Larvoire)
- Updated Lilypond edit mode (Bertalan Fodor)
- Fixed some invalid mode files (Björn "Vampire" Kautler)
- Updated some mode files that were still in jEdit 4.0 syntax (Björn "Vampire" Kautler)
- Perl edit mode - support for fully qualified variable names like $Some::Module::test. (Martin Raspe)
- Updated python edit mode to unindent lines after "pass" (Matthieu Casanova)
- Better highlighting of function calls in makefiles. (Marcelo Vanzin)
- ufferSwitcher has a hovertip to give you full filename (request # 1628053) (Alan Ezust)
- Textfield for filtering recent files menu (Patch # 1546200) (Joerg - spj)
- FSB deletes directories recursively now (bug #1593389) (patch #1593900) (Akber Choudhry)
- Added a FIRST_LINE_GLOB to the "awk" mode in modes catalog (fr #1582241) (Björn "Vampire" Kautler)
- Incremental searchbar now use the invalid syntax color to show if the searched text was found (Matthieu Casanova)
- FR #1599024: add a submenu to the file menu that allows reloading the current buffer with a specific encoding.
- HASH_CHAR in mode-files is now optional and multicharacter (Björn "Vampire" Kautler)
- HASH_CHARS got invented for mode-files as alternative to HASH_CHAR, whereby HASH_CHARS lists possible first characters of the matched result literally (Björn "Vampire" Kautler)
- Fixed some wrong documentation and added some new about HASH_CHAR and HASH_CHARS (Björn "Vampire" Kautler)
- SplashScreen change : more step added for progress bar and it tells now what jEdit is doing (Matthieu Casanova)
- When closing the current buffer, if there is only one buffer, untitled and not dirty it is not closed (not needed since another one would be created) (Matthieu Casanova)
- The Files change dialog has now an ignore button to set the autoreload and autoreloaddialog flags to false (Matthieu Casanova)
- VariableGridLayout, two new capabilities: it can take minimum and maximum sizes of a Component into account when distributing free space and you can supply distances to the borders of the Container. The new capabilites are useable by the two new constructors. For more information, see the JavaDoc documentation. (Björn "Vampire" Kautler)
- Reload/ReloadAll now ignores buffers with the NEW_FILE flag set. This was causing IO error messages when the Untitled buffers could not be reloaded. (Nicholas O'Leary)
- More infos about the socket connection when the plugin manager updates it's plugin list (Matthieu Casanova)
- Now the multiple selection and rectangular selection flags are saved for each buffer on each edit pane. So you can now in a textarea edit a buffer using rectangular selection, and use normal selection with another one (Matthieu Casanova)
- Option panes are now in a JScrollPane (feature #1593735) (Matthieu Casanova)
- New option for the File System Manager : use default icons. If you uncheck the checkbox, some custom icons can be used. At this time only local file system have custom icons (feature #1593464) (Matthieu Casanova)
- Buffer saving is now buffered, it changes everything with large files (Matthieu Casanova)
- jEdit can now use continuous layout in it's JSplitPane. You can change this option in the Appearance panel (#1638642) (Matthieu Casanova)
- The update panel of the plugin manager now shows the installed version and the version existing on the plugin central server (Matthieu Casanova)
- Refactored the manually implemented HashSet of LinkedLists to use the Java Collections HashSet and ArrayList. Therefore the ParserRule.next and the ParserRuleSet.getRules(char) got deprecated in favor of ParserRuleSet.getRules(Character) (Björn "Vampire" Kautler)
- Deprecated JEditBuffer.isElectricKey(char). Added JEditBuffer.isElectricKey(char, int) to replace it. (Marcelo Vanzin)
- Deprecated some of the ParserRule.createXXX() methods which accepted only one character HASH_CHAR, while introduced new ones that accept whole Strings. Additionally new ones for accepting HASH_CHARS got added. (Björn "Vampire" Kautler)
- SearchDialog.preloadSearchDialog(View) is deprecated, this is not necessary on our big computers and JVM with JIT (Matthieu Casanova)
- VariableGridLayout has two new constructors to use the new capabilites. For more information see section Miscellaneous. (Björn "Vampire" Kautler)
- PluginManager.getPluginList() is not public anymore. It was not useful since the PluginList class cannot be accessed outside of it's package (Matthieu Casanova)
- MiscUtilities.moveFile(File, File) is deprecated, use IOUtilities.moveFile(File, File) instead (Matthieu Casanova)
- Plugin API : now the EditPlugin has two new methods : EditPlugin.getPluginHome() that will returns the path where the plugin should write it's data (it can return null if you run with nosettings). It is a folder build like that jEditSettingsDirectory/plugins/pluginClassName ex : ~/.jedit/plugins/sidekick.SidekickPlugin I hope this will help to make some cleanup in the jEdit settings directory folder (this folder is not created by jEdit, plugin developers must create it themselves) The second method is EditPlugin.usePluginHome() that plugin developers should overload to tell jEdit if they use this new folder The default is false (Matthieu Casanova)
- VFSFile.getIcon() and VFSFile.getDefaultIcon(). The getIcon() method can be override to use a custom icon for some VFS (Matthieu Casanova)
- Added org.gjt.sp.jedit.msg.PropertiesChanging; an EditBus message that is sent right before the global options dialog is shown, to allow plugins to flush any data that might be used by the option panes. (Marcelo Vanzin)
- OptionsDialog.init(String,String) was made protected (was private). (Marcelo Vanzin)
- New GUIUtilities.initContinuousLayout(JSplitPane) method that will init the JSplitPane with the appearance.continuousLayout property. It can be used by plugins that has JSplitPane when receiving a PropertiesChanged
Changes for vPre7 - v4.3 Pre 8

