EmEditor v22.4.0 released (including technical review)!

Today, we are releasing EmEditor v22.4.0.

On this new version (v22.4), we improved the behavior and status message when opening a very large file from a slow or network drive. In previous versions, EmEditor was optimized for opening a very large file from a fast hard drive or SSD. It allocated a large chunk of memory to read file contents, and did not update the progress on the status bar or Large File Controller while processing the chunk of memory. This works well when reading a large file from a fast hard drive or SSD, but it looked non-responsive if reading a file from a slow or network drive. v22.4 measures the time it takes to read the first 1 MB of a file when opening. Then it estimates the reading speed and how many bytes it should read before updating the progress on the status bar and Large File Controller. This new algorithm allows EmEditor to show the progress more frequently for slow drives while maintaining the fast reading speed for faster drives.

v22.4 also improved the speed of Find in Files while improving the response time when canceling Find in Files. This was made possible by making multiple zones in a file to search in order to respond to a cancellation request while maintaining the overall speed by using optimized, multi-threaded code. In our test, the Find in Files became 2.76 times faster compared to v22.3. v22.4 also improves the speed of several other commands including the Delete Columns (CSV), Clear Contents (CSV), Sort Randomly, and base 64 encoding/decoding commands. The Clear Contents (CSV) command is called when pressing the DELETE key while selecting CSV cells or columns in the CSV cell selection mode. This is one of the most often used operations in CSV editing, and I hope the speed improvement will increase your productivity. The speed of the Sort Randomly command was further improved by using a fast pseudorandom number generator (Xoshiro-cpp).

A customer asked for the ability to update the highlighting of matched strings while you are typing a search term in the Find dialog box. I’ve known this feature from other editors, and I decided to add this feature to v22.4. The feature is turned off by default, but can be enabled by selecting the Auto Highlight in the menu displayed when you click the > button next to the Find drop-down list box in the Find dialog box. When this option is on, the search highlighting will be turned on only while the Find/Replace/Find in Files/Replace in Files dialog box or the Find toolbar is displayed. This feature is available on EmEditor Professional and EmEditor Free.

Several customers have asked for an improvement in vertical scrolling when you select multiple lines of text and drag the mouse (move the mouse while pressing the left mouse button) past the bottom edge of the editor window. Some customers prefer scrolling down while other customers prefer jumping to the bottom of the document. Some customers would like to select many lines in the middle of the document, for instance, from Line 1 million to Line 2 million in a 3 million-line document. To satisfy all these customers, v22.4 introduces a new scrolling mode while you drag the mouse as well as new mouse pointer shapes as explained below.

First, v22.4 changes the mouse pointer shape when you drag the mouse past the edge of the editor window. The farther you move the mouse pointer past the edge of the window, the faster the scrolling speed becomes. If you move the mouse pointer too far away from the window, the scrolling behaves as if you were dragging the scroll box (thumb). This mode allows you to move the endpoint of the selection easily to any position in the document. By default, the Minimap will be displayed when you enter this mode. Pressing the ESC key while still pressing the left mouse button will switch back to the normal selection mode. This feature is available on EmEditor Professional and EmEditor Free.

Makoto Emura added the syntax check feature using Language Server Protocol (LSP). The new feature is available in JavaScript as well as other languages, and you can check the syntax of your macros written in JavaScript. This feature is available only on EmEditor Professional.

He also improved the CommitList plug-in by adding the ability to checkout commits and create new branches. This feature is available only on EmEditor Professional.

He also created a new test script to test some EmEditor features with random documents and parameters, such as the Split Columns command, and he already found some bugs. We are searching for unknown bugs in this way.

Our previously called “beta” versions are now called “preview” versions because “beta” sounds unstable, but they are often more stable than officially released versions since we continuously fix bugs. We also want more people to try new features in new versions, so we believe the new versions should be called “preview”, not “beta”. I would encourage you to update EmEditor to the latest version including “preview” versions if possible.

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

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

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 Emurasoft.EmEditor to install the latest version of EmEditor (64-bit or 32-bit detected automatically).