Touches

Eclipse permet une personnalisation poussée du fonctionnement du clavier. Les raccourcis clavier et les séquences de touches sont associés à des commandes particulières.

Frappes de touches, séquences de touches et associations de touches

Un "raccourci clavier" consiste à appuyer sur une touche du clavier, tout en maintenant appuyée, le cas échéant, l'une des touches modificatrices suivantes : Ctrl, Alt (Option sur Macintosh), Maj ou Commande (sur Macintosh uniquement). Par exemple, appuyer sur la touche Ctrl et la maintenir enfoncée, puis appuyer sur A produit le raccourci clavier Ctrl+A. Actionnées seules, les touches modificatrices ne constituent pas des raccourcis clavier.

Une "séquence de touches" correspond à la frappe d'une ou de plusieurs touches. Habituellement, Emacs affecte des séquences de deux ou trois touches à des commandes particulières. Par exemple, la séquence de touches normale pour Fermer tout est Ctrl+X Ctrl+C dans Emacs. Pour entrer cette séquence de touches, vous devez taper Ctrl+X puis Ctrl+C. Eclipse prend en charge des séquences de touches dont la longueur est arbitraire, mais il est recommandé que les raccourcis clavier comportent au maximum quatre frappes de touches.

Une " association de touches" est l'affectation d'une séquence de touches à une commande.

Schémas

Un 'schéma' est un jeu d'associations. Eclipse comporte deux schémas :

Le schéma par Défaut comprend un jeu général d'associations, souvent connu par les utilisateurs comme des séquences de touches habituelles. Par exemple, Ctrl+A est affectée à Sélectionner tout, et Ctrl+S est affectée Enregistrer.

Le schéma Emacs comprend un jeu d'associations de touches familier aux utilisateurs d'Emacs. Par exemple, l'association Ctrl+X H est affectée à Sélectionner tout, et Ctrl+X S est affectée à Enregistrer.

Il est important de comprendre pourquoi le schéma Emacs est dit 'étendre le schéma par défaut'. Le schéma Emacs n'est pas un jeu complet d'associations comme le schéma par Défaut. Il emprunte plutôt au schéma par Défaut là où cela est possible, définissant seulement les associations explicites de style Emacs là où elles varient du schéma par Défaut. Seules les commandes courantes comme Sélectionner tous, Sauvegarder, etc., possèdent des séquences de touches Emacs.

L'utilisateur décide quel schéma est le plus confortable à utiliser en changeant le réglage 'Schéme' à partir de la page des préférences de touches. Si l'utilisateur choisit le schéma par Défaut, toutes les associations Emacs seront ignorées. Si l'utilisateur choisit le schéma Emacs, les affectations explicites des séquences de touches de style Emacs prévaudront sur toutes les affectations en conflit dans le schéma par Défaut.

Contextes

Les associations de touches peuvent varier selon le contexte en cours d'Eclipse.

Des séquences de touches similaires ont des effets différents selon que les éléments traités se trouvent dans un éditeur de fichier Java ou dans un éditeur de fichier html, par exemple. Ainsi, Ctrl+B est associée à Compiler dans un contexte d'édition de fichier Java, alors que Ctrl+B est affecté à Texte gras dans un contexte d'édition de fichier HTML. Ce contexte est généralement déterminé par l'élément actif, mais il peut également être influencé par la fenêtre ou boîte de dialogue active. Si l'élément actif ne choisit pas de contexte particulier, le workbench considérera que le contexte actif est Dans des fenêtres.

Eclipse comprend neuf différents contextes. Il s'agit des contextes suivants :

A l'instar des configurations, les contextes peuvent étendre d'autres contextes. Par exemple, le contexte Edition du code source Java emprunte des associations de touches au contexte Edition du texte, qui, à son tour, emprunte des associations de touches au contexte Dans des fenêtres.

Remarque : il est déconseillé de faire progresser une association de touches à un contexte que celle-ci étend. Par exemple, il n'est pas conseillé de déplacer une association de touches Edition du texte au contexte Dans des boîtes de dialogue ou des fenêtres. Cela risque de générer des résultats imprévus.

Il est possible que certaines associations de touches fonctionnent dans des boîtes de dialogue. Ces associations de touches sont affectées au contexte Dans des boîtes de dialogue ou des fenêtres. Il s'agit, par exemple, de l'association de touches correspondant à "Couper". Il est possible de modifier ces associations de touches. Par exemple, la fonction Couper correspond à Ctrl+X dans des boîtes de dialogue et à Ctrl+W dans des fenêtres.

Plateforme et environnement local

Les associations de touches peuvent également varier selon la plateforme et l'environnement local. Sur Macintosh, Commande+S est associée à Sauvegarder, l'équivalent Windows est Ctrl+S. Avec les paramètres de langue chinoise (zh), Alt+/ est associée à Assistant de contenu, en lieu et place de Ctrl+espace.

Les paramètres de plateforme et les paramètres régionaux sont chargés une fois pour toutes lors du démarrage d'Eclipse (ils ne peuvent varier lors de la session en cours).

Personnalisation de associations de touches

Avec les séquences de touches multiples, les schémas et les contextes, il y a plusieurs choses à garder à l'esprit en personnalisant les associations de touches. Pour simplifier, cette activité est centralisée dans la page de préférences Touches.

Sélectionnez Fenêtre > Préférences > Générales > Touches pour la page des préférences de touches.

Page de préférences Touches dans laquelle Emacs est la configuration active et la commande Fermer est sélectionnée

Dans cet exemple, nous avons choisi de sélectionner Emacs comme schéma, et nous avons sélectionné la commande Fermer à partir de la liste des commandes. Les informations relatives à cette option ainsi que les associations de touches qui lui sont associées s'affichent.

Notez que Fermer a trois séquences de touches qui lui sont affectées : Ctrl+F4 , Ctrl+W dans le schéma par Défaut et Ctrl+X K dans le schéma Emacs. Les deux séquences sont attribuées dans le contexte Dans des fenêtres. Ainsi, si l'utilisateur définit le schéma à Défaut, Ctrl+F4 et Ctrl+W seront affectées à Fermer alors que Ctrl+X K ne le seront pas. Toutefois, si l'utilisateur définit le schéma à Emacs, Ctrl+X K seront affectées à Fermer. De même, étant donné que le schéma Emacs emprunte également les associations de touches au schéma par Défaut, Ctrl+F4 et Ctrl+W seront également affectées à Fermer sous réserve que cette association de touches n'ait pas été affectée à une autre commande dans le schéma Emacs. Dans cet exemple, "Ctrl+W" est associée à Couper dans le schéma Emacs.

Sous la liste des séquences de touches associées à Fermer figure un emplacement pour ajouter ou supprimer des associations de touches. Par défaut, le contexte Dans des fenêtres est sélectionné.

En entrant la séquence de touches Ctrl+W, vous pouvez remarquer que le bouton "Ajouter" s'active. De même, la liste des commandes associées à la séquence de touches Ctrl+W apparaît sous le bouton Ajouter. Vous pouvez remarquer que Ctrl+W est associée à la commande Couper dans le contexte Dans des boîtes de dialogues ou des fenêtres. Cliquez sur le bouton "Ajouter" pour que Ctrl+W soit attribuée à Fermer.

Caractère dynamique des associations de touches

Les associations de touches sont fournies par des plugins qui, dans Eclipse, peuvent être ajoutés ou supprimés. Ces associations déclarées par des plugins peuvent être également ajoutées ou supprimées. Eclipse enregistre les associations de touches personnalisées de manière à ce que ceci compense cela. Considérez l'exemple ci-dessus où l'association Ctrl+Alt+W a été affectée à Couper dans le schéma Emacs. Supposons que l'utilisateur installe un nouveau plugin qui associe Ctrl+Alt+W à une commande précise. Eclipse préservera l'affectation de l'utilisateur à Cut.

Résolution de conflits

Il n'existe qu'un nombre limité d'associations de touches simples à affecter à une multitude de commandes. Nous avons vu que schéma, contexte, plateforme et locale partitionnent les affectations des séquences de touches en domaines là où elles ne sont pas en conflit les unes avec les autres. Prenons le cas du raccourci Ctrl+B si les contextes n'existent pas. Un plugin pourrait affecter Ctrl+B à Compiler, un autre affecterait le raccourci Ctrl+B à Gras. Comment Eclipse résoudrait ce conflit ?

Bien que réduits au minimum par les mécanismes décrits précédemment, de tels conflits peuvent se produire. Deux plugins, indépendants l'un de l'autre, peuvent affecter la même séquence de touches à deux commandes différentes avec le même contexte, schéma, plateforme et environnement local. Considérez le cas où un plugin affecte Ctrl+F4 dans le contexte Dans fenêtres et le schéma par Défaut à l'une de ses commandes. Ceci rentre directement en conflit avec l'affectation Eclipse de Ctrl+F4 à la commande Fermer dans les mêmes contexte et schéma.

Voici le problème. Il serait impossible d'appeler les deux commandes, ni de choisir quelle commande recevrait la séquence de touches. La seule chose correcte à faire serait d'ignorer les deux associations de touches, en rendant Ctrl+F4 sans utilité dans ce contexte et ce schéma.

L'utilisateur peut résoudre un conflit de ce type en affectant explicitement la séquence de touches à l'une des commandes.

Un conflit d'un autre type peut être généré par des séquences comprenant plusieurs caractères alphanumériques. Par exemple, dans le schéma Emacs, il y a plusieurs séquences d'associations de touches multiples commençant par les touches Ctrl+X. L'association Ctrl+X K est affectée à Fermer. Ctrl+X H est affectée à Sélectionner tout.

Comme mentionné précédemment, le schéma Emacs emprunte des associations de touches au schéma par Défaut. Dans le schéma par défaut, l'association Ctrl+X est affectée à Couper. Même si le schéma Emacs ne redéfinit pas explicitement Ctrl+X, appuyer sur Ctrl+X reste nécessaire comme partie de plusieurs de ses associations de touches. Dans le schéma Emacs, lorsque vous appuyez sur Ctrl+X, vous êtes à mi-chemin de plusieurs séquences de touches affectées possibles. L'utilisateur ne s'attend pas à ce que la commande Couper s'exécute à ce moment-là.

Dans ce type de conflit, la règle indiquant que Ctrl+X est affectée à Couper sera ignorée. Autrement, il serait impossible d'utiliser un grand nombre de associations de touches de la configuration Emacs.

Concepts connexes
Fonctions d'accessibilité dans Eclipse
Modification des associations de touches
Système d'aide en ligne

Références connexes
Paramètres de polices et de couleurs dans Eclipse