Astrologen haben eine Woche mit Veröffentlichungen bei JetBrains angekündigt, die Anzahl der Blog-Beiträge hat sich verdreifacht! Tatsächlich ist dies auch ein Veröffentlichungsbeitrag. Wenn Sie also an EAP teilgenommen haben, wissen Sie bereits alles.
Wenn nicht, sehen Sie sich unbedingt den Schnitt an, denn in dieser Version haben wir nicht nur eine Analyse der Codeabdeckung mit Tests und der Anzeige von zerlegtem Code, sondern auch DSL-Unterstützung für Ruby und viele andere interessante Dinge!

Schnell
Sprachunterstützung
Begann Swift 5.1 zu unterstützen:
- SE-0242 : Standardwerte für den memberweisen Initialisierer synthetisieren.
- SE-0254 : Statische und Klassen-Indizes.
- SE-0068 : Erweitern von Swift
Self
auf Klassenmitglieder und Werttypen. - SE-0260 : Bibliotheksentwicklung für stabile ABIs.
- SE-0258 : Property Wrapper
Währenddessen kann hier der Bereitschaftsgrad eingesehen werden .
Code falten
Haben Faltverschlüsse:

Hintergrundbeleuchtung
Sie können nicht einfach eine Codezeile aufnehmen und hervorheben, ohne zu wissen, um welche spezifischen Entitäten es sich handelt. Eine vollständige Hervorhebung ist daher erst nach dem vollständigen Aufbau der Caches möglich. Wir kennen die Schlüsselwörter der Sprache jedoch im Voraus und können sie hervorheben. Jetzt werden sie für Swift hervorgehoben, auch wenn die Indizierung mit Caching noch nicht beendet ist:

Generierung von Aufzählungselementen
Wir erweitern den Bereich " Aus Verwendung erstellen" weiter : Jetzt können Sie ein Aufzählungselement aus seiner Verwendung im Code erstellen, indem Sie einfach ⌥⏎ drücken:

Nutzungssuche
Bei der Suche nach Verwendungen in AppCode wird nach bestimmten Codekonstrukten gesucht (Variablen, Klassen, Funktionen, Klassenmethoden usw.). Auf diese Weise können Sie den Suchbereich im Vergleich zum Volltext erheblich einschränken. Bis vor kurzem haben wir für Swift nur angezeigt, wo ein bestimmtes Design verwendet wird. In 2019.2 haben wir eine Gruppierung von Verwendungen nach Typ implementiert, sodass wir jetzt schnell verstehen können, wie wir eine Variable, Funktion oder Klasse verwenden:

Codezeilen zusammenführen
Nichts Besonderes, jetzt können Sie die Deklaration und Initialisierung der Variablen mit Join Lines ( ⌃⇧J
) ⌃⇧J
:

Automatische Importe
Es gibt so ein Build-System - BUCK . Das BUCK-Build-System verwendet standardmäßig Header-Maps, deren Unterstützung wir vor einem Jahr hinzugefügt haben, aber keine Zeit hatten, sie für automatische Importe zu verwenden. Infolgedessen wurde nach dem Drücken von ⌥⏎ ein langer Pfad zum Header eingefügt, was absolut unnötig ist. Jetzt passiert das nicht, jetzt ist alles richtig.
Debuggen
Demontierte Codeanzeige
Kollegen von CLion haben die Zuordnung von disassembliertem Code für LLDB in Version 2019.1 vorgenommen und in dieser Version kreativ wiederverwendet:

Automatische Vervollständigung
Eine weitere nützliche Funktion, die ursprünglich in CLion ausgeführt wurde, ist die automatische Vervollständigung von Debugger-Befehlen in der LLDB-Konsole durch Drücken von ⇥ (wie in einer normalen Konsole):

Code zur Analyse der Testabdeckung
Endlich fertig und gut gemacht. Wir wählen die Testkonfiguration aus, klicken auf Mit Abdeckung ausführen und verlassen, um die Tests abzuschließen. Wir sind mit dem Ergebnis zufrieden:

Links im Editor sind die Berichterstattungsergebnisse:

Durch Klicken auf die Farbanzeige wird eine Tafel mit der Anzahl der Anrufe in diesem Abschnitt des Codes und nützlichen Aktionen angezeigt:

Die Abdeckungsstatistik wird kurz in der Projektansicht und detaillierter in einem separaten Fenster angezeigt:

Erstellen, Ausführen, Debuggen und Testen während der Indizierung
Das Indizieren und Erstellen von Caches ist kein schneller Prozess, insbesondere bei großen Projekten und insbesondere bei der allerersten Indexierung. Sie können jedoch einige Aktionen mit dem Projekt ausführen, während es ausgeführt wird, z. B. die Anwendung erstellen oder ausführen.
Diese Aktionen waren für uns lange Zeit blockiert, da für die normale Verwendung der Startkonfiguration zunächst Caches für das Projekt erstellt werden mussten. Dies ist eigentlich nicht so notwendig, daher haben wir in Version 2019.2 die Erstellung von Startkonfigurationen entscheidend vom Caching getrennt. Jetzt können Sie das Projekt unmittelbar nach seiner Eröffnung zusammenstellen, starten, debuggen oder testen:

Integration
TextMate Plugin
Oft werden sie gebeten, Unterstützung für eine Sprache hinzuzufügen, die nicht die Hauptsprache für AppCode ist. Manchmal tun wir dies, wenn wir verstehen, dass viele Benutzer es wirklich brauchen. Irgendwann haben wir einen Teil von WebStorm auf uns gezogen, damit Entwickler von React Native und PhoneGap problemlos mit HTML / CSS / JavaScript arbeiten können.
Dann kam das Plugin für Markdown , denn jede README-Datei muss bequem und schnell bearbeitet werden können. Es gibt auch ein Plug-In für AppleScript, das von einem der Kollegen erstellt wurde, nur weil er daran interessiert war, Sprachunterstützung zu schreiben.
Sie können die Unermesslichkeit jedoch nicht überfüllen, daher können wir nicht für alle Sprachen Unterstützung implementieren. Beispielsweise werden in der iOS-Entwicklung häufig auf Ruby erstellte DSLs gefunden (CocoaPods und Fastlane-Konfigurationen). Anfangs klang die Anfrage wie "Schalten Sie die gesamte Ruby-Unterstützung ein", aber in Wirklichkeit werden diese Konfigurationen nicht oft bearbeitet, und das Abrufen von Half-RubyMine erscheint aufgrund dieser nicht sinnvoll. Gleichzeitig ist es auch nicht gut, keine Unterstützung zu haben.
In dieser Version haben Kollegen von WebStorm in die Standardinstallation ein Plugin mit Unterstützung für TextMate-Bundles aufgenommen, das einer Reihe von Sprachen eine einfache Hervorhebung und automatische Vervollständigung ermöglicht. Wir sind ihrem Beispiel gefolgt und jetzt haben wir auch folgendes:

Aufgrund einiger Widersprüche bei der Unterstützung von Fastlane seitens dieser Bundles selbst bleibt das Konfigurationsprinzip für Ruby DSL das gleiche (Sie können jedoch helfen, diese Situation zu korrigieren ).
Shell Script Plugin
Skripte sind in Projekten üblich, daher haben wir Unterstützung für deren Bearbeitung hinzugefügt:

Fenster festschreiben
Genauer gesagt gibt es kein separates Fenster mehr - jetzt ist es Teil der Registerkarte Lokale Änderungen:

Dies ist das Ende. Schreiben Sie alle Fragen und Vorschläge gleich hier in die Kommentare - wir werden sie gerne beantworten!
AppCode-Team