History — Version 18.4

# Version 18.4

December 18, 2018

## New General Features

- Added the ability to find, replace, find in files, replace in files, and filter with a number range expression. To use a number range in Find, Replace, Find in Files, Replace in Files, or Advanced Filter dialog box, select Number Range from the Mode drop-down list box. To use a number range in Find, Replace, FindInFiles, ReplaceInFiles, or Filter macros, include the eeExFindNumberRange flag in the ExFlags parameter. The number range is expressed in interval notation. For instance,

Number Range | Meaning
--- | ---
[1 , 9] | matches integers 1, 2, 3, ..., 9
[ , 9) | matches any integers less than 9.
[1.0 , 9.0) | matches decimal numbers greater than or equal to 1.0, and less than 9.0.
[ , 1.0) | matches any decimal numbers less than 1.0
(2.0 , ] | matches any decimal number greater than 2.0

- Added the ability to use JavaScript as a replacement expression when using regular expression or number range to replace. For converting replace expressions, EmEditor uses Chakra (JScript v11) for improved speed. Because this engine is separate from the macro environment, which uses the old JScript v5.8 engine, various objects used for macros are not available for replace expressions. Examples of replacement expressions include:

Replacement Expression | Meaning
--- | ---
\J "\0" + "abc" | appends "abc" at the end of the matched string
\J "\0".substr( 0, 5 ); | returns the first 5 characters of the matched string
\J \0 * 100; | multiply a matched number with 100
\J parseFloat( \0 ).toFixed(2); | rounds a matched number to 2 decimal places
\J cell( -1 ) | returns the text in the left neighbor cell, relative to the matched cell.
\J parseFloat( cell( -1 ) ) + parseFloat( cell( -2 ) ) | returns the sum of the two neighboring cells on the left

- Improved the speed while editing a document containing very long lines.

- Improved the speed when many regular expression highlight keywords or markers are defined.

- Added the /xnr option to the command line options.

## New Options

- Added the Optimization page to the Customize dialog box.

- Added the Enter Number Range dialog box.

- Added the Mode drop-down list box to the Find, Replace, Find in Files, Replace in Files, and Advanced Filter dialog boxes.

- Added the Use Number Range button to the Find and Filter toolbars.

## New Commands

- Customize Optimization

- Clear Markers for Saved Lines

- Filter Out in Column

- Use Number Range (Find toolbar)

- Use Number Range (Filter toolbar)

- Remove Leading Spaces

- Remove Trailing Spaces

## Plug-in API New Features

- Added the FLAG_FIND_NUMBER_RANGE flag to the FILTER_INFO_EX structure ( Editor_Filter inline function) and FIND_REPLACE_INFO structure.

## Macro New Features

- Added eeExFindNumberRange to the ExFlags parameter of the Filter method of the Document object, the Find and Replace methods of the Selection object, and the FindInFiles and ReplaceInFiles methods of the Editor object.

- Added the ExtractColumns method to the Document object.