AppCode 2019.2: Swift 5.1, Analyse der Codeabdeckung durch Tests, Anzeige von zerlegtem Code und mehr

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!


Mitwirkender Wahrnehmung



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:


Verschluss falten


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:


Schlüsselwörter


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:


Ausstehendeung erstellen


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:


Verweis finden


Codezeilen zusammenführen


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


Linien führen


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:


Demontageansicht


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


LLDB befugt die Vertretenigung


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:


Mitwirkender Wahrnehmung


Links im Editor sind die Berichterstattungsergebnisse:


Abdeckungsuntersuchungen


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


Trefferzahl


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


Werkzeugfenster


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:


Darstellen, Ausführen, Debuggen und Testen der Indizierung


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:


TextMate Bundles Plugin


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:


Shell-Skript-Plugin


Fenster festschreiben


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


Fenster festschreiben


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


AppCode-Team

Source: https://habr.com/ru/post/de461949/


All Articles