AppCode 2019.1: Swift 5, rétro-éclairage, navigation et auto-complétion améliorés, expressions mobiles et bien plus encore

Bonjour Ă  tous!


Il y a une semaine, nous avons publié AppCode 2019.1 - parlons des changements. Sous la coupe un tas de nouveautés, utiles, corrigées et complétées.


Splash



Rapide


Swift 5


Toutes les nouvelles fonctionnalités de Swift 5 fonctionnent correctement dans AppCode 2019.1:


  • SE-0200 LittĂ©raux de texte brut
  • SE-0213 Initialisation littĂ©rale par coercition
  • SE-0216 Callables dynamiques
  • SE-0224 Prise en charge de l'opĂ©rateur «moins de» dans les conditions de compilation
  • SE-0227 Chemin de clĂ© d'identitĂ©
  • SE-0228 Fix ExpressibleByStringInterpolation
  • SE-0230 Aplatir les options imbriquĂ©es rĂ©sultant d'un try?

Renommer


Il y avait un problÚme avec le changement de nom des méthodes surchargées et des méthodes de la classe parente - mais maintenant cela n'existe plus.


Navigation de définition


Il semblerait que cela pourrait ĂȘtre plus simple et plus Ă©lĂ©mentaire pour le passage Ă  la dĂ©finition d'une mĂ©thode ou d'une classe? Action standard et familiĂšre.


Et tout cela est vrai dans Objective-C: le nom du type est sĂ©parĂ© lors de l'initialisation de l'objet, la mĂ©thode d'initialisation elle-mĂȘme est distincte. Par consĂ©quent, si le curseur se trouve sur le nom du type, nous passons Ă  la dĂ©finition du type, s'il est sur l'initialiseur, Ă  la dĂ©finition de l'initialiseur. Mais dans Swift, les choses se compliquent. L'initialiseur a fusionnĂ© avec le nom du type ensemble, et si nous reproduisons le comportement de Xcode, nous perdons la possibilitĂ© de basculer vers l'initialiseur. Si nous laissons le comportement d'AppCode 2018.3.x, nous rompons l'habitude de l'utilisateur («comme dans Xcode», c'est-Ă -dire la transition non pas Ă  la dĂ©finition d'initialisation, mais Ă  la dĂ©finition de type). Pour des raisons Ă©videntes, les utilisateurs ne l'aiment pas.


En conséquence, nous avons développé une solution intermédiaire: aprÚs tout, l'expression qui initialise l'objet dans Swift se compose toujours de deux parties. Tout ce qui est entre parenthÚses est un nom de type et tout ce qui est à l'intérieur est une signature d'initialisation. Par conséquent, si le curseur se trouve sur le nom du type, nous passons à la définition du type, si à l'intérieur des parenthÚses - à la définition de l'initialiseur:


Aller à la déclaration


Les deux cas d'utilisation sont enregistrés, tout le monde est content.


Déplacer des expressions


Pendant que les utilisateurs Xcode sĂ©lectionnent avec la souris et copient-collent, les utilisateurs AppCode placent le curseur sur l'expression et la dĂ©placent complĂštement avec un lĂ©ger clic ⇧⌘↑ / ↓ :


Déplacer l'instruction


Fonctionne pour les boucles, fonctions, méthodes, classes, conditions, en général, pour presque tout.


Littéraux multilignes


Comment transformer un littĂ©ral monoligne en multiligne? Dans AppCode, cliquez simplement sur ⏎ :


Chaos multilignes


Rétroéclairage, auto-complétion, analyse de code et tout-tout


Plus nous construisons correctement l'arborescence de symboles, qui est utilisĂ©e pour la mise en Ă©vidence, l'analyse de code, la navigation et d'autres fonctions IDE (mĂȘme pour afficher des variables dans le dĂ©bogueur), mieux et plus correctement l'AppCode fonctionnera. Dans cette version, nous avons rĂ©solu plusieurs problĂšmes fondamentaux qui ont gĂąchĂ© la vie des utilisateurs:


  • Nous avons commencĂ© Ă  crĂ©er des symboles de bibliothĂšque pour les simulateurs et les appareils. Auparavant, ils ne construisaient que pour le simulateur.
  • Cela fait, ils ont commencĂ© Ă  dĂ©terminer correctement la plate-forme actuelle (simulateur / appareil) et Ă  transfĂ©rer correctement son annotateur de clang Ă  Objective-C et SourceKit Ă  Swift. Pourquoi est-ce important? Par exemple, SourceKit n'affichera pas les erreurs et les avertissements s'il est incorrect pour lui de passer le dossier avec les produits d'assemblage dans les arguments. Ce problĂšme devrait disparaĂźtre.
  • Nous avons commencĂ© Ă  traiter correctement DerivedSources et toutes les sources gĂ©nĂ©rĂ©es dans ce dossier (Core Data, Intents).

Objective-C / C / C ++


Des collÚgues de CLion ont ajouté des styles de dénomination de construction de code pour C / C ++, et nous les avons également obtenus pour Objective-C ( Preferences | Editor | Code Style | C/C++/Objective-C | Naming Convention) :


Convention de dénomination


Lancement et débogage


AppCode est dĂ©sormais capable de rejoindre des processus en cours d'exĂ©cution non seulement sur le simulateur, mais Ă©galement sur l'appareil ( ⇧⌘A → Attach to process ):


Attacher au processus


Ajout de la possibilité de sélectionner la langue et la région de l'application dans les paramÚtres de configuration de lancement:


Langue et région d'application


Run to Cursor peut ĂȘtre appelĂ© non seulement via ⌄F9 , mais aussi en cliquant sur le numĂ©ro de ligne dans l'Ă©diteur:


Muettes variables


Le recalcul des variables pendant le dĂ©bogage peut dĂ©sormais ĂȘtre dĂ©sactivĂ© Ă  l'aide de l'action Muet Variables dans le menu contextuel:


Muettes variables


ThĂšmes pour l'IDE


Un lecteur attentif a déjà remarqué que toutes les captures d'écran de la publication ont été réalisées en utilisant le nouveau thÚme Dark Purple :


ThÚme violet foncé


Les thĂšmes IDE peuvent maintenant ĂȘtre créés par vous-mĂȘme , donc en plus de plusieurs thĂšmes créés par nos soins, vous pouvez dĂ©jĂ  trouver plusieurs options de conception personnalisĂ©es dans le rĂ©fĂ©rentiel de plugins . Et jusqu'au 3 mai, vous pouvez non seulement crĂ©er votre propre thĂšme, mais aussi participer Ă  un concours rĂ©cemment annoncĂ© par nous.


Liste des extraits de code récemment consultés / modifiés


Il existe plusieurs étapes utiles pour naviguer vers des emplacements récemment ouverts ou modifiés dans votre code:


  • Fichiers rĂ©cents ( ⌘E )
  • Commutateur ( ⌃⇄ )
  • Aller au dernier emplacement de modification ( ⇧⌘⌫ )

Le passage à la derniÚre section de code modifiée est généralement difficile à surestimer, en particulier lors de la modification d'un fichier volumineux.


Maintenant, il y a aussi une liste des lieux rĂ©cemment consultĂ©s / modifiĂ©s des emplacements rĂ©cents ( ⇧⌘E ):


Lieux récents


Ceci est la version. Écrivez toutes les questions, souhaits et mĂȘme les rapports de bugs ici dans les commentaires - nous serons heureux de rĂ©pondre!


Équipe AppCode

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


All Articles