EmEditor v21.8.0 released (including technical review)!

Today, we are releasing EmEditor v21.8.0.

The previous version of EmEditor (v21.7) supported comparison and synchronized scrolling results in one split window. v21.8 improves the split window by showing document titles above documents in the split window so that it is easier to identify the left and right documents. When you resize or maximize a split window, the previous version did not adjust the split border position. The new version moves the split border proportionally as you resize the window. Moreover, v21.8 allows you to show two documents side-by-side in a split window without comparing or synchronize scrolling by selecting the Split View command on the Compare menu. All the above features are supported on EmEditor Professional and EmEditor Free.

A major feature of EmEditor Professional is the ability to include regular expressions (RegEx) and number range expressions (NumRange) for search strings when you use the Bulk Replace All feature that was previously implemented on v21.7. Several customers including this customer asked for this improvement. It becomes useful when you have many simple strings to search for, but you want to include a few RegEx or NumRange strings. Bulk Replace All works very fast if all search strings are non-RegEx and non-NumRange (None). Adding RegEx to the list of search strings will slow down the Bulk Replace All process significantly. Nevertheless, if you have only a few RegEx, Bulk Replace All is still faster than Batch Replace All.

If you mix search strings with RegEx or NumRange, Bulk Replace All will search all these strings simultaneously, but a conflict can occur. If a conflict occurs, (None) will get the highest priority. NumRange is the second priority, and RegEx is the last priority.

For instance, if you have three strings to search for:

RegEx: [1-3] → A
NumRange: [1, 2] → B
(None): 1 → C

and if the source document is

[ 1 2 3 ]

In this example, RegEx matches all 1, 2, and 3, NumRange matches 1 and 2, and (None) matches only 1. When Bulk Replace All finds 1, all of these expressions match 1. In this case, Bulk Replace All selects (None) because it has the highest priority. Next, when it finds 2, the NumRange and RegEx match 2. Bulk Replace All selects NumRange because it has a higher priority than RegEx. When it finds 3, only RegEx can match 3.

Therefore, the result will become:

[ C B A ]

This way, EmEditor optimizes the Bulk Replace All task for the speed. To improve the speed of Bulk Replace All furthermore, we recommend reducing the number of RegEx and NumRange search strings. For instance, if you have a simple group RegEx such as:

(x|y)

To improve the speed, you should expand it to two simple search strings:

x
y

v21.8 also supported RegEx and NumRange search strings for Bulk Find in the Batch Find in Files dialog box, and Bulk Replace All in the Batch Replace in Files dialog box.

Another new feature of v21.8 is the CommitList plug-in by Makoto Emura, which shows the commit history of a Git repo. It allows easy comparisons between files of different revisions. The current minimal feature set of the plug-in leaves an opportunity for your feedback to be reflected in future versions, so we would like to hear your feedback as to which features you would like to see in the plug-in.

A customer has asked for the ability to limit search files by their time stamp while working on Find in Files. Thus, we added the Oldest date modified and Newest date modified date boxes to the Advanced dialog box (Find in Files). If only the Oldest date modified is set, EmEditor searches files newer than the specified date. If only the Newest date modified is set, EmEditor searches files older than the specified date. If neither of them is set, EmEditor searches all files regardless of file dates.

Another customer has asked for the ability to extract all matches (not just one match) per line while Filter results are displayed. Thus, we added the Extract Options command to the menu displayed when you click on the Extract All button in the Filter toolbar. Selecting this command will bring up the Filter Extract Options dialog box, where you can select the Extract All matched strings option, and the Delimiter to separate matched strings.

Another customer has asked for the ability to record the Number of Additional Visible Lines Above/Below Matched Lines to macros. Thus, we added two more parameters to the Filter method of the Document object, where you can specify these numbers. If you already have macros that use the Filter method, and you want to display additional visible lines above/below matched lines, you might need to set these parameters to non-zero values, or -1 to instruct the Filter method to not change these values.

Finally, I hope you like EmEditor, whether you use the Professional or Free version. Please contact us or write in forums if you have any questions, feature requests, or any ideas in the future.)

Thank you for using EmEditor!
Yutaka Emura

Please see EmEditor v21.8 New Features for details and screenshots.

This release also includes all bug fixes while developing v21.8.

If you use the Desktop Installer version, you can select Check for Updates on the Help to download the newest version. If this method fails, please download the newest version, and run the downloaded installer. If you use the Desktop portable version, you can go to the Download page to download the newest version. The Store App versions can be updated through Microsoft Store (64-bit or 32-bit) after a few days. If you use winget, you can type “winget install emeditor” to install the latest version of EmEditor (64-bit or 32-bit detected automatically).