Atom 1.24 & 1.25 Beta erschienen.

LanguageMode API & Read-Only Modus: Atom 1.24 ist da
Keine Kommentare

Der Texteditor Atom hat ein Update auf Version 1.24 erhalten. Viele Bugfixes und vier größere Änderungen hat es gegeben, dazu ist die Beta von Version 1.25 ab sofort ebenfalls als Download erhältlich.

Atom gehört zu den beliebtesten Open-Source-Texteditoren. Vor allem die vielen Möglichkeiten zur Anpassung haben dem Programm einen guten Ruf in der Community verschafft. Jetzt ist der Editor in Version 1.24 erschienen. Diese bringt neben diversen kleineren Änderungen vier wichtige Neuerungen mit:

  • Read-only Texteditor
  • neues LanguageMode API
  • asynchrone Kontextmenüs
  • Automatisches Scrollen beim Erweitern und Schließen von Code

Read-only und angepasste API

Packages des Texteditors können nun mit einem readonly-Attribut versehen werden, sodass Nutzer keine Änderungen vornehmen können. Dies kann beispielsweise sinnvoll sein, wenn der Code aus der GitHub-Historie des Package-Erstellers stammt. Les- und Kopierbar bleibt der angezeigte Code aber auch mit dieser Funktion. Die Implementierung in ein Package erfolgt mit diesem Abschnitt: editorElement.setReadOnly(true).

Mit der Änderungen am Language-API bereiten sich die Entwickler von Atom bereits auf kommende Änderungen beim Syntax-Highlighting und beim Erweitern und Einklappen von Code vor (siehe unten). Statt wie bisher .setGrammar(Grammar) im Editor zu nutzen, kann einem Buffer in der atom.grammar-Registry jetzt ein Sprachmodus zugewiesen werden:

const buffer = editor.getBuffer()
atom.grammars.assignLanguageMode(buffer, 'source.js')

Zusätzlich kann die Sprache für einen Buffer durch den Befehl atom.grammars.autoAssignLanguageMode(buffer) aus Dateiendung und aktuellem Inhalt abgeleitet werden. Durch atom.grammars.maintainLanguageMode(buffer) wird ein abgeleiteter Sprachmodus zugewiesen und laufend aktualisiert, wenn sich der Dateipfad des Buffers ändert oder neue Sprachpakete geladen werden. Trotzdem sind die Grammar-spezifischen APIs weiterhin nutzbar, um die Rückwärtskompabilität zu gewährleisten.

Änderungen an UI und UX

Zwei entscheidende Änderung für das Userinterface und damit auch die UX bringen die Einführung asynchroner Kontextmenüs und das automatische Scrollen mit sich. Ein Rechtsklick führt nicht mehr dazu, dass Ereignisschleifen oder Rendering gestoppt werden, wenn ein Menü geöffnet wird. Ebenfalls der leichteren Bedienbarkeit dient eine Neuerung bei der Entfaltung von Codeblöcken. Diese Aktion konnte in früheren Versionen von Atom den Cursor schnell aus dem Bildschirm katapultieren. Ab Version 1.24 wird Atom automatisch scrollen, damit der Cursor auch nach dem Entfalten großer Codeblöcke sichtbar bleibt.

Ausblick auf die Atom 1.25 Beta

Das nächste Update von Atom steht schon in den Startlöchern und die umfangreichen Änderungen in Version 1.25 sind bereits als Beta verfügbar. Die folgenden Updates sind auf dem Weg zur finalen Implementierung:

  • Verbessertes Syntax-Highlighting und Einklappen von Code
  • Verbesserungen für Python und HTML
  • Änderungen am GitHub Package
  • Anpassung von Performance und Reaktivität

Die Beta im Detail

Mit dem inkrementellen Parsing-Funktion „Tree-Sitter“ sollen Syntax-Highlighting und das Ein- und Ausklappen von Code laut Entwicklern „fundamental verbessert“ werden. Derzeit ist das System für JavaScript, TypeScript, Python, C, C++, Go und Bash verfügbar. Um es einzuschalten, muss die Option „Use Tree Sitter Parsers“ in den Settings von Atom aktiviert werden. Ein Beispiel veranschaulicht, was mit Tree-Sitter möglich ist. Folgende Funktion wurde bisher vollständig eingeklappt:

int add(int left,
int right) {
return left + right;
}

Und sah dann aus, wie im folgenden Bild. Darunter zu sehen ist die Einklappung mit Tree-Sitter. Deutlich erkennbar ist, dass an bestimmten Stellen eine Einklappung erfolgt, die ohne Tree-Sitter nur ein- oder ausgeklappt wären.Außerdem können mit Tree-Sitter die Bereiche für das Ein- und Ausklappen nach Syntaxknoten ausgewählt werden, sodass bestimmte Abschnitte gezielt gefaltet werden können.

Quelle: Atom.io

Quelle: Atom.io

Auch für Python und HTML gibt es Neuigkeiten: Wenn Python-Code editiert wird, unterstützt der Tokenizer jetzt Annotationen für Funktionen, asynchrone Funktionen, String-Formatierung, F-Strings und binäre Strings. In HTML-Dokumenten werden style-Attribute als CSS tokenisiert.

Auch am GitHub-Package haben die Entwickler gearbeitet. So können ab Version 1.25 unter anderem Änderungen am File Mode nachvollzogen und angezeigt werden, Außerdem ändert die Diff View nicht mehr die Scrollposition, wenn das nicht gewünscht ist.

Der letzte bedeutende Abschnitt der Änderungen in Version 1.25 beziehen sich auf Performance und Reaktivität von Atom. Das Kommando atom --wait öffnet Files jetzt in bestehenden Fenstern des Editors. So soll das Programm noch besser für das Schreiben von Commit Messages geeignet sein. „Confirm“- und „Save“-Dialoge, die mit der Atom-API gestartet werden, können jetzt asynchron sein. Die internen Caller haben dafür ein Update erhalten, allerdings müssen Package-Autoren die asynchrone Form bewusst auswählen, indem sie Callback-Argumente angeben:

// Asynchronous atom.confirm()
atom.confirm({
message: 'Click yes to win',
buttons: ['Yes', 'No']
}, response => {
if (response === 0) {
console.log('YOU WIN!')
} else {
console.log("Well well aren't we contrary")
}
})

// Asynchronous showSaveDialog()
atom.getCurrentWindow().showSaveDialog({
title: 'Save File',
defaultPath: process.cwd()
}, chosenPath => {
console.log(`Successfully saved to ${chosenPath}.`)
})

Neben diesen größeren Änderungen sind noch viele weitere in den Releasenotes zum Update und zur Betaversion zu finden. Auf der Atom-Website stehen sowohl die stabile Version 1.24 als auch die vorläufige Version 1.25 ab sofort zum Download zur Verfügung.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -