EmEditor v22.2.0 released (including technical review)!

Today, we are releasing EmEditor v22.2.0.

We have received many crash reports since we improved the crash reporting feature on the previous version. Those crash reports helped us improve the reliability and robustness of EmEditor. We have looked into all the crash reports we have received, and allowed us to fix many issues that we wouldn’t be able to find otherwise. We thank all the users who submit their crash reports. We noticed that many crashes were caused by memory allocation failures due to a low memory situation. This situation could have been avoided if users had increased the virtual memory on their systems. v22.2 will show a message box indicating a low memory situation as well as a clickable URL to explain how to increase the virtual memory if the situation happens.

How to deal with out-of-memory situations

In the Advanced page of the Customize dialog box, a user can specify memory sizes used to open a large file. The larger are these sizes, the faster EmEditor performs, but if it is too large, it causes memory allocation failures. For instance, if you open a 1 GB file, specifying a little larger value than 1 GB in the Maximum Memory Size per File can make EmEditor perform best. In previous versions, these default values were determined only by physical memory size. However, the system with larger virtual memory should use more memory than those with smaller virtual memory. Therefore, v22.2 added a new option called Automatically manage all memory sizes. This option is turned on by default, and will look at the available virtual memory size as well as the physical memory size to determine optimal memory sizes.

Advanced page of Customize dialog

When we looked into crash reports, we also noticed that many crashes happened in a low memory situation while saving the Undo information. For instance, if a user opens a 10 GB file and selects one of the Sort commands, the whole 10 GB file will be saved to memory before sorting to provide the Undo feature by default. 10 GB is a significant amount of memory. I don’t believe many users would want the Undo information by sacrificing such a large memory space. EmEditor has an option called Always Discard Lengthy Undo Information to Accelerate to prevent this from happening, but this option is turned off by default. v22.2 adds this same option to the Progress window so that users could notice and turn it on more easily.

Progress window

In previous versions of EmEditor, if you opened a CSV file, EmEditor did not switch to a CSV mode until it finished loading the entire CSV file contents. v22.2 switches to a CSV mode when it opens only the first 1 MB of file contents if it detects a CSV mode. Moreover, the CSV syntax check is carried out in the background while you start viewing, scrolling, and searching the file in CSV mode (editing is disabled while CSV syntax check is in progress). The new CSV detection works even if embedded newlines exist in a CSV file.

v22.2 improved the speed of adjusting CSV separator positions, CSV syntax check, switching to the normal mode from a CSV mode, and various conversion and sort commands while working on a very large file. The speed improvements are more significant with the help of the aforementioned automatic memory size management. In our test, the Sort A to Z command became 4.69 times faster compared to v21.1.4 using 10 GB random ASCII file.

If you Find in Files and save the result file, and later open the file again, the hyperlinks in the file disappear. In previous versions, you needed to run a macro document.HighlightTag = true; to turn on the hyperlinks. V22.2 allows you to turn on the hyperlinks easily with the new command called Tag Links, and it is available under the View menu.

v22.2 added the \V expression to the Replacement Expression Syntax and allowed you to use the V8 JavaScript engine for replacement expressions. However, as I wrote in my previous technical review, using V8 expressions could cause EmEditor to behave slower than the previous \J expression (JScript), so I would recommend using the \V expression only when necessary.

\V expression – JavaScript (V8)

Finally, the CommitList plug-in, developed by Makoto Emura, was improved by adding the ability to Pull, Push, and Fetch commits as well as the ability to filter commit history by a Commit message, Author, ID (hash), or Tag.

Filter History dialog

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 v22.2 New Features for details and screenshots.

This release also includes all bug fixes while developing v22.0.

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).