Xcode prépare un mode avec plusieurs curseurs en même temps
Xcode, l’outil de développement d’Apple, va peut-être bientôt gagner une nouvelle fonction assez commune dans le monde des éditeurs de code : la possibilité d’insérer plusieurs curseurs en même temps. Cela permet de modifier rapidement un élément présent sur plusieurs lignes, avec davantage de souplesse qu’un chercher/remplacer, ou bien pour aller plus vite s’il ne s’agit que de deux ou trois occurrences.
Cette fonction n’est pas encore disponible par défaut, mais une option masquée, à activer via le terminal, permet d’en disposer avec Xcode 9.3. Si vous voulez l’essayer, saisissez cette commande dans une fenêtre de terminal :
defaults write com.apple.dt.Xcode PegasusMultipleCursorsEnabled -bool true
Ensuite, vous pouvez insérer plusieurs curseurs en cliquant tout en maintenant la touche ⌘
pressée. À l’usage, on comprend vite pourquoi c’est une option qui n’est pas proposée par défaut, ni même dans la fenêtre de réglages de Xcode : cela ne fonctionne pas très bien. Normalement, un clic avec ⌘
sert à afficher un menu contextuel qui permet ensuite de réaliser quelques actions, que ce soit pour afficher de l’aide, ou afficher la fonction de référence d’une commande. Cette interface vient gêner l’insertion des curseurs suivants, il faut souvent s’y reprendre à deux fois et viser les espaces.
Pour ne rien arranger, même quand on a réussi à insérer plusieurs curseurs, on peut effectivement saisir du texte sur chaque ligne, mais pas en supprimer. La touche de retour en arrière retire tous les curseurs additionnels et n’agit que sur le premier, ce qui est pénible et même dangereux si vous n’êtes pas attentif. Bref, la fonction existe, mais elle n’est pas prête. Ce sera peut-être pour Xcode 10 ?
(Psst @MacG ! Sur iOS, on ne peut pas lire la vidéo : le bouton OK de Twitter n’est pas accessible...)
@stefhan
De mon côté ça fonctionne
@radeon
Ici aussi (6S 10.3)
@radeon
Non non : https://app.box.com/s/4b6x1219gzpmvex4lnj6g9cqshf7ii6r
ps : j’ai un iPhone, pas une phablette...
@stefhan
Merci pour l'info, ils ont pénibles aussi avec cette alerte systématique…
Bref, en attendant qu'on améliore ça dans l'app, j'ai publié la vidéo sur nos serveurs.
@stefhan
Ha ok ben sur un 7 sous 11.3 ça passe, même si c'est tjrs pénible de devoir faire plusieurs clics pour lancer la vidéo, donc ça dépend des tailles d'écrans on dirait.
PS j'ai un iPhone pas un mini truc où mon pouce fait la moitié de la largeur de l'écran ?
En tout cas ça serait bien pratique ?
@radeon
Très pratique, je l’utilise au quotidien sur IntelliJ.
Par contre sur XCode il n’y a pas moyen de personnaliser les raccourcis ? C’est forcément Option ou rien ?
Dire que cette fonction existe dans l'ecrasante majorité des editeurs de code est un euphemisme: on le trouve deja dans Vim...
Bref Apple avec le temps commence a rattraper son (gros) retard.
Cette fonction est tres utile et pas que pour les editeurs de code. Souvent on peut faire autrement en utilisant des regex, mais ce n'est pas toujours le cas.
Je suis curieux de voir comment Apple va finir par résoudre son probleme ici.
J'ai toujours tendance à penser qu'un code où il y a plusieurs lignes identiques est un code mal externalisé.
Mais c'est vrai que ça m'arrive souvent et que je ne vois pas comment je pourrais faire ?
Xojo, l’IDE que j’utilise, a trois boutons pour sélectionner les “zones d’effet” de la Recherche ou du Remplacemet:
la méthode actuelle, (celle à l’écran)
l'objet actuel, (fenêtre, module, classe, etc.)
le projet actuel. (le projet propriétaire de la fenêtre actuellement à l’écran).
Alors, plusieurs curseurs, ça me fait rire très fort (on verra si ça marche un jour).
Moi, ce qui me fait rire, c'est la flopée de bugs que contient ce RAD. Quelques louches sont rajoutées à chaque nouvelle version.
@Emile Schwarz
3 curseurs ça permet d’être beaucoup plus souple, regarde la vidéo de l’article, tu peux greffer une extension commune à 3 noms de variable différents
Et ça marche déjà très bien dans la majorité des éditeurs de code donc je ne vois pas ce qui te fait rire si fort
L’homo-superior aura trois yeux ?
« Normalement, un clic avec ⌘ sert à afficher un menu contextuel qui permet ensuite de réaliser quelques actions, que ce soit pour afficher de l’aide, ou afficher la fonction de référence d’une commande. »
Bah, de toute façon toutes les touches modificatrices (command, option, control, shift) sont déjà utilisées pour réaliser une action dans Xcode. Ils n’ont qu’à associer cette fonction à la combinaison option+command, et ce problème sera réglé.
> ça marche déjà très bien dans la majorité des éditeurs de code
Ah ! Les éditeurs de code “cryptés” (non accessibles au commun des mortels).
De toute façon, je ris d’un rien ;)
Le temps dira si c’est idiot (si on doit en rire) ou pas (si on peut rire de moi ;-:)
>un clic avec ⌘ sert à afficher un menu contextuel
Ctrl-Clic pour Menu Contextuel.
@ Emile Schwarz : « Ctrl-Clic pour Menu Contextuel. »
Oui, c'est le raccourci standard dans Mac OS et il est évidemment utilisé aussi dans Xcode, pour obtenir le même menu contextuel qu'on obtiendrait via un clic secondaire (ou toute autre méthode qu'on préfère).
Mais dans Xcode, il y a en plus cmd+clic qui sert à faire apparaître (comme indiqué dans l'article) un autre menu, plus spécifique (et à l'aspect différent, non standard), servant à passer rapidement à la déclaration ou la documentation du symbole sur lequel on a cliqué.
OK. Merci.
Note: je n’ai jamais pu aller plus loin que le lancement d’XCode !
Que fait-on après ?
Dans l’IDE que j’utilise, c’est simple: une palette de controls: deux clicks ajote le control dans la fenêtre, un menu permet d’ajouter des éléments, etc. C’est clair et simple (comme l’était HyperCard).
Le pire, c’est que c’est pareil dans tous les autres IDE que j’ai essayé :(
@ Emile Schwarz : « Que fait-on après ? »
On lit la documentation ! :-)
Blague à part : Xcode, comme IDE, c'est simple aussi. Interface Builder (auparavant logiciel à part, puis intégré à Xcode depuis quelques années maintenant) présente lui aussi (et depuis presque aussi longtemps qu'HyperCard) une palette d'éléments d'interface à placer dans ta fenêtre, avant d'en éditer éventuellement certains attributs, puis de les relier au code.
La différence, c'est qu'on n'a pas la facilité qu'on avait dans HyperCard, de pouvoir accéder directement depuis un élément d'interface au code qui le gère. Ça peut se comprendre, mais parfois je regrette un peu que cette approche n'ait pas été reprise et adaptée pour Xcode.
Bref, la partir édition d'interface est tout aussi facile dans Xcode que dans tout autre IDE.
En revanche, on ne coupe pas à de la lecture de documentation pour écrire le code qui gère tout ça (encore que dans certains cas on puisse presque complètement se passer d'écrire du code).
J’aimerais que Apple de concentre à faire fonctionner Xcode correctement avec un seul curseur, avant de multiplier la complexité avec plusieurs curseurs. Et de laisser aux IDE de qualité ces choses plus évoluées.
La comparaison avec Jetbrains et Visual Studio est salement cruelle.
Et pourtant je n’ai pas des exigences déraisonnables. Déjà juste une demi-journée sans que le machin ne se paralyse ou n’explose ça serait cool. J’ai CLion ouvert (et jamais relancé) depuis Pâques : je n’en demande pas tant, mais ce n’est pas inhabituel avec cet IDE.