Logo von Developer

Suche
Abonnieren

Tägliche Top-News bei WhatsApp, Facebook Messenger, Telegram & Insta

preisvergleich_weiss

Recherche in 1.702.466 Produkten

Rainald Menge-Sonnentag 2

Quellcode-Editor GitHub Atom bereitet sich auf inkrementellen Parser vor

GitHub Atom bereitet sich auf inkrementellen Parser vor

Der Quellcode-Editor bietet in Version 1.24 erste Anpassungen der LanguageMode-API. Das kommende Release, das parallel als Beta erschienen ist, bringt ein neues System für Syntaxhervorhebung und Code-Folding.

Das Atom-Team bei GitHub hat Version 1.24 des auf dem Electron-Framework aufbauenden Sourcecode-Editor veröffentlicht. Die Neuerungen im aktuellen Release halten sich in Grenzen. Nennenswert ist vor allem die Option, Editor-Fenster als readonly zu kennzeichnen, um Eingaben zu verhindern. Die Funktion ist unter anderem dann sinnvoll, wenn der Code nicht lokal vorliegt. Eine andere Anwendung ist die Anzeige von Code aus der Git-Historie, für den Atom lediglich zum Einsatz kommt, um ihn mit Syntaxhervorhebung besser lesbar anzuzeigen.

Anzeige

Eben diese farbliche Hervorhebung adressiert eine größere Neuerung, die in vollem Umfang jedoch erst für Atom 1.25 auf dem Plan steht, aber im aktuellen Release bereits ihre Schatten voraus wirft. Der Editor erhält ein komplett neues System für das Code Folding zum Ein- und Ausblenden von zusammengehörigen Codeabschnitten und die Syntaxhervorhebung.

Der neue Parsing-Mechanismus heißt Tree-Sitter und ist als separates Open-Source-Projekt verfügbar. Er befindet sich seit geraumer Zeit in Entwicklung und hat aktuell Beta-Status. Er soll vor allem das Code Folding deutlich verbessern, betrifft aber auch die Syntaxhervorhebung. Er baut beim Parsen des Sourcecodes Syntaxbäume auf.

Für das Ein- und Ausblenden von Codeblöcken interpretiert Atom den Code bisher nicht, sondern nimmt lediglich die Einrückung als Hinweise. Das führt beim Umbruch langer Codezeilen innerhalb der Parameterangaben zu unübersichtlichen Ergebnissen:

int Funktion(int ein_viel_zu_langer_ParameterName_1,
int ein_viel_zu_langer_ParameterName_2) {
return ein_Ergebnis;
}

ergibt beim Code Folding derzeit folgende, nichtssagende Darstellung:

int Funktion (ein_viel_zu_langer_ParameterName_1, ...

Nach dem neuen System sind folgende drei Darstellungen möglich:

int Funktion(...){
return ein_Ergebins;
}
int Funktion(ein_viel_zu_langer_ParameterName_1,
ein_viel_zu_langer_ParameterName_2) {..}
int Funktion(...) {...}

Da Tree-Sitter den Code interpretiert, benötigt er passende Grammatiken für die jeweiligen Programmiersprachen. Derzeit existieren solche für JavaScript, TypeScript, Python, C, C++, Go und Bash. Der derzeit als Beta-Variante verfügbare Atom 1.25 enthält den Tree-Sitter, der allerdings standardmäßig deaktiviert ist. Zum Aktivieren dient die Einstellung Use Tree Sitter Parsers in den Core-Settings von Atom.

Das aktuelle Release Atom 1.24 hat den neuen Parser noch nicht an Bord, enthält aber bereits Änderungen an der LanguageMode-API: Statt .setGrammar(grammar) auf einen Editor anzuwenden, gibt es die Methode atom.grammars.assignLanguageMode(buffer, file), um die passende Programmiersprache für den aktuellen Buffer auszuwählen. Die Funktion atom.grammars.autoAssignLanguageMode(buffer) schließt die Programmiersprache aus der Endung, verwendet also beispielsweise für ".js" JavaScript .

Anzeige

Weitere Neuerungen in Atom 1.24 wie die asynchronen Kontextmenüs und in der Beta von Atom 1.25 lassen sich dem Atom-Blog entnehmen. Die vollständige Liste der Neuerungen ist in den Release-Notes zu finden. Letztere enthält zudem Verweise auf plattformspezifische Binaries des Open-Source-Editors. (rme)

2 Kommentare

Themen:

Anzeige
  1. Programmiersprache: Rust 1.24 kompiliert inkrementell

    Programmiersprache: Rust 1.24 kompiliert inkrementell

    Mit dem aktuellen Release ist die inkrementelle Kompilierung, die das Team bereits 2016 vorgestellt hat, standardmäßig aktiviert. Außerdem gibt es ein Tool zum sauberen Formatieren des Codes.

  2. HHVM 3.23 ist auf das Language Server Protocol vorbereitet

    HHVM .3.23 ist auf das Language Server Protocol vorbereitet

    Die Hip Hop Virtual Machine soll sich mit dem Protokoll künftig einfach in Tools wie Visual Studio Code und Eclipse einbinden lassen. Daneben gibt es unter anderem Änderungen für optional- und nullable-Felder in Shapes.

  3. Programmiersprache: TypeScript 2.4 bringt dynamische Import-Befehle

    Programmiersprachen: TypeScript 2.4 bringt dynamische import-Befehle

    Die neue Version von Microsofts JavaScript-Aufsatz bringt zudem die Möglichkeit, Enums aus Strings zu erstellen. Des Weiteren kann das System bei Generics bessere Rückschlüsse auf die passenden Typen ziehen.

  4. Programmiersprachen: PHP 7.2 erscheint pünktlich

    PHP 7.2

    Bei der frischen Version läuft nicht nur das Release nach Plan, sondern auch der Wechsel der Krypto-Bibliothek auf Libsodium steht bereits seit Anfang des Jahres fest. Die sprachlichen Neuerungen sollen vor allem mehr Klarheit schaffen.

  1. Apache Spark 2.0: Zweiter Akt einer Erfolgsgeschichte

    Apache Spark 2.0: Zweiter Akt einer Erfolgsgeschichte

    Apache Spark hat sich inzwischen als einheitliche Analyseplattform für Big Data und Ersatz für MapReduce etabliert. Version 2.0 bringt eine neue Streaming-Engine, Erweiterungen der API sowie Verbesserungen bei der Performance und beim Speichermanagement.

  2. Eine eigene Programmiersprache mit Xtext modellieren

    Eine eigene Programmiersprache mit Xtext modellieren

    Mit Xtext, einem Sprachframework auf der JVM, ist es mit wenig Aufwand möglich, eine eigene Programmiersprache zu definieren. Dieser Artikel zeigt den Werdegang einer kleinen domänenspezifischen Sprache von der Definition der Grammatik bis hin zur lauffähigen IDE.

  3. Fortran im Wandel der Zeit

    Fortran im Wandel der Zeit

    Trotz ihres stolzen Alters von knapp sechzig Jahren ist Fortran heute noch an allerlei Orten anzutreffen. Besonders für Simulationsaufgaben steht die Sprache aufgrund ihres guten Performance noch immer hoch im Kurs.

  1. Sternenexplosion: Amateur-Astronom beobachtet erstmals Beginn einer Supernova

    Astronomie: Amateur-Astronom beobachtet erstmals Beginn einer Supernova

    Der Argentinier Victor Buso widmet sich in seiner Freizeit der Astronomie: Nun ist es ihm offenbar als erstem Menschen überhaupt gelungen, die Anfänge einer Supernova abzulichten. Forscher erhoffen sich wichtige neue Erkenntnisse.

  2. Fritzbox 7583: Neuer AVM-Router für extraschnelles DSL

    MWC: Fritzbox 7583 für extraschnelles DSL

    Äußerlich gleich, innen flotter als der Vorgänger 7580: Die Fritzbox 7583 schafft an gebondeten G.fast-Anschlüssen maximal 3 GBit/s Downloadrate. Super Vectoring beherrscht sie aber auch.

  3. Klartext: Der Frosch, der Auto fährt

    Klartext

    Bei Comma.ai kann man sich an einem Open-Source-Projekt zum autonomen Fahren beteiligen. Das ist cool. Gründer George Hotz prahlt gern: "We are going to win autonomous cars." Das ist weniger cool. Ich verbreite etwas Ernüchterung

  4. Studie: IT-Freiberufler nagen nicht am Hungertuch

    Xing AG

    Selbständige werden häufig als Risikogruppe für Altersarmut dargestellt, was laut einer repräsentativen Allensbach-Studie zumindest für den IT-Bereich nicht zutrifft. Dort liege das frei verwertbare Monatsnetto-Einkommen für Freelancer bei fast 4700 Euro.

Anzeige