Ils ont ajouté la prise en charge de Swift 4.2, effectué la génération et la navigation pour déterminer le type de Swift, amélioré le formatage, pris en charge les extensions iOS dans le débogueur, commencé à mieux fonctionner dans les projets avec plusieurs cibles, et ont également créé un tas de fonctionnalités intéressantes et utiles.

Rapide
Pris en charge toutes les fonctionnalités de la version 4.2 qui pourraient affecter l'IDE:
- SE-0192 (Gestion des cas d'énumération futurs)
- SE-0193 (Inline et spécialisation inter-modules)
- SE-0194 (Collection dérivée de cas énumérés)
- SE-0195 ( types définis par l'utilisateur de «recherche dynamique de membres»)
- SE-0196 (Directives de diagnostic du compilateur)
- SE-0212 (Directive sur la version du compilateur)
Si vous avez encore raté quelque chose, assurez-vous d'écrire dans les commentaires. Et sur Swift 5, vous pouvez lire ici .
Génération
Nous avons effectué toutes les actions de génération standard d'Objective-C - initialiseurs, description
/ debugDescription
, hashValue
et opérateur de comparaison:

Pour toutes les actions à l'exception de l'initialiseur, vous pouvez également sélectionner le modèle utilisé pour la génération.
Navigation de définition de type
Tout est simple ici - ⇧⌘B
et ⇧⌘B
immédiatement à la définition de type:

Éclairage du point de sortie
Nous avons appris à mettre en évidence les points de sortie en réglant le curseur pour break
, continue
, try
, throw
ou return
:

Formatage
Dans presque toutes les versions, nous améliorons quelque chose dans le moteur de formatage, voici ce que nous avons fait dans ceci:
- corrigé l'indentation pour les littéraux de chaîne multi-lignes:

- ajout de paramètres de formatage de code dans les directives du préprocesseur:

- a permis de modifier l'alignement des expressions avec l'opérateur ternaire dans
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Ternary conditional operation
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Ternary conditional operation
Prise en charge de Swift Package Manager dans CLion
Avec CLion, nous avons non seulement un support général C / C ++, mais aussi un support général Swift. Pendant longtemps, le plugin, qui ajoute la prise en charge des projets SPM dans CLion, a utilisé CMake comme modèle de projet. Cette année, ils ont décidé qu'il n'était plus possible de vivre comme ça - c'était gênant à utiliser, et ils ont soutenu SPM directement. Vous pouvez maintenant travailler comme ceci:
Cela s'est très bien passé, il ne reste plus qu'à finaliser l'intégration avec les tests. Et compte tenu du fait que CLion dispose de la fonctionnalité WebStorm pour éditer HTML / JavaScript, vous pouvez travailler avec des bases de données de la même manière que dans DataGrip , il existe un plugin Docker et bien plus encore, nous obtenons que vous pouvez toujours écrire des backends sur Swift dedans :
Non, nous ne prévoyons pas encore travailler avec SourceKit-LSP. La raison est simple: presque tout est ce qu'il porte avec lui (et ce qu'il ne porte pas encore, aussi).
Objective-C / C / C ++
Projets cibles multiples
Enfin, nous avons résolu les problèmes de mise en évidence et de saisie semi-automatique pour les classes du même nom connectées à différentes cibles dans le projet. Nous prévoyons également de corriger la navigation .
Modifier la signature
Auparavant, lors de la modification de la signature en C / C ++, AppCode perdait les valeurs par défaut des arguments - et maintenant il les traite correctement:

La documentation
Nous avons commencé à formater les substitutions de macro dans la documentation rapide ( F1
):

Multiline TODO
Dans AppCode, tous les commentaires du formulaire //FIXME
/ //TODO
peuvent être rapidement visualisés via ⌘6
. Ici, vous pouvez définir des modèles pour vos messages, ce qui est pratique:

Maintenant, nous avons ajouté le support TODO multi-lignes pour Objective-C / C / C ++ - il suffit pour chaque ligne sauf la première d'ajouter un retrait:

Code mixte
Correction de problèmes avec le changement de nom des constructions de swift_name
en Objective-C et les énumérations dans Swift / Objective-C.
Performances
Ils ont corrigé les frises lors de l'appel de boîtes de dialogue liées à l'exécution de tests, par exemple Exécuter des configurations avec des configurations de test.
Lancement et débogage
Extensions IOS
AppCode a appris à déboguer les extensions iOS - tout comme Xcode:

Console LLDB pour Swift
Nous avons corrigé l'auto-complétion dans la console de débogage pour Swift (pour Objective-C / C / C ++ tout fonctionnait comme ça). Tous les partisans p
/ po
et d' expression
se réjouissent, les autres, comme auparavant, utilisent l' expression ⌥F8
Expression ( ⌥F8
):

Plugin Trainer pour l'IDE

Souvent, lors des conférences, nous entendons une demande de fournir des documents sur la migration de Xcode vers AppCode, sur les fonctionnalités de l'EDI que vous devez d'abord connaître. Au cours du processus de publication, nous avons fait le premier pas important dans cette direction - nous avons ajouté une pièce pour Swift au formateur de fonctionnalités IDE. L'essentiel est simple - nous installons le plugin, ouvrons les leçons, suivons les instructions et voyons avec des exemples simples quelles sont les opportunités, comment les utiliser et où les trouver. Nous recommandons à tout le monde d'y aller - même si vous utilisez l'IDE depuis longtemps. Avec une forte probabilité, quelque chose de nouveau et d'utile sera toujours trouvé :).
IDE
Cherchez partout
Recherche combinée partout, allez dans Classe / Fichier / Symbole / Action:

Exécutez n'importe quoi
Maintenant, n'importe quelle configuration peut être démarrée en appuyant deux fois sur ⌃:

Ou ouvrez un projet en tapant open
.
Plugins
Complètement repensé l'apparence de la section avec des plugins dans l'IDE:

Contrôle de version
Maintenant, nous pouvons travailler avec les sous-modules Git et afficher facilement les demandes de tirage de Github:

Thème à contraste élevé
Maintenant c'est le cas - à la fois pour l'éditeur et pour l'IDE (vous pouvez sélectionner dans Preferences | Appearance & Behavior | Appearance
):

Et ensuite?
Nous prévoyons de consacrer la prochaine version entièrement à la résolution des problèmes. Une exception est la prise en charge des nouvelles versions de Swift. En général, plus de stabilité, une meilleure auto-complétion avec navigation et rétro-éclairage, moins d'interférences au travail.
C’est tout! Comme toujours, téléchargez - ici , les bugs - sur le tracker , posez des questions générales ici.