EmEditor v22.5.2 released!

Today, we are releasing EmEditor v22.5.2.

v22.5.2 includes the following bug fixes and improvements.

  • Fixed an issue related to Convert on the tooltip.
  • Fixed an issue related to the Function Bar.
  • Fixed various potential crashes.

Please see EmEditor v22.5 New Features for details and screenshots.

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.

EmEditor v22.5.1 released!

Today, we are releasing EmEditor v22.5.1.

v22.5.1 includes the following bug fixes and improvements.

  • Fixed an issue related to Convert All on the tooltip.
  • Fixed an issue related to the Function Bar.
  • Fixed an issue related to file change notifications.
  • Fixed various potential crashes.

Please see EmEditor v22.5 New Features for details and screenshots.

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.

EmEditor v22.5.0 released (including technical review)!

Today, we are releasing EmEditor v22.5.0.

I recently bought a PC with a 13th Gen Intel Core i7-13700. Since the 12th Gen Core processors, Intel has introduced a hybrid architecture that combines P-Cores for performance and E-Cores for efficiency. This new architecture is interesting because a P-Core runs faster than an E-Core. All previous versions of EmEditor assumed that all threads run at the same speed. If a P-Core thread runs faster than an E-Core thread, P-Core threads finish their task earlier than E-Core threads and need to wait for E-Core threads to finish their task. Just for clarification, thread speed could fluctuate even without E-Cores and P-Cores; for instance, if a thread is interrupted by a background app or system process, the thread will become slower than other threads. Nevertheless, the existence of P-Cores and E-Cores could exacerbate the situation.

To overcome this situation, I optimized the code so that v22.5 will dynamically manage thread load balancing. The following screenshots show the CPU usage before and after optimization while searching a very large file for a regular expression. The overall CPU usage goes down suddenly at the end of the task after optimization.

A previous version (v22.4.2) assumes each thread runs at the same speed. As a result, some threads finish earlier than other threads, and the overall CPU usage goes down gradually toward the end of a search task.
The new version (v22.5) dynamically manages the thread load balancing so that every thread works efficiently until the task ends. The overall CPU usages goes down suddenly at the end of the task. As a result, the time to finish the task becomes shorter.

While developing v22.5, we spent most of our time optimizing our code to improve the speed of many commands using various techniques, including multi-threading. For instance, the speed of the Copy command was improved by 1.49 times through multi-threading. While refactoring and optimizing, I had opportunities to review the code. The older version inadvertently did not enable the SHA instruction set if the CPU did not support the AVX-512 instruction set. v22.5 fixed this bug and improved the speed of several commands, including Delete Duplicate Lines, on many CPUs that do not support AVX-512. I will continue to review and optimize the code for speed in coming versions.

When I first used my new PC to build our code with Visual C++, I was disappointed to know that the build was very slow. We found that the memory usage reached 100% when building the code because only 16 GB of physical memory (RAM) was available. The CPU has 24 logical cores, and Visual C++ was using 24 threads to build the code. Adjusting the number of threads from 24 to 7 in the Visual C++ options made the compiler build the code faster. Likewise, EmEditor was slower when using 24 threads compared to 3 threads. Increasing the physical memory from 16 GB to 80 GB made both apps faster with 24 threads. Therefore, if you have a modern CPU with a large number of logical cores, I would strongly recommend increasing the physical memory. For instance, if your CPU has 24 logical cores, I would recommend at least 32 GB of physical memory in your PC. If you don’t have enough memory, you might need to adjust the number of threads, which can be specified on the Advanced page of the Customize dialog box in EmEditor. In v22.5, I adjusted the default number of threads to the nearest GB amount of physical memory if the number of logical cores exceeds this GB value.

A customer asked for an improvement in file change detection. The older version checked the current file size and timestamp every 5 seconds by default, and if it determined that the file had changed, a message box “File changed by another program. Reload with changes?” would appear. v22.5 uses a Windows API to detect file changes more efficiently.

Another customer asked for the ability to click on the left edge of a line number to toggle the bookmark. With older versions, you would have had to select the Toggle Bookmark command or press CTRL + F2 to toggle the bookmark. I understand that clicking on the line number would be easier and somewhat standard among text editors, so I added this ability if line numbers are visible.

Makoto Emura added the ability to use the Language Server Protocol for the Search Symbols command and the ability to use the JSON language server. He also improved the CommitList plug-in by adding commits ahead/behind indicators for the Pull and Push buttons.

We will stop supporting Windows 7, 8.1, and Server 2008 R2 in the near future. Microsoft has already stopped supporting these versions of Windows. Using these old versions of Windows is strongly discouraged for security reasons. We will also stop developing the 32-bit version of EmEditor. We would like to focus our development and testing resources on the 64-bit version of EmEditor.

Since we want many people to use EmEditor, we have kept our EmEditor price as low as possible. The first-year price of an annual subscription, US$40 (or US$39.99 earlier), has not changed by more than 1 cent since we started offering annual subscription licensing. However, we do not tolerate the illegal use of EmEditor Professional. I have seen some websites selling or giving away EmEditor Professional “crack” keys. These are illegal sites, and keys obtained from these sites are not supported by us. I sometimes receive technical questions about EmEditor Professional even though the users do not have valid licenses. I would rather spend my time supporting our customers who have purchased valid licenses. In order to eradicate these illegal sites, and more importantly, to continue developing EmEditor and supporting our customers, we will add code to check the authenticity of licenses against our server database. If a license is not valid, the code will stop the Professional version from working. This check may not happen as soon as you launch EmEditor, and it may not happen every time you launch EmEditor. Due to the nature and purpose of this code, we will not disclose details about how it works. However, no personal information will be transmitted, and this check will not prevent you from using EmEditor without an Internet connection. It is important for us to protect our software and our customers who have purchased valid licenses. I hope you understand the background reason for this minimum license check and accept it. Please also see How to calculate the number of licenses to check whether you own enough necessary number of licenses.

We will announce our license price update and ending sales of lifetime licenses in a separate blog.

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

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

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.

EmEditor v22.4.2 released!

Today, we are releasing EmEditor v22.4.2.

v22.4.2 includes the following bug fixes and improvements.

Please see EmEditor v22.4 New Features for details and screenshots.

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.

EmEditor v22.4.1 released!

Today, we are releasing EmEditor v22.4.1.

v22.4.1 includes the following bug fixes and improvements.

  • Adjusted the horizontal mouse wheel change while pressing the Shift key.
  • Fixed the behavior of Replace in Files with \J replacement expressions.
  • Fixed an issue where Replace in Files did not show the replacement count in the status bar.
  • Allowed drag and drop the vertical selection to copy or move.
  • Fixed a potential crash on Delete Columns, Clear Contents, and other conversion commands with a very large CSV file.
  • Fixed CSV column adjustment issue after Undo.
  • Fixed a potential crash on the Find in Files command with the Output as the Direct Open option.
  • Fixed a potential freeze on the Compare command if the Split vertically option was not selected. The new version does NOT highlight changed lines character-by-character anymore unless the Split vertically option is selected.
  • Fixed a display issue on a CSV mode while row headings are enabled.
  • Improved the Left and Home key movements while row headings are enabled in the CSV cell selection mode.

Please see EmEditor v22.4 New Features for details and screenshots.

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.

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

EmEditor v22.3.0 released (including technical review)!

Today, we are releasing EmEditor v22.3.0.

We have been receiving many crash reports since we improved the crash reporting feature, and I’ve spent much of my time investigating the cause of reported crashes. Fortunately, many crashes have been resolved, and we released frequent minor releases between v22.2.0 and v22.3.0 because we wanted to help those customers who experienced crashes as early as possible. We also added more information to the crash report to provide more context. Thanks to those crash reports and fixes, we are receiving fewer crash reports on newer versions. We thank all the users who submit their crash reports. We strongly recommend all users update to this latest version of EmEditor because of the improved reliability and robustness. The crash reporting feature is available on EmEditor Professional and EmEditor Free.

During investigations, we found that some crashes were caused by the Find/Replace command while CSV syntax check was running in the background immediately after opening a large CSV file. We determined that the Find/Replace commands should wait until the background CSV syntax check has completed. Thus the new version shows a message box to abort CSV syntax check before Search, Replace, and some other operations by default. This prompt message can be disabled by clearing the Prompt when CSV Syntax Check is still running option in the CSV Options page of the Customize dialog box. The background CSV syntax check will be aborted automatically when you are about to Find/Replace while the prompt message is disabled. The CSV-related features are available only on EmEditor Professional.

The speed of various operations is as important as reliability for EmEditor. The new version improved the speed of the Extract command in the Find dialog box using improved algorithms. In our test, the Extract command became up 3.46 times faster compared to v22.2.0. These commands are available only on EmEditor Professional.

A customer has asked for the ability to sum numbers even if numbers contain digit grouping (thousand) separators. For instance, if the selected text is:

1,001.5 2,001.1

On previous versions of EmEditor, the sum was 1 + 1.5 + 2 + 1.1 = 5.6 because a comma (,) was not recognized as a part of a number.

On the new version, the sum is 1001.5 + 2001.1 = 3002.6 if the Allow digit grouping option in the Sort page of the Customize dialog box is set, and EmEditor shows “3,002.6” on the status bar. The actual separator depends on the selected Locale, which can be set on the same page. If German (Germany) (de-DE) is selected for the current Locale, and if the selected text is:

1.001,5 2.001,1

EmEditor shows “3,000.6” on the status bar. The number format displayed on the status bar depends on Windows Locale.

The digit grouping separator must appear at every 3 digits (thousand, million, billion, …). EmEditor currently does not support other digit grouping formats such as 2- or 4-digit grouping. If the selected text is:

1,04 2,0005

commas behave as simple separators of four independent numbers because they are not at thousand positions. Thus, EmEditor shows “12” (= 1 + 4 + 2 + 5).

The ability to parse numbers with digit grouping separators extends to the Sort Smallest to Largest and Sort Largest to Smallest commands.

Moreover, v22.3 allows Number Range Expressions to match numbers with digit grouping separators. For instance, a number range:

[ 1000.0 , 2000.0 ]

does match both

1203,3

and

1,203.3

Number range expressions allow you to specify the decimal point independently from the current locale. If the digit grouping separator of the current locale is identical to the custom decimal point, the decimal point takes higher priority over the digit grouping separator, thus the digit grouping separators will not be used. For instance, if the selected locale is English (United States) (en-US), a number range expression:

[ 1000,0 , 2000,0 "," ]

does match:

1203,3

but does NOT match:

1,203,3

By default, the digit grouping separators are disabled to be compatible with older versions of EmEditor. To enable all the above features related to the digit grouping separators, you will need to set the Allow digit grouping option in the Sort page of the Customize dialog box. This option is available only on EmEditor Professional.

Another customer has asked for the ability to Use ISO date time format for rename and Set Hidden and/or Read-only attributes while backing up files. These options became available in the Backup page of configuration properties. The time is always UTC time so that we won’t need to worry about file name conflicts when you change the system time zone. For instance, a backup of:

filename.txt

can be saved as:

filename_2023-04-09T180943.2016212Z.txt

if the same file name already exists in the same folder. These new backup options are available on EmEditor Professional and EmEditor Free.

Makoto Emura added experimental support for the Language Server Protocol (LSP), which has been requested by several customers including this customer. v22.3 shows tooltips when you hover the mouse pointer on function names and other symbols. We plan to support other LSP features in the future. Currently, supported programming languages include HTML, CSS, JavaScript, Perl, C/C++, and Python, but we plan to add more programming languages in the future. Some programming languages require you to install the language server. Click the ? button or press F1 in the Language Server page of configuration properties to see Help for additional installation instructions. The tooltip feature is disabled by default, and you will need to set the Enable Language Server Protocol (experimental) option in the Language Server page of configuration properties to use this new feature. We labeled this feature experimental because the UI and feature set may be changed in the future. The tooltip feature is available only on EmEditor Professional.

The CommitList plug-in, also developed by Makoto, was improved by allowing you to select more than one changed file in the sidebar. This allows you to stage or unstage multiple files simultaneously.

Finally, Makoto has also improved the WebPreview plug-in so that it could preview Markdown files. This feature was requested by several customers (1, 2). To preview Markdown files, the “Markdown” configuration, which is one of the default configurations of EmEditor, must be selected. Plug-ins are available only on EmEditor Professional.

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

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

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

EmEditor v22.2.12 released!

Today, we are releasing EmEditor v22.2.12.

v22.2.12 includes all bug fixes at beta 26 (22.2.926).

Please see EmEditor v22.2 New Features for details and screenshots.

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.

EmEditor v22.2.11 released!

Today, we are releasing EmEditor v22.2.11.

v22.2.11 includes all bug fixes from beta 23 (22.2.923) through beta 25 (22.2.925).

Please see EmEditor v22.2 New Features for details and screenshots.

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.

EmEditor v22.2.10 released!

Today, we are releasing EmEditor v22.2.10.

v22.2.10 includes all bug fixes at beta 22 (22.2.922).

Please see EmEditor v22.2 New Features for details and screenshots.

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.