1 Release Notes for NEdit Version 5.2, October 2001
3 $Id: ReleaseNotes,v 1.10 2001/10/21 15:13:07 tringali Exp $
5 This file contains last minute notes to users about the release, which are not
6 included in the documentation or README files included with the distribution
7 kits. It also contains change information, for users who are interested in
8 what bugs have been fixed, and what features have been added in the current
11 If you are upgrading NEdit from a version prior to 5.0, please see the notes in
12 the README file which came with the (source or executable) distribution kit,
13 about updating macros and font settings in your .nedit file.
18 - Added built-in patterns for CSS, XML, and regular expressions (Regex).
19 Many other pattern updates.
21 - Support for high- and true-color systems. NEdit now will automatically
22 select the best visual from your X server. This reduces the chance of
23 running out of colors.
25 - New features in the Find and Replace dialogs:
27 o Replacement across multiple windows in a session.
28 o Case sensitivity may be set independently of regular expressions.
29 o Add "Replace and Find" command, which saves keystrokes when doing
30 a large-scale find & replace.
32 - ClearCase version-extended pathnames.
34 - Many new macro subroutines and variables.
36 - Array support in macros.
38 - Range highlighting of matching delimiters.
40 - Undo and Redo highlights the text that has changed, when visible.
42 - Support for wheel mouse scrolling on servers that support it (XFree86).
44 - Improved accelerator key handling.
46 - Insert Control Code dialog accepts value in any valid C notation
48 - Optional beeping when search operations wrap.
50 - Additional default search styles.
52 - Optional displaying of path names in the window list menu.
57 - Fix a crash when entering an invalid line number in "Goto Line".
59 - Ignore the Caps-Lock key when invoking accelerators.
61 - Fix problems when running NEdit on 64-bit platforms like Alpha
63 - NEdit failed to open files if some directories above were not "readable"
65 - Fix potential crashes if some system calls fail
67 - When no colors are left, attempt to reuse the closest matching color. This
68 allows NEdit's syntax highlighting to better coexist with Netscape, which
69 unfortuntely takes all available colors.
71 - "Overtype" mode is now bound to the Insert key, to be consistent with
74 - Accelerators now available in confirmation dialogs, and may be invoked
77 - Don't even try to open a directory for editing
79 - Fix a couple of memory corruption problems
84 - Significant extensions to the regular expression syntax. See details
87 - Incremental search, and optional search bar.
89 - New ctags code with full support for Exuberant Ctags, better
90 handling of tag collisions, multiple tag file support, on-demand
91 loading of tag files, and automatic reload of modified tag files.
93 - Optional display of line numbers along the left side of the text.
95 - NEdit can now read and write MS DOS format files.
97 - New built-in syntax highlighting patterns for Lex, PostScript, SQL,
98 Many syntax highlighting pattern improvements.
100 - Improved international character set input
102 - New macro subroutines: list_dialog, getenv, set_language_mode.
104 - Optional warnings about external modifications to files
106 - Clearcase awareness
108 - Session manager restart capability
110 - Default language mode "*" for user-defined menu items, allows
111 per-language variations on a common base
113 - Allow additional modifiers like Sun diamond key in user defined
116 - Option to sort open previous menu.
118 - -geometry and -iconic command line arguments act per-window, and
119 can be specified via nc
121 - -geometry now specified in characters, rather than pixels
123 - -lm (language mode) command line option
125 - Save As dialog defaults to same file name
127 - Better default fonts for Linux systems
129 - .nedit file version mechanism to make future upgrades easier
134 - Crash on large amounts of data fed to shell command which does not
137 - Delayed secondary windows when executable statements specified in
138 users .neditmacro file
140 - Many corrections to online help
142 - Many highlight patterns corrections
144 - Using window close box in file open/save dialogs leaves nedit server
147 - escape in macro dialogs can cause macro hang
149 - Lesstif-specific fixes: attachment warnings in font selector,
150 Work around replace dialog focus bug.
152 - NEdit no longer maintains original protection settings on files. It
153 allows them to be changed externally.
156 Details of Regular Expression Changes in 5.1
160 o Fixed bug that caused character classes with a character range not to
161 work properly if one of the range characters was an escaped character.
163 Improvements In Existing Features
165 o Increased maximum number of capturing parentheses from 40 to 50.
167 o Removed optimization that uses `must match' strings (it didn't work and
168 caused more problems than it solved.)
170 o Improved error messages.
172 o Improved Start-Of-Line and End-Of-Line detection by the `^', `$', and the
173 new `\B' (see below) anchors. The Start-Of-Word and End-Of-Word anchors
174 `<' and `>' where not enhanced due to syntax color highlighting pattern
175 compatibility issues.
177 o Changed code to use "unsigned char" in most cases instead of "signed
178 char". Also, use of ANSI character functions (e.g. isdigit(), isspace())
179 were added wherever possible. These changes should improve support for
180 locales other than "C", for example character sets with accented
183 o Added character escapes for:
184 - \e ASCII escape character (for environments that use the EBCDIC
185 character set, set the EBCDIC_CHARSET compiler symbol to get the
186 EBCDIC equivalent escape character.)
192 o Removed the `\"' escape since `"' is not a meta character.
194 o In order to support numeric escapes, use of `\0' as a synonym for `&'
195 in replacement strings was removed. `\0' now signals the start of a
196 numeric (octal) escape sequence (see below.)
198 o Minor tweaks for improved performance.
202 o Octal and Hexadecimal Escapes
204 Octal and hexadecimal escapes begin with \0 and \x (or \X) respectively.
205 For example, \052 and \X2A both specify the `*' character. Escapes for
206 null (\00 or \x0) are not valid and will generate an error message.
208 o Shortcut Escapes for Common Character Classes
211 \l letters a-z and A-Z
212 \s whitespace \t, \r, \v, \f, and space
213 \w word characters a-z, A-Z, 0-9, and underscore, `_'
215 `\D', `\L', `\S', and `\W' are the same as the lowercase versions except
216 that the resulting character class is negated.
220 The `\B' non-word boundary anchor has been added as the logical opposite
221 of `<' and `>' collectively. This anchor ensures that the left and
222 right characters are either both delimiter characters or both
223 non-delimiter characters.
225 o Word Delimiter Escape Sequences
227 \y Word delimiter character
228 \Y Not a word delimiter character
230 The `\y' token matches any single character that is one of the characters
231 that NEdit recognizes as a word delimiter character, while the `\Y' token
232 matches any character that is NOT a word delimiter character. Note:
233 these are not anchors and DO consume one character of input.
238 + Minimal (lazy) Matching Quantifiers
240 *? Match zero or more
241 +? Match one at least one
244 These quantifiers match only what is absolutely necessary to achieve
247 + Counting (or Brace) Quantifier
249 {min,max} Match from `min' to `max' times the previous regular
252 If `min' is omitted, it is assumed to be zero. If `max' is omitted,
253 it is assumed to be infinity. Whether specified or assumed, `min'
254 must be less than or equal to `max'. If both are omitted, then the
255 construct is the same as `*'. Note that `{,}' and `{}' are both
256 valid brace constructs. A single number appearing without a comma,
257 e.g. `{3}' is short for the `{min,min}' construct, or to match
258 exactly `min' number of times.
260 o Non-Capturing Parentheses
262 Non-Capturing Parentheses are of the form `(?:<regex>)' and facilitate
263 grouping only and do not incur the overhead of normal capturing
266 o Positive Look-Ahead
268 Positive look-ahead constructs are of the form `(?=<regex>)' and
269 implement a zero width assertion of the enclosed regular expression. In
270 other words, a match of the regular expression contained in the positive
271 look-ahead construct is attempted. If it succeeds, control is passed to
272 the next regular expression atom, but the text that was consumed by the
273 positive look-ahead is first unmatched (backtracked) to the place in the
274 text where the positive look-ahead was first encountered.
276 o Negative Look-Ahead
278 Negative look-ahead takes the form `(?!<regex>)' and is exactly the same
279 as positive look-ahead except that the enclosed regular expression must
284 (?i<regex>) Case insensitive; `AbcD' and `aBCd' are equivalent.
285 (?I<regex>) Case sensitive; `AbcD' and `aBCd' are different.
287 Regular expressions are case sensitive by default, i.e `(?I<regex>)' is
288 assumed. All regular expression meta characters respond appropriately to
289 case insensitivity including character classes and back-references.
293 (?n<regex>) `.', `[^...]', `\s', `\S' will match newlines
294 (?N<regex>) `.', `[^...]', `\s', `\S' do not match newlines
296 `(?N<regex>)' is the default behavior.
300 Comments are of the form `(?#<comment text>)' and can be inserted
301 anywhere and have no effect on the execution of the regular expression.
303 o Notes on New Parenthetical Constructs
305 Except for plain parentheses, none of the parenthetical constructs
306 capture text. If that is desired, the construct must be wrapped with
307 capturing parentheses, e.g. `((?i<regex))'.
309 All parenthetical constructs can be nested as deeply as desired, except
310 for capturing parentheses which have a limit of 50 sets of parentheses,
311 regardless of nesting level.
314 New Features in 5.0.2:
316 - Word-selection (double click) can be used to select ranges of delimiters
318 - New built-in macro variables: $line, $column, and $modified
320 - Smart-indent mode available for Python language
322 - Minor improvements in default pattern sets for NEdit Macros, X Resources,
328 - -import did not work as advertised in 5.0.1. When used, it re-set a
329 number of preferences back to default values. Could also potentially
332 - Macro -> Repeat crashes on some systems.
334 - Mouse state can get "stuck" on Alpha-based systems.
336 - Combination of auto-wrap, auto-indent, and unbreakable lines extending the
337 width of the window, caused nedit to unnecessarily insert blank lines.
339 - Incorrect case-insensitive comparison in character sets > 128 bits.
341 - in by-word drag-selection (double click then drag) when begun in the middle
342 of a whitespace selection, anchor would revert to original cursor position
343 rather than maintaining the entire whitespace block.
345 - Language mode names containing spaces could not be used in language
346 sensitive user-defined menu items.
348 - New windows did not always see existing learn/replay sequence, recorded
349 before the window was created.
351 - Possible crash in search_string and search_window macros, when used with
354 - Possible crash in get_selection("any") macro.
356 - Under Solaris, crashes on window opening, file dialog, and language mode
357 selection, when user-defined sub-menus were used.
359 - Filenames containing spaces could cause the .neditdb file to become
362 - Escape key could not be used to cancel file-selection dialogs when the
363 file list had keyboard focus (which it almost always does).
366 New Features in 5.0.1:
368 - Repeat-over-range, and repeat-to-end capability for repeating last
369 command and learn/replay sequence.
371 - Import capability for loading macro/shell menu commands, highlight
372 patterns, and style sets created by other users.
374 - New macro language routines: string_to_clipboard, clipboard_to_string,
375 toupper, tolower, variables: $em_tab_dist.
377 - Additional default highlight patterns for sh and X resources.
379 - Sorted Open Previous menu.
381 - Numerous improvements to default highlighting patterns and smart indent
387 - Various crashes on Motif 2.0 (Linux and FreeBSD) systems, usually
388 associated with opening files and changing language modes. Usually,
389 but not necessarily, following changes to user-defined menu items.
391 - Background menu activation during drag operation could leave drag
392 unfinished, cause undo to malfunction, and eventually lead to a crash (which
393 was easy to trigger accidentally when the middle button is emulated with
394 mouse-chords on a two button mouse).
396 - X11R6 clients talking to X11R5 servers could crash on font dialog.
398 - Rapid repetition of long macros (such as binding to key and using keyboard
399 repeat) could cause crash.
401 - Several commands which put up dialogs were vulnerable to timing windows
402 where repeating the command could cause a crash.
404 - Calling macro close() routine could cause crash if used to close the window
405 in which the macro was executing.
407 - Using load_macro_file() as an "include" statement in macro files could
410 - Artifacts when using non-matching highlight fonts, and making certain types
411 of changes which change the fonts used to display other (not the line being
412 modified) lines in the file.
414 - Auto-newline wrap in overtype mode could duplicate part of wrapped text.
416 - Lower panes in split window mode allowed modification to read-only windows.
418 - Several minor dialog and window focus related problems for explicit (click
421 - Paste Column ignored existing selection.
423 - After copying and re-naming language mode information, highlight patterns
424 and smart indent macros remained attached to the re-named pattern instead of
427 - Trailing newlines should not have been prohibited in Open Selected.
429 - Help for creating smart indent macros was missing.
434 - Completed macro extension language (Simple C/awk-like syntax, safe,
437 - Syntax highlighting. Built-in patterns for C, C++, Java, Fortran, Pascal,
438 Ada, Perl, Python, Tcl, Awk, Csh, HTML, LaTeX, VHDL, Verilog, and more.
440 - Programmable Smart indent. (Experimentally, at least. There are only
441 macros for C and C++, and they may not fit everyone's programming style.)
443 - Language-sensitive preferences
445 - Continuous wrap mode (long line wrapping), in addition to existing
446 automatic-newline wrapping
448 - User-defined menus can be hierarchical and language-sensitive.
450 - Configurable right-button pop up menu
454 - Searchable on-line help
456 - Word boundary matching (<>) in regular expressions
460 - More dialogs have up-arrow recall
462 - White-space selection via double-click
465 Bug Fixes and Enhancements to Existing Features in 5.0
467 - No more limits on editing files containing ascii nul characters
469 - Fill Paragraph command handles leading indents
473 - Better directory defaulting in Open Selected and shell commands
475 - Open Selected processes tilde (~) and wildcards
477 - Goto Mark centers scroll position better
479 - Multiple shell commands can be run simultaneously
481 - Shell command execution doesn't block server command processing
483 - Emulated-tab deletion treats auto-indent as emulated tabs
485 - Auto-wrapping of pasted text is optional (off by default)
487 - Notice that default preferences have changed and ask about saving
490 - Selections remain selected after shell command and filter execution
492 - Wrap margin and emulated tab distance preferences are properly
493 transferred to new panes in split window mode