JEDIT 4.3 VERSION HISTORY

{{{ Version 4.3pre4

{{{ Syntax Highlighting 

- TypoScript syntax highlighting (Neil Bertram).
- Myghty template syntax highlighting (Ollie Rutherfurd)
- JavaCC syntax highlighting (Dale Anson)

}}}
{{{ API Changes

- New BufferChanging class, extends EditPaneUpdate with a getBuffer()
  method which returns the about-to-be opened buffer.

}}}
{{{ Miscellaneous

- GUIUtilities patch 1467821 for dual-head displays applied (Nathan Blair)

- patch 1467311 applied (Peter Adolphs) Restore previously open files on startup

- Macro list is now sorted so that directories show up first 
  (carmine.lucarelli)

- jEdit now supports LCD Subpixel Anti-Aliasing (JDK 1.6 only). 
  Global Options -> TextArea -> Anti-Aliased Smooth Text -> Subpixel
  (Onur Turgay / Alan Ezust)

- jEdit will ask for confirmation before overwriting read only files.
  If yes, it will activate two stage save if the VFS is capable of
  renaming files. If no, the file will not be saved (Matthieu Casanova).

-IO progress monitor are indeterminate if the maximum value of the WorkThread is 0
 (Matthieu Casanova)

-Hyper search result panel now indicates the processed files
 (Matthieu Casanova)

}}}
{{{ Bug Fixes

- Fix a deadlock when using directory search (Slava Pestov).

}}}

}}}


{{{ Version 4.3pre3

Thanks to Bertalan Fodor, Bjrn 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

- JARClassLoader now reports package information (Bertalan Fodor).

- A new macro, SplitPane grow, was added to the macros/interface
  directory. (aezust)

- A new macro, ToggleHeaderSource, for C/C++ editing.  (aezust)

- 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. (aezust)
  plugins that use this feature: infoviewer, xsearch, and optional.

- Updated "Display Abbreviations", "Hex Convert" and "HyperSearch
  Results to Buffer" macros.

- Updated "Insert Buffer Properties" macro (Bjrn 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. (aezust)

-  A new EditBus message has been introduced: EditPaneUpdate.CHANGING
        for Navigator (or other EBPlugins) to catch caret positions
        just before buffers are changed.  (aezust)

-  A new EditBus message has been introduced: BufferUpdate.CLOSING
        for EBPlugins to catch events just before buffers are closed. 
		(aezust)

- 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:

