PageRenderTime 53ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/jEdit/tags/jedit-4-2-pre4/doc/CHANGES.txt

#
Plain Text | 1165 lines | 792 code | 373 blank | 0 comment | 0 complexity | 18821d9916a72246377dda1a8978b98f MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. JEDIT 4.2 VERSION HISTORY
  2. {{{ Version 4.2pre4
  3. Thanks to Chris Morris, Marcelo Vanzin, Ryan Fowler and Ryan Grove for
  4. contributing to this release.
  5. {{{ Syntax Highlighting
  6. - Updated NSIS2 syntax highlighting (Ryan Grove).
  7. - Modes from the user catalog file are checked first for a matching
  8. first line or file name glob (Ryan Fowler).
  9. - Updated Ruby syntax highlighting (Chris Morris).
  10. - Updated Pike syntax highlighting (Peter Lundqvist).
  11. }}}
  12. {{{ Scripting
  13. - BeanShell 1.3b2 is now included. Improvements since 1.3a1 (which was
  14. included with jEdit 4.2pre3) include:
  15. - Properties style auto-allocation of variables.
  16. // foo is initially undefined
  17. foo.bar.gee = 42;
  18. print( foo.bar.gee ); // 42
  19. - Scripted class support (with class keyword). Limitations:
  20. - Scripted classes may only extend other scripted classes
  21. - implement clauses are currently ignored
  22. - All Scripted classes appear as type bsh.This - they are
  23. effectively the same type of object.
  24. - The bsh.system object which is shared across Interpreter instances
  25. has been renamed "bsh.shared". For backwards compatability it is
  26. still referenced as bsh.system as well.
  27. - All scripted objects now implement the standard object protocol of
  28. toString(), hashcode() and equals().
  29. - Various bug fixes and optimizations.
  30. - Actions and dockables are now invoked in their own temporary
  31. namespace. This prevents memory leaks in code like this:
  32. antfarm = wm.getDockable("antfarm");
  33. antfarm.foo();
  34. // reference to 'antfarm' remains in global namespace, possibly
  35. // after the dockable is closed
  36. }}}
  37. {{{ Miscellaneous
  38. - Removed the "synchronized scrolling" option which hasn't actually
  39. worked since 4.2pre1 or 4.2pre2. If you liked this feature, you can
  40. write a plugin that does the same thing pretty easily.
  41. - The kill ring is saved between editing sessions.
  42. - The Latest Version plugin now shows the latest stable and development
  43. version numbers, previously it only showed the latest development
  44. version.
  45. }}}
  46. {{{ Optimizations
  47. - Faster regular expression search and replace.
  48. }}}
  49. {{{ Bug Fixes
  50. - Changing the no modifier click action for the gutter didn't work.
  51. - The 'jedit' script was not being created on Unix.
  52. - Fixed AltGR key on certain JVMs that send it as Control+Alt.
  53. - Regular expression replace didn't work with certain regular
  54. expressions.
  55. - When deep indent is on, indentation of code like this is handled a bit
  56. better:
  57. if(foo
  58. bar)
  59. {
  60. However it is still not 100% correct.
  61. - Added an option for the "deep indent" setting to the Editing option
  62. pane.
  63. - "Save as" did not update the buffer map properly if buffer sorting was
  64. switched off, or if symbolic links were involved.
  65. - Heredocs in PHP are <<< not <<.
  66. - Position tree update code had several problems, and this caused hangs
  67. and various exceptions.
  68. - jEdit would do a two-stage save for settings files, but it would still
  69. delete the old file if the save failed, thus settings could be lost of
  70. the disk is almost full, etc. Now, files are only overwritten if the
  71. new settings are saved successfully.
  72. - Fixed possible NullPointerException in Shortcuts option pane when a
  73. newly-installed plugin contains dockables but no actions.
  74. - Using the Global Options dialog box or anything else that calls
  75. jEdit.propertiesChanged() no longer clears the kill ring.
  76. - Escape sequences in the replace string (\n, \t) didn't work properly.
  77. - When viewing the favorites: URL, the full path of the entries is now
  78. shown, just like in 4.1.
  79. - The Favorites menu in the file system browser was sorted by entry
  80. name, but full paths were listed, so it looked like there was no order
  81. to it at all.
  82. - Fixed bogus DIRTY_CHANGED messages sent when loading a buffer with
  83. persistent markers.
  84. - The numeric keypad didn't work on JDK 1.3.
  85. - Apparently OS/2 Java has a broken File.getCanonicalPath()
  86. implementation, so we don't call this method on that OS.
  87. - Reload command now works with Untitled files.
  88. - If a virtual file system threw an exception other than an IOException,
  89. the file system browser would refuse to perform further operations
  90. with an "I/O already in progress" message.
  91. - Fixed Perl syntax highlighting for variable names that began with
  92. s, m, q or tr followed by a non-alphanumeric character.
  93. }}}
  94. {{{ API Changes
  95. - SearchMatcher.nextMatch() returns an instance of SearchMatcher.Match
  96. instead of a two-element integer array.
  97. - Added jEdit.getPlugin(String name, boolean loadIfNecessary) method
  98. (Marcelo Vanzin).
  99. }}}
  100. }}}
  101. {{{ Version 4.2pre3
  102. Thanks to Brad Mace, Brant Langer Gurganus, Christoph Daniel Schulze,
  103. Jonathan Revusky, Ken Turner, Kris Kopicki and Ollie Rutherfurd for
  104. contributing to this release.
  105. {{{ Editing
  106. - The kill ring no longer shows duplicate entries, or entries that
  107. consist entirely of whitespace.
  108. - Added emacs-like "deep indent" which can be enabled using the
  109. deepIndent buffer-local property:
  110. fooBar(baz,
  111. moreParameters,
  112. ...); (Brad Mace)
  113. - Just like the Find Previous command, S+ENTER in the search bar now
  114. shows an error message if regular expression search is enabled.
  115. Previously it would just search forward.
  116. - The "Format Paragraph" command now shows an error message instead of
  117. just beeping if the wrap margin is not set.
  118. - The "Paste Previous" and "Paste From List" dialog boxes now show the
  119. selected item in a multiple-line text area (Ollie Rutherfurd).
  120. }}}
  121. {{{ Syntax Highlighting
  122. - Added LOTOS syntax highlighting (Ken Turner).
  123. - Added SDL/PL syntax highlighting (Ken Turner).
  124. - Added IMPORT element to RULES tag. All rules from the ruleset named
  125. by the required attribute DELEGATE are copied into this ruleset.
  126. - Improved Velocity syntax highlighting.
  127. - Added TPL syntax highlighting (Brant Langer Gurganus).
  128. - Added UnrealScript syntax highlighting (Christoph Daniel Schulze).
  129. - Updated FreeMaker syntax highlighting (Jonathan Revusky).
  130. - Updated Pyrex syntax highlighting (Ollie Rutherfurd).
  131. }}}
  132. {{{ User Interface
  133. - Activity Log now autoscrolls when dragging the mouse outside the log
  134. area bounds.
  135. - Docked window menu buttons should now look better on MacOS X.
  136. - When closing a buffer, the previous buffer is now selected, not the
  137. first buffer. The code that does this was actually there all along,
  138. but it never worked and I didn't notice (it would just go to the first
  139. buffer).
  140. - On Windows, entering X:\ or X:/ where X is a drive letter will
  141. automatically list that drive so that further paths can be completed.
  142. This is similar to how on Unix entering / opens the root directory.
  143. - Improved 'Choose Directory' dialog box.
  144. - A warning dialog box is now shown if nothing is selected in the text
  145. area and the "search in selection" setting is activated.
  146. }}}
  147. {{{ Plugin Manager
  148. - The plugin manager now lists JARs that do not contain a plugin core
  149. class.
  150. - A warning is shown when updating a plugin from a version using the old
  151. API to a version using the new API, advising the user to restart
  152. jEdit.
  153. - The plugin manager no longer removes an existing plugin if downloading
  154. of an update failed.
  155. }}}
  156. {{{ Optimizations
  157. - Fixed a performance regression from pre2. Opening large files with
  158. soft wrap off should now be as fast (or faster) than 4.1.
  159. - Fixed delays when exiting editor if help viewer and/or plugin manager
  160. windows were open.
  161. - jEdit.getBuffer() now uses a hashtable instead of a linear scan.
  162. - Optimized away some redundant code in the display manager, which
  163. should result in improved performance.
  164. - Search dialog should open a little bit faster. This fixes the issue
  165. where if you press C+f and type a search string really quickly,
  166. characters would be inserted in the text area.
  167. - Undo queue is now stored in a linked list, rather than an array. As
  168. offensive as it might sound, the array was being shifted along one
  169. position for each (non-compound) edit! Especially if the undo limit
  170. was set to a large value this could cause slowdowns.
  171. - The buffer no longer grabs a write lock when calculating a fold level
  172. or syntax tokens for a line. This should prevent the text area from
  173. stalling if the buffer is being saved in an I/O thread.
  174. - Fixed a performance regression from pre2. If all line contexts were
  175. valid, a subsequent request for a line's syntax tokens would
  176. invalidate all contexts from that line onwards. This did not happen if
  177. for example all but one context was valid.
  178. - Faster directory listing in the file system browser.
  179. - Fixed slowdown if activity log was docked and the "tail" option was on
  180. in Java 1.3.
  181. - Floating positions are now stored in a more efficient data structure
  182. allowing operations to be performed in logarithmic time. This improves
  183. performance with plugins that create a lot of positions, such as XML
  184. and anything using ErrorList.
  185. }}}
  186. {{{ Bug Fixes
  187. - Fixed NullPointerException when loading plugins if opened buffers
  188. contained an invalid 'folding' property.
  189. - Fixed NullPointerException when invoking Complete Word in an edit mode
  190. that did not define a keyword map.
  191. - Selecting 'Close' from a cloned dockable's popup menu closed the wrong
  192. window.
  193. - Plugin manager window did not have the same icon as all other jEdit
  194. windows.
  195. - "What's new in jEdit 4.2" document was missing from the download due
  196. to a packaging error.
  197. - "Highlight every n lines" color setting in Gutter option pane didn't
  198. work properly.
  199. - Plugin manager hardcoded the table foreground color to black, this
  200. could make the table unreadable if the text area background was dark
  201. and "use jEdit text area colors in all text controls" was on.
  202. - EOL_SPAN_REGEXP rules threw NullPointerExceptions.
  203. - Plugins that failed to load were not marked as such, and showed up as
  204. "Loaded" in the plugin manager.
  205. - Added a workaround for a MacOS X Java bug where renaming a file to
  206. contain a path to a non-existent directory would delete the file.
  207. - It is now possible to rename a file to another name that only differs
  208. in case on Windows.
  209. - If "Ignore Case" was on, searching for strings containing certain
  210. characters (such as Unicode 0x00df) did not work since
  211. String.toUpperCase() sometimes mangles the string in various ways.
  212. Processing the string with Character.toUpperCase() doesn't seem to do
  213. this.
  214. - The "Abbreviations" option pane now correctly handles expansions with
  215. duplicate abbreviations.
  216. - An undoable edit is no longer merged if there is a pending redo. This
  217. would cause the undo queue to become inconsistent.
  218. - Changed input modifier mapping on MacOS X.
  219. C+ is the Command key as before
  220. A+ is now the Control key
  221. M+ is no longer bound!
  222. A+ used to be the Option key however this caused problems such as
  223. special characters on international keyboards triggering jEdit
  224. shortcuts; for example, Option+' inserts # on an Italian keyboard, and
  225. jEdit would pick this up as A+QUOTE which is bound to "Scroll Page
  226. Up".
  227. - Fixed NullPointerException when clicking in text area in a soft
  228. wrapped line that was but off at the bottom.
  229. - Fixed NullPointerException when scrolling to a line that was longer
  230. than the visible area.
  231. - Added a workaround for a problem with the Toolkit class which is
  232. non-reentrant on the Solaris JDK. This could cause a segmentation
  233. fault on jEdit startup.
  234. - Fixed a problem in the text offset to screen line conversion. It
  235. usually manifested itself in the form of the "disappearing selection"
  236. bug; if only part of the first line was visible due to scrolling and a
  237. selection began in the part that was not visible, painting the
  238. selection would throw an exception which would result in the selection
  239. extension being removed from the text area.
  240. - Printing is no longer done in a background thread, and now blocks the
  241. UI, due to various thread-safety problems.
  242. - Printing a range of pages would always print starting from the first
  243. page.
  244. - jEdit didn't compile with Java 2 version 1.3.
  245. - Invalid delegates in syntax mode files could throw exceptions.
  246. - "Spaces to Tabs" was broken.
  247. - Added a workaround for the print spacing problem on some Java
  248. versions. Note that this results in much larger spool files. Enable in
  249. Utilities->Global Options->Printing.
  250. - Added a workaround for buggy/incomplete implementations of JDK 1.4
  251. printing API. Now you can force use of the JDK 1.3 API when running on
  252. 1.4. Enable in Utilities->Global Options->Printing.
  253. - Re-introduced jEdit 3.2.2-style Unix window geometry workarounds. If
  254. you saw problems like dialog boxes getting smaller each time they were
  255. opened, etc, let me know if this fixes them.
  256. - Fixed hang if a mode contains regular expression rules that match a
  257. zero-width string.
  258. - The jEditLauncher configuration is no longer updated if installing a
  259. new jEdit release over an old one with the jEditLauncher de-selected
  260. in the installer.
  261. - When searching for text, jEdit tries a little harder to make sure the
  262. search occurrence is visible if the text area needs to be scrolled
  263. horizontally.
  264. - When using TAB to move focus from the buffer switcher, or search bar,
  265. etc. it should eventually end up in the text area, instead of getting
  266. stuck.
  267. - Simplified key event workaround code. Let me know if you encouter any
  268. problems (such as garbage being inserted in the text area when certain
  269. keys are pressed, etc.)
  270. - File dialog's completion was case sensitive when the TAB key was
  271. pressed. This was inconsistent with all other completion behavior
  272. which was case insensitive.
  273. - File names that ended with a colon (:) were being treated like URLs
  274. even if there was no VFS named by the string before the colon. This
  275. made it impossible to open files named "foo:".
  276. - Docking areas can no longer be resized beyond visible bounds if the
  277. "alternate tool bar layout" setting is off.
  278. - Fixed a problem where the status bar would throw errors about negative
  279. array offsets if a buffer change resulted in the text area being
  280. scrolled.
  281. - Glob patterns of the form {!{a,b,c}} didn't work properly.
  282. - Browser actions were incorrectly written in the resource cache, so for
  283. example the FTP plugin's menu in the file system browser did not work.
  284. - The install directory setting of the plugin manager didn't work.
  285. - Refactored key dispatching code should make alternative keyboard
  286. layouts work better on MacOS X.
  287. - gnu.regexp has rather strange substitution behavior, which caused
  288. problems with some SPAN_REGEXP's.
  289. - Dialog box for confirming plugin removal now lists the JAR files to be
  290. removed in a scrolling list, this fixes the problem of the dialog
  291. getting too large in some cases.
  292. - Fix a minor UI layout problem with the style editor dialog box of the
  293. Syntax Highlighting option pane.
  294. - Fixed exception when reloading a buffer if a marker was set beyond the
  295. location where the buffer ends on disk.
  296. - Fixed problem with table columns in the file system browser resizing
  297. incorrectly when a node was collapsed.
  298. - Redoing a remove did not clear the buffer's modified flag if
  299. necessary.
  300. - Fixed status bar display for prefixes longer than three keys.
  301. - Pressing TAB in the action bar on JDK 1.3 would cause it to lose
  302. focus.
  303. - Glob patterns containing + caused exceptions to be thrown.
  304. - "Select Line Range" now respects the multiple selection setting.
  305. - When installing updates, dependencies are now correctly installed
  306. (Kris Kopicki).
  307. }}}
  308. {{{ API Changes
  309. - TokenHandler.handleToken() method now takes a Segment instance as
  310. the first parameter.
  311. - Direct construction of SearchDialog no longer possible due to internal
  312. changes. The SearchDialog.showSearchDialog() method that has been
  313. recommended since jEdit 4.0 still works.
  314. - Buffer.setReadOnly() can be used to make a buffer read only even if
  315. the file is writable on disk.
  316. - Added JEditTextArea.addTopComponent() method (Brad Mace).
  317. - Case-sensitivity is now determined on a per-filesystem basis, instead
  318. of always being on when running on Windows or MacOS X. To have your
  319. VFS be case-insensitive, define the CASE_INSENSITIVE_CAP.
  320. - Added generic structure matching API for presenting the user a
  321. consistent interface for bracket matching, XML tag matching, BEGIN/END
  322. matching, etc.
  323. Simply write an implementation of StructureMatcher and add it to the
  324. text area with JEditTextArea.addStructureMatcher().
  325. }}}
  326. }}}
  327. {{{ Version 4.2pre2
  328. Thanks to Carmine Lucarelli, Matt Albrecht, Ollie Rutherfurd and
  329. Sebastien Pierre for contributing to this release.
  330. {{{ Editing
  331. - "Complete Word" now inserts the longest common prefix if there is more
  332. than one possible completion (the popup is still displayed as well).
  333. - Added Ignore Case (C+e C+i) and Regular Expressions (C+e C+x) commands
  334. to Search menu for changing search bar settings from the keyboard.
  335. - Incremental Search Bar and HyperSearch Bar commands now always
  336. disregard the selection. Use Incremental Search for Word and
  337. HyperSearch for Word commands if you want to search for the selected
  338. text.
  339. - Made behavior of auto indent caused by "Insert Tab and Indent",
  340. "Insert Enter and Indent", and "Indent Selected Lines" commands is
  341. more consistent.
  342. - Register commands now list registers, and marker commands now list
  343. markers with shortcuts in the status bar.
  344. - Added Edit->More Clipboard->Paste Deleted (C+e C+y) command. Similar
  345. to Paste Previous, it lists recently deleted strings.
  346. - Quick copy now works between text areas.
  347. - Paste Previous dialog box now supports multiple selection.
  348. }}}
  349. {{{ File System Browser
  350. - The favorites list can contain files now.
  351. - Added a Utilities->Favorites menu.
  352. - The expansion triangles are now flush with the icon. Previously they
  353. were vertically aligned which was inconsistent with Swing JTrees.
  354. - Added "Copy Path Name" command to file system browser's right-click
  355. menu.
  356. }}}
  357. {{{ Syntax Highlighting
  358. - Updated Inform syntax highlighting (Matt Albrecht).
  359. - Added S+ syntax highlighting (Matt Albrecht).
  360. - Added Io syntax highlighting (Sebastien Pierre).
  361. - Added Pyrex syntax highlighting (Ollie Rutherfurd).
  362. - Added Erlang syntax highlighting (Ollie Rutherfurd).
  363. }}}
  364. {{{ User Interface
  365. - The Global Options dialog box has been rearranged a little. There are
  366. two new panes, Autosave & Backup, and View. The Loading & Saving pane
  367. has been removed.
  368. - "Copy" button in Activity Log window now copies entire log if nothing
  369. is selected.
  370. - Added "Remove All Nodes" button to HyperSearch Results window
  371. (Carmine Lucarelli).
  372. - Removed "Go to Text Area" (C+e C+e) action. "Scroll to Current Line"
  373. (C+e C+j) now sends focus to the text area, and also expands the
  374. current fold if the caret is not visible.
  375. - The block caret is now drawn as a hollow box. Previously it was drawn
  376. as a filled box using XOR paint mode, but the XOR paint mode caused
  377. problems on some Java versions and was slightly slower.
  378. - New gutter mouse behavior for brackets:
  379. C-click on a bracket scope selects the scope.
  380. A-click on a bracket scope narrows to the scope.
  381. These were changed to be consistent with the behavior when clicking on
  382. a fold.
  383. - Previously, jEdit would remember the caret position for the 50 most
  384. recent files, and the File->Recent Files menu would list the same
  385. number of entries as the history text field setting. Now, a single
  386. recent files setting in the General pane of the Global Options
  387. controls both.
  388. - A change makes the buffer history use a linked list instead of an
  389. array to store entries. However, since Java provides no way to iterate
  390. backwards over a linked list, this results in the recent file list
  391. being stored backward from how it was in previous versions. So when
  392. upgrading from 4.2pre1 or older, your oldest files will be at the top
  393. of the list.
  394. }}}
  395. {{{ Plugin Loader
  396. - The plugin manager now loads plugins immediately after they are
  397. installed if they are using the jEdit 4.2 plugin API, and unloads
  398. plugins when removing and updating. Note that a restart is still
  399. required after updating from a jEdit 4.1 version of a plugin to the
  400. 4.2 plugin, but future updates do not require a restart.
  401. - Added an option to Global Options->Plugin Manager to leave the
  402. downloaded ZIP archives in ~/.jedit/PluginManager.download.
  403. - If a plugin failed to load, its actions, dockables, etc are no longer
  404. visible from the UI.
  405. }}}
  406. {{{ Scripting Changes
  407. - BeanShell 1.3a1 included. This release features improved error
  408. reporting, code cleanups and minor bug fixes.
  409. - For some reason the search and replace code was hard-coded to auto
  410. wrap around if it was run from a macro. I'm not sure what the original
  411. rationale for this was, but it has been changed to always respect the
  412. auto wrap flag.
  413. - "Evaluate For Selected Lines" can now be recorded in a macro.
  414. }}}
  415. {{{ Optimizations
  416. - Fold visibility information is now stored in a more efficient manner.
  417. Folding should be faster and more robust. Also, the limit of 8 text
  418. areas editing the same buffer has been lifted.
  419. - Various minor display manager optimizations.
  420. }}}
  421. {{{ Bug Fixes
  422. - It was possible to open multiple plugin manager instances from the
  423. "Plugin Error" dialog box.
  424. - Fixed selection issue when right-clicking on a file system browser
  425. window.
  426. - The file system browser would report files larger than 1 megabyte as
  427. being an order of magnitude smaller, eg 13 kilobytes instead of 13
  428. megabytes.
  429. - Changing the folding mode to "none" did not work correctly.
  430. - Changing from a syntax highlighting mode to text mode did not
  431. invalidate line contexts.
  432. - The file system browser's "Open in" menu didn't work.
  433. - Toggle menu items did not show up as such when a plugin was
  434. constructed from the summary cache.
  435. - -nobackground command-line switch did not actually work.
  436. - Title bar "modified" indicator was not displayed for recovered
  437. autosave files.
  438. - jEdit never closed streams of XML files being read in. This bug has
  439. been there for ages, however its not too major since the stream
  440. objects would get garbage collected and closed eventually.
  441. - Fixed incorrect handling of buffer modification flag in undo code.
  442. - No longer print an exception if the clipboard contains a zero-length
  443. string.
  444. - The file system browser might not have been updated correctly after
  445. moving a file from one expanded branch to the root.
  446. - Right-clicks in the empty space below the file list should work now.
  447. - Fixed possible NullPointerException on MacOS X in the OperatingSystem
  448. class.
  449. - Various fixes for dynamic plugin loading.
  450. - Changing the plugin download mirror had no effect on an open plugin
  451. manager window.
  452. - Fixed popup menu positioning.
  453. - Fixed possible corruption of the undo queue due to a regression in
  454. pre1.
  455. - Fixed some problems with symbolic links.
  456. - Collapsing a directory in a file system browser threw an exception if
  457. it was the last item in the list.
  458. - Using C+e C+` shortcut to close dockables didn't work because the view
  459. would send focus to the text area after C+e was pressed. This was done
  460. to correctly handle shortcuts like C+e n n while a text field had
  461. focus (previously "nn" would be inserted in the field). Now, if the
  462. focus was sent to the text area as a result of a prefix, it is sent
  463. back to the original owner when the prefix is finished.
  464. - Fixed various file system browser completion problems.
  465. - PHP mode's inline script ruleset was missing a commentEnd property.
  466. - Plugins which provided a dockables.xml file but no actions.xml could
  467. not be invoked, since the action set was only added if the actions.xml
  468. file was present.
  469. - Disabled CS+click to narrow to a bracket scope since it didn't
  470. actually work.
  471. - DynamicMenuUpdate messages only worked for top-level menus.
  472. - TAB didn't work in the action bar if there was nothing entered (it is
  473. supposed to list all actions.)
  474. - Fixed obscure problem with work thread code where an AWT request added
  475. from another AWT request could be executed before I/O is complete.
  476. - Fixed repainting problem when removing text from the last line of a
  477. buffer with soft wrap on.
  478. - Selecting "Search in Directory" from the file system browser's
  479. Commands menu with a file selected was supposed to set the directory
  480. search filter to that file's extension, however this didn't work.
  481. - Fix a problem with "Indent Selected Lines" on text like the following:
  482. if(foo)
  483. bar();
  484. if(baz) {
  485. quux();
  486. }
  487. - Fixed possible exceptions thrown when the buffer is narrowed to a
  488. range, and with the caret outside this range.
  489. - Action bar's action list wasn't updated if plugins were added or
  490. removed at runtime.
  491. }}}
  492. {{{ API Additions
  493. - Added a new dynamic menu API, so that plugins using the 4.2 plugin API
  494. can provide dynamic menus. Simply write an implementation of
  495. org.gjt.sp.jedit.menu.DynamicMenuProvider
  496. - EditPlugin.start() is always called from the AWT thread now.
  497. - Added a method to bsh.NameSpace:
  498. addCommandPath(String path, Class clas)
  499. You can call this on BeanShell.getNameSpace(). BeanShell will search
  500. for resources named path + methodName + ".bsh" in the class loader of
  501. the given class when an undeclared method is invoked. Plugins can use
  502. this to provide additional scripting commands, the Console plugin uses
  503. this for example.
  504. - Added a new method to TextAreaExtension class:
  505. public void paintScreenLineRange(Graphics2D gfx, int firstLine,
  506. int lastLine, int[] physicalLines, int[] start, int[] end,
  507. int y, int lineHeight)
  508. This method paints a whole bunch of lines at once, instead of one at a
  509. time, so it should be more efficient for plugins like Background and
  510. ErrorList.
  511. See javadoc for parameter documentation.
  512. - Added long-missing DefaultInputHandler.removeKeyBinding() method.
  513. - Added AbstractOptionPane.addComponent(Component comp, int fill)
  514. method.
  515. - Virtual file systems can now show arbitriary columns in the file
  516. system browser.
  517. - Use the VFS constructor that accepts a String[] of extended
  518. attribute names. You can use the canned names (EA_TYPE, EA_STATUS,
  519. EA_SIZE, EA_MODIFIED) or add your own. If you add your own, you
  520. must also define properties "vfs.browser.<extended attribute name>".
  521. - Then, write a VFS.DirectoryEntry subclass that overrides
  522. getExtendedAttribute(). Return instances of this class in
  523. _getDirectoryEntry() and _listDirectory().
  524. }}}
  525. }}}
  526. {{{ Version 4.2pre1
  527. Thanks to Bill McMilleon, Kasper Graversen, Kris Kopicki,
  528. Oliver Rutherfurd, Rudi Widmann and Ryan Grove for contributing to this
  529. release.
  530. {{{ Editing
  531. - Quick copy now more consistent with usual mouse behavior:
  532. - Control-middle-clicking on a bracket will insert the contents of the
  533. bracketed block at the caret position.
  534. - Shift-middle-clicking at a point will insert text from the caret to
  535. the point at the caret position. Can be used to duplicate a line,
  536. for example.
  537. - Register contents are now saved across editing sessions in
  538. ~/.jedit/registers.xml.
  539. - Complete Word popup now has keyboard shortcuts (1 - 0) for inserting
  540. the first 10 elements in the list.
  541. - Entering a prefix while a JTextComponent has focus will move focus to
  542. the text area. This allows shortcuts like C+e n n to be used from the
  543. search bar and such without having to prefix them with C+e C+e first.
  544. - Control-Shift-click on a bracket scope in the gutter or a bracket in
  545. the text area narrows to that scope.
  546. - Previously setting the wrap margin to zero with soft wrap on would
  547. wrap to the width of the text area. This is no longer supported.
  548. - The text area now scrolls by screen lines, not by physical lines, when
  549. soft wrap is enabled. The previous behavior resulted in simpler code
  550. but was extremely counter-intuitive.
  551. - Right-clicking in the text area with no selection (or if multiple
  552. selection mode is enabled) moves the caret to the clicked line before
  553. displaying the popup menu (Rudi Widmann).
  554. - Control-clicking beyond the end of a line inserts the appropriate
  555. amount of white space and moves the caret there (Rudi Widmann).
  556. }}}
  557. {{{ Rectangular Selection
  558. - Edit->More Selection->Rectangular Selection (A+\) enables rectangular
  559. selection mode:
  560. - Dragging with the mouse or using keyboard selection commands creates
  561. rectangular selections.
  562. - A status bar indicator has been added for this mode.
  563. - Clicking beyond the end of the line inserts the appropriate amount
  564. of white space and moves the caret there (just like when Control is
  565. held down, see above).
  566. - Changed vertical paste behavior. Now if the rectangle we are inserting
  567. into has more lines than the pasted text, the pasted text cycles
  568. through the rectangle. Previously, it would be inserted at the top
  569. with the remaining lines blank. The new behavior is very convinient;
  570. for example, you can select a zero-width rectangle and paste "final"
  571. to mark a set of variables in Java source as being final.
  572. - Entering text while a zero-width rectangular selection is active now
  573. shifts the selection horizontally.
  574. }}}
  575. {{{ Syntax Highlighting
  576. - A new default color scheme.
  577. - Added a few more token types: COMMENT3, COMMENT4, LITERAL3, LITERAL4,
  578. KEYWORD4.
  579. - AT_LINE_START, AT_WORD_START and AT_WHITESPACE_END attributes can now
  580. be set independently for BEGIN and END tags of a SPAN.
  581. - The default background color of a token is now the background color of
  582. the current ruleset's default token type. It now only defaults to the
  583. text area background if the ruleset's default token type does not have
  584. a background color. This matters because for example if COMMENT2 has a
  585. background but MARKUP does not, HTML markup in Javadocs now has the
  586. same background as the rest of the comment.
  587. - Any groups matched by a SPAN_REGEXP's BEGIN sequence are substituted
  588. into any positional parameters in the END sequence. This allows
  589. read-ins to be properly handled in languages like Shell Script, PHP,
  590. and Perl.
  591. - Added NO_ESCAPE attribute to SPAN and SPAN_REGEXP rules. This allows
  592. C# literals (@"...") to be highlighted correctly.
  593. - Added JCL and SAS syntax highlighting (Bill McMilleon).
  594. - Improved C pre-processor syntax highlighting.
  595. - Updated NSIS2 syntax highlighting (Ryan Grove).
  596. - Parrot syntax highlighting (Oliver Rutherfurd).
  597. - Aspect-J syntax highlighting (Kasper Graversen).
  598. }}}
  599. {{{ Folding
  600. - Different syntax styles are used for collapsed fold lines with
  601. different fold levels. Fold levels 1, 2 and 3 have distinct styles,
  602. and all higher levels are assigned another style.
  603. - Alt-clicking on a fold triangle in the gutter narrows to that fold.
  604. }}}
  605. {{{ Action Bar
  606. - Utilities->Action Bar (shortcut C+ENTER) shows the action bar, for
  607. quickly invoking editor commands and changing settings from the
  608. keyboard.
  609. - Enter an action name (or a substring) to invoke that action.
  610. - Press TAB for a completion popup.
  611. - Enter a repeat count then invoke an action using any means to repeat
  612. that action.
  613. - Enter "buffer.<prop>=<value>" to set the buffer-local property
  614. <prop> to <value>; for example, "buffer.tabSize=4" changes the
  615. curent buffer's tab size to 4.
  616. - Enter "!buffer.<prop>=<value>" to set a buffer property on a global
  617. basis; for example, "!buffer.tabSize=4" changes the default tab size
  618. for all buffers to 4.
  619. - Buffer-local properties are documented in the user's guide.
  620. - Enter "<prop>=<value>" to set any other global property; for
  621. example, "view.showToolbar=false" hides the tool bar.
  622. - Note that global property names are undocumented, so this feature is
  623. primarily for plugin developers. You can get a list using the
  624. Misc->Properties->jEdit Properties macro.
  625. }}}
  626. {{{ File System Browser
  627. - The file system view now shows file attributes such as type, status,
  628. size and modification date.
  629. - Re-added "Filter in file dialogs is current buffer extension" option
  630. that used to be present in jEdit 4.0.
  631. - Added "Show menu bar" option.
  632. - Improved completion in file dialogs. Completion in the field is now
  633. case-insensitive, and the full path is not inserted into the field
  634. unless you press TAB.
  635. - Added option to make the default directory the working directory of
  636. the jEdit process.
  637. }}}
  638. {{{ User Interface
  639. - If regular expressions are enabled, Search->Find Previous now shows a
  640. dialog box message instead of silently searching forwards.
  641. - Added an option to Appearance option pane to control menu spillover
  642. (default is 20 items).
  643. - The title bar now indicates if the current buffer has been modified
  644. since the last save.
  645. - Moved plugin option panes to a new Plugins->Plugin Options dialog box.
  646. - Improved window docking.
  647. - Floating windows now have a bar across the top with a menu for
  648. docking the window.
  649. - Right-clicking on a docked window button shows a menu for undocking
  650. the window, opening a cloned instance, and moving it to another
  651. docking area.
  652. - Docking pane of Global Options dialog box removed because it is no
  653. longer necessary.
  654. - Added Utilities->Repeat Last Action command, bound to C+SPACE.
  655. - jEdit now remembers if more than one view was open, and if the view
  656. was split.
  657. }}}
  658. {{{ Miscellaneous
  659. - Symbolic links are no longer resolved in buffer path names. Opening
  660. two buffers both pointing to the same file on disk is still not
  661. allowed.
  662. - If buffers have changed on disk, instead of asking for each one, they
  663. are all listed in a single dialog box. Also, if the buffer is not
  664. dirty, it is reloaded automatically.
  665. }}}
  666. {{{ Command Line
  667. - Added a few new command line parameters, documented in jedit -usage:
  668. -gui
  669. -newplainview
  670. -newview
  671. -nobackground
  672. -plugins
  673. -quit
  674. -restore
  675. -reuseview
  676. -startupscripts
  677. -wait
  678. }}}
  679. {{{ Optimizations
  680. - New "deferred loading" plugin API. Plugins must be updated for this,
  681. however existing plugins continue to work (with no performance
  682. improvement). jEdit's startup time remains constant (+/- some
  683. milliseconds) regardless of how many plugins using the new API are
  684. installed.
  685. - Faster buffer loading.
  686. - Faster activity log.
  687. - Bracket matching is now only performed 200ms after the last caret
  688. movement. This should solve the problem of annoyingly slow response
  689. when eg, inserting a number of characters before an unclosed bracket
  690. near the beginning of a large source file.
  691. - Bracket matching now only scans up to 10,000 lines.
  692. - Consecutive "chunks" with the same style attributes were previously
  693. merged when a line was being painted, for improved performance. Now we
  694. take this one step further and merge them when putting a line's chunk
  695. list in the cache. This should improve scrolling performance,
  696. especially when smooth text is on.
  697. - jEdit now performs much better when very long lines are present in a
  698. buffer.
  699. - A funky little display optimization with monospaced fonts is now
  700. performed. In jEdit 4.1 this could be enabled with a hidden property,
  701. but now we detect if a monospaced font is actually in use. If this
  702. causes display problems, please let me know about it and put this in a
  703. startup script:
  704. Debug.DISABLE_MONOSPACE_HACK = true;
  705. - Faster line insertion and removal when there are collapsed folds below
  706. the insertion point.
  707. - Faster painting of tokens with background colors. Previously if tokens
  708. defined a background color, there was a noticable lag when scrolling
  709. for example (at least with Java 1.4.1 on Linux). This no longer
  710. happends.
  711. - Faster buffer transactions if both soft wrap and narrowing is active.
  712. - Faster search and replace where the search or replace string matches
  713. on multiple lines.
  714. - Dockable window resizing is now done with a "rubber band", instead of
  715. live updates of the dockable container's size. This improves
  716. responsiveness of resizing noticably.
  717. - When dragging with the mouse, the text area now autoscroll at a rate
  718. proportional to how far away the mouse is from the edge of the area.
  719. }}}
  720. {{{ Platform-Specific
  721. - MacOS plugin version 3.0 now requires Java 1.4.1. All native calls now
  722. use the Cocoa API, and a dock menu has been added. The dock menu
  723. provides similar functionality to the plugin menu (Kris Kopicki).
  724. - Background mode is now enabled by default on MacOS, since this is the
  725. platform convention.
  726. - Added compatibility with Java 1.4.2 beta's GTK look and feel. Note
  727. that the look and feel itself is quite buggy, at least with the 1.4.2
  728. beta.
  729. - The installer should now work on VMS.
  730. }}}
  731. {{{ Bug Fixes
  732. - jEdit no longer minimizes and then restores windows when files are
  733. opened through the edit server on windows. This was done to work
  734. around an apparent bug in the Windows JRE. If you still experience the
  735. problem, there is a hidden property that can be set with the action
  736. bar:
  737. C+ENTER server.brokenToFront=true
  738. - Some HTTP proxies decompress GZip streams for whatever reason. The
  739. plugin manager now checks if the stream starts with the GZip magic
  740. characters; if not, it parses it without decompression, instead of
  741. throwing an exception.
  742. - Multiple monitors should work properly now (Kris Kopicki).
  743. - Selecting "Search in Directory" from the right-click menu of a
  744. directory in the parent directories list would search in the wrong
  745. directory.
  746. - Fixed problems with bracket matching not being activated when
  747. switching between split panes.
  748. - Not all keyboard shortcuts worked in the Complete Word popup.
  749. - Closing a view did not close any cloned dockable windows.
  750. - Page Up/Page Down commands now scroll by the correct amount when soft
  751. wrap is on.
  752. - Fixed I/O thread deadlock that could manifest when using the FTP
  753. plugin.
  754. - Fixed initial position of options dialog box divider.
  755. - If the default edit mode had a tab size of 8, and the global default
  756. was 4, a buffer-local property specifying a tab size of 8 would be
  757. ignored.
  758. - "Spaces To Tabs" didn't work with non-leading tabs.
  759. - C+e v ENTER and C+e v TAB still did auto indent, instead of inserting
  760. a literal ENTER and TAB like the documentation says.
  761. - Pressing ENTER with nothing selected in the File->Open dialog box no
  762. longer closes the dialog box.
  763. - Nested { and } work in globs now.
  764. - Fixed problem with EOL_SPAN delegating to a ruleset with a
  765. NO_LINE_BREAK rule.
  766. - Fixed horizontal scrolling when creating a rectangular selection in
  767. virtual space.
  768. - Clicking in the text area before the buffer is loaded no longer throws
  769. exceptions.
  770. }}}
  771. {{{ API Changes
  772. - You can a detailed guide on what has been broken, and what has been
  773. added, in doc/news42/index.html.
  774. - The following plugins are known to be broken:
  775. Background
  776. Console
  777. ErrorList
  778. JDiff
  779. WhiteSpace
  780. SideKick
  781. Templates
  782. Vimulator
  783. XML
  784. - Also, a lot of plugins that depend on ErrorList and Console will fail
  785. to load, even if they are not broken themselves. So don't panic if you
  786. see a huge list of plugin errors on startup; most of them won't need
  787. fixing.
  788. }}}
  789. }}}
  790. jEdit buffer local properties:
  791. :wrap=hard:maxLineLen=72:indentSize=2:
  792. :folding=explicit:collapseFolds=2: