EmEditor v23.0.0 veröffentlicht (einschließlich technischem Review)!

Heute veröffentlichen wir EmEditor v23.0.0.

Herkömmlicherweise sollte diese Version v22.6 heißen, aber aufgrund der zahlreichen Änderungen und weil es sich um ein wirklich großes Update handelt und zugleich um das letzte große Update des Jahres, haben wir beschlossen, uns an den letzten beiden Ziffern des Jahres 2023 zu orientieren und sie v23.0 zu nennen.

Die jüngsten Fortschritte bei generativer KI, einschließlich ChatGPT, ermöglichen über Webbrowser die Nutzung verschiedener Informationen und Dienste. Unter EmEditor-Anwendern, einschließlich dieses Kunden, wächst der Bedarf, diese Webdienste direkt in EmEditor zu nutzen, ohne einen externen Browser verwenden zu müssen. In der neuen Version haben wir eine Funktion hinzugefügt, die einen Webbrowser in einer benutzerdefinierten Leiste von EmEditor anzeigt. Dieser Browser ist für die Zusammenarbeit mit Makros ausgelegt und ermöglicht es, einen Teil des Dokuments im Editor an eine im Webbrowser angezeigte Website zu senden oder umgekehrt. Um diese Funktionen zu nutzen, stellen Sie sicher, dass im Dialogfeld Makros anpassen auf der Seite Optionen die Option V8 als JavaScript-Engine verwenden ausgewählt ist, oder fügen Sie am Anfang jedes Makros die folgende Zeile hinzu:

#language = "V8"

Es wurden zwei spezielle Funktionen hinzugefügt:

(1) web.-Schlüsselwort: Um auf das Document Object Model (DOM) von HTML zuzugreifen, verwenden Sie das Schlüsselwort web. in Kleinbuchstaben. Diese Unterscheidung ist erforderlich, um Objekte in EmEditor von Objekten im Webbrowser zu unterscheiden. Zum Beispiel in einem Makro:

document.write( "Test" );

Es ist unklar, ob „Test“ in der Editoransicht von EmEditor oder im HTML des Webbrowsers angezeigt werden soll. Um „Test“ im Webbrowser anzuzeigen, fügen Sie das Präfix web. hinzu:

// Displays "Test" in Web Browser
web.document.write( "Test" );

Mit dieser Syntax werden Schlüsselwörter, die mit web. beginnen, als im Webbrowser ausgeführte Anweisungen interpretiert, was den Zugriff auf das DOM ermöglicht. Beispiele sind:

// Returns the URL of the current web page.
alert( web.location.href );

// Returns the preferred language of the browser.
alert( web.navigator.language );

// Pastes the text of the current web page into a new document.
editor.NewFile();
write( web.document.documentElement.innerText );

// Pastes the HTML of the current web page into a new document.
editor.NewFile();
write( web.document.documentElement.outerHTML );

(2) onLoad-Ereignis: Wenn das zuletzt ausgeführte Makro eine Funktion enthält, die mit der Funktion onLoad() beginnt, wird sie nur einmal aufgerufen, wenn die Webseite aktualisiert oder eine neue Seite geladen wird. Diese Funktionalität ermöglicht Aufgaben wie das Abrufen von Suchergebnissen auf Suchseiten. Zum Beispiel:

function onLoad() {
    // Retrieves the HTML of the page and pastes it into a new document.
    editor.NewFile();
    document.write( web.document.documentElement.outerHTML );  
}

Das Bing.jsee-Makrobeispiel zeigt, wie Sie bestimmte Informationen aus HTML-Suchergebnissen abrufen und anzeigen. Beachten Sie, dass einige Suchseiten wie die kostenlose Version von ChatGPT möglicherweise keine Seitenaktualisierungen oder das Laden neuer Seiten auslösen. In solchen Fällen tritt das onLoad()-Ereignis nicht auf, sodass Suchergebnisse mit diesem Ereignis nicht abgerufen werden können. Dennoch hatte Makoto Emura die Idee, ein HTML-Element mit der MutationObserver-Schnittstelle zu überwachen und den Text bei Änderungen abzurufen. Das ChatGPT.jsee-Makrobeispiel zeigt, wie Sie mit dieser Schnittstelle Antworten von ChatGPT abrufen. Wenn Sie dieses Makro unverändert ausführen, wird der ausgewählte Text nur in das Eingabefeld von ChatGPT eingefügt. Wenn Sie jedoch die Zeilen 99 bis 100 auskommentieren, wird der Text tatsächlich gesendet. Haftungsausschluss: Das Format der Antworten von Bing und ChatGPT kann sich in Zukunft jederzeit ändern, was die Funktionalität dieser Makros beeinträchtigen kann. Die Makros dienen ausschließlich der Demonstration der neuen Funktionen von EmEditor v23.0. Wir garantieren nicht, dass diese Makros in Zukunft funktionieren.

Eine weitere wesentliche Änderung in v23.0 ist die Optimierung für die Verarbeitung großer Dateien. EmEditor-Anwender arbeiten oft mit großen CSV-Dateien, die manchmal mehrere Gigabyte groß sind. Um auch bei solchen Dateien eine reibungslose Leistung zu gewährleisten, wurden umfangreiche Tests für Vorgänge wie Löschen, Einfügen, Zusammenführen, Sortieren und Einfügen von Spalten durchgeführt. Die Befehle wurden durch Multithreading und andere Optimierungstechniken optimiert, was zu einer etwa 21- bis 34-fachen Leistungssteigerung im Vergleich zu v22.5 führte.

Im CSV-Konverter fehlte früheren Versionen Multithreading-Code, was bei großen Dateien zu langsamer Leistung führte. Die neue Version verbessert dies durch Multithreading und SIMD-Code, sodass die CSV-Formatkonvertierung selbst bei mehreren Gigabyte großen Dateien in wenigen Sekunden erfolgt.

Für Japanisch (JIS) und Japanisch (EUC) verzichtet v23.0 auf die Verwendung des herkömmlichen Windows-API-Objekts MultiLanguage zugunsten einer benutzerdefinierten Nachschlagetabelle. Diese Änderung verbessert die Erkennungslogik für ungültige Zeichen und erhöht die Geschwindigkeit von Vorgängen wie dem Öffnen und Durchsuchen von Dateien erheblich.

In v22.5 wird durch Klicken auf den linken Rand der Zeilennummern das Lesezeichen umgeschaltet. Aufgrund von Benutzerfeedback wurde eine Option zum Deaktivieren dieser Funktion hinzugefügt, und zwar auf der Seite Maus des Dialogfelds Anpassen unter Klicken auf den linken Rand einer Zeilennummer, um das Lesezeichen umzuschalten.

Die Markdown-Konfiguration wurde verbessert, sodass durch das Hinzufügen einer speziellen Syntax eine genauere Darstellung von Hervorhebungsformaten wie Fett- und Kursivschrift möglich ist.

Mit dem Language Server Protocol hat Makoto Emura eine Funktion zum Formatieren der ausgewählten Zeichenfolge oder des gesamten Dokuments hinzugefügt. Dieser Befehl, der über das Menü Konvertieren als Formatieren (Tastenkürzel: STRG+K, F) erreichbar ist, beseitigt Inkonsistenzen wie die Anzahl der führenden Tabs oder Leerzeichen sowie die Position und das Vorhandensein von Leerzeichen um Klammern () oder {} und verbessert so die Lesbarkeit. Benutzer können den zu formatierenden Code auswählen; wenn nichts ausgewählt ist, fragt ein Dialogfeld, ob das gesamte Dokument formatiert werden soll. Alternativ können Sie STRG+K, D drücken, um das gesamte Dokument zu formatieren. Um den Befehl Formatieren zu aktivieren, muss die Option Language Server Protocol auf der Seite Language Server des Dialogfelds Anpassen aktiviert und die gewünschte Sprache in der Dropdown-Liste Dokumenttyp ausgewählt sein. Beachten Sie, dass Formatierungseinstellungen wie Leerzeichen um Klammern vom Language Server abhängen und nicht in EmEditor angepasst werden können.

Ab dieser Version wird das Language Server Protocol offiziell für die Konfigurationen C++, CSS, HTML, JavaScript, JavaScript for EmEditor, Perl und Python unterstützt. Benutzer können diese Funktion jederzeit in den Einstellungen auf der Seite Language Server des Dialogfelds Anpassen deaktivieren.

Makoto hat das CommitList-Plug-in (Git) verbessert, indem er die Option Untermodul aktualisieren hinzugefügt hat, mit der Änderungen an einem Untermodul abgerufen werden. Außerdem hat er den Menüpunkt Änderungen rückgängig machen aus der Liste der bereitgestellten Dateien (nicht der nicht bereitgestellten Dateien) in der CommitList-Seitenleiste entfernt, um Verwirrung hinsichtlich des erwarteten Verhaltens zu vermeiden.

Schließlich wurde das herkömmliche Hilfesystem, das ein veraltetes Design hatte und schwer zu warten war, mit Sphinx neu gestaltet. Das neue Hilfesystem wird auf unserer GitHub-Seite gepflegt und erstellt.

Ich hoffe, dass Ihnen EmEditor gefällt, unabhängig davon, ob Sie die Version Professional oder Free verwenden. Bitte kontaktieren Sie uns oder schreiben Sie in den Foren, wenn Sie Fragen, Funktionswünsche oder Ideen für die Zukunft haben.

Vielen Dank, dass Sie EmEditor verwenden!
— Yutaka Emura

Einzelheiten und Screenshots finden Sie unter Neue Funktionen in EmEditor v23.0.

Diese Version enthält außerdem alle Fehlerbehebungen aus der Entwicklung von v23.0.

Wenn Sie die Desktop-Installer-Version verwenden, können Sie im Menü Hilfe die Option Auf Updates prüfen wählen, um die neueste Version herunterzuladen. Wenn diese Methode fehlschlägt, laden Sie die neueste Version herunter und führen Sie den heruntergeladenen Installer aus. Wenn Sie die portable Desktop-Version verwenden, können Sie die neueste Version auf der Downloadseite herunterladen. Die Store-App-Versionen können nach einigen Tagen über den Microsoft Store (64-Bit oder 32-Bit) aktualisiert werden.