Editeur de code

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Introduction à Appmethod


L'éditeur de code et le Concepteur de fiches occupent le volet central de la fenêtre de l'EDI. L'éditeur de code est un éditeur UTF8 complet et personnalisable qui comprend la mise en évidence syntaxique, de multiples capacités d'annulation et une aide contextuelle sur les éléments du langage.

A mesure que vous concevez l'interface utilisateur de votre application, Appmethod génère le code sous-jacent. Lorsque vous modifiez les propriétés des objets, ces modifications sont automatiquement répercutées dans les fichiers source.

Comme tous vos programmes partagent des caractéristiques communes, Appmethod génère automatiquement un code pour vous permettre de démarrer. Vous pouvez considérer le code généré automatiquement comme un prototype que vous pouvez utiliser pour créer votre programme.

Le menu contextuel de l'éditeur de code décrit les commandes de menu contextuel de l'éditeur de code.

La vidéo Appmethod Code Editor, par Mike Rozlog (EN) propose de bons conseils et astuces.

Pour vous assister dans l'écriture du code, l'éditeur de code fournit les fonctionnalités décrites dans cette section :

Barres de modification

La marge gauche de l'éditeur de code affiche une barre de modification verte pour indiquer les lignes qui n'ont pas été modifiées dans la session d'édition en cours. Une barre de modification jaune indique que des modifications ont été effectuées depuis la dernière opération Fichier > Enregistrer.

Toutefois, vous pouvez personnaliser les barres de modification afin qu'elles soient affichées dans des couleurs autres que les couleurs par défaut (jaune et vert). Sélectionnez Outils > Options > Options de l'éditeur > Couleur. Dans le menu déroulant Elément, sélectionnez Ligne modifiée, puis changez les couleurs de l'avant-plan et de l'arrière-plan.

Indentation du code

Vous pouvez utiliser la touche Tab pour indenter la ligne de code en cours ou un bloc de code dans l'éditeur de code. Le nombre d'espaces que la touche Tab indente est déterminé par l'option Indentation de bloc de la boîte de dialogue Outils > Options > Options de l'éditeur > Options du source.

  • Pour indenter une ligne de code, placez le curseur au début de la ligne et appuyez sur Tab.
  • Pour indenter un bloc de code entier, mettez en surbrillance le bloc de code et appuyez sur Tab.
  • Pour déplacer le texte vers la gauche ("indentation négative"), utilisez Maj + Tab.

Formatage du code

Appmethod fournit le formateur de code source personnalisable. Lors de l'édition du code Object Pascal ou C++ code dans l'éditeur de code, vous pouvez appliquer la commande de menu contextuel Formater le source (ou la commande Edition > Formater le source) pour formater le code source. Vous pouvez définir les options de formatage Indentation, Espaces, Sauts de ligne, Capitalisation et Aligner sous le groupe Formateur de la boîte de dialogue Options (Outils > Options > Formateur). Sachez que la commande Formater le source implémente le formatage automatique de votre code. Elle ne prend en compte que les options de formatage spécifiées dans la boîte de dialogue Options et redéfinit complètement l'ensemble du formatage manuel implémenté dans l'éditeur de code. Par exemple, elle ignore votre indentation manuelle de code. Vous pouvez sélectionner un bloc de code et appeler la commande Formater le source afin que seul ce bloc soit formaté.

Remarque : Les pages Options de l'éditeur des options des outils fournissent des options supplémentaires de formattage du code, inclusivement Options du source, Couleur, Affichage, Affectations de touches et Audit de code. Voir Personnalisation de l'éditeur de code.

Audit de code

L'audit de code désigne un ensemble de fonctionnalités intégrées à l'éditeur de code (par exemple, donnant des conseils sur le paramétrage de code, le code lui-même, ou relatives à l'audit d'aide, à la saisie semi-automatique pour achèvement de code, de classe ou de bloc) et accélérant l'écriture de code. Ces fonctionnalités facilitent l'identification d'instructions communes à insérer dans votre code et vous aident à sélectionner des propriétés et des méthodes. Certaines de ces fonctionnalités sont décrites plus en détail dans les sous-sections suivantes.

Pour invoquer l'audit de code, appuyez sur Ctrl+Espace dans l'éditeur de code. Une fenêtre contextuelle affiche une liste de symboles valides à l'emplacement du curseur.

Pour activer et configurer les fonctionnalités de l'audit de code, choisissez Outils > Options > Options de l'éditeur et cliquez sur Audit de code.

Si vous utilisez le langage Object Pascal, la fenêtre contextuelle filtre toutes les déclarations de méthode d'interface référencées par les clauses de lecture ou d'écriture des propriétés. La fenêtre n'affiche que les propriétés et les méthodes autonomes déclarées dans le type interface. L'audit de code supporte les méthodes de messages WM_xxx, CM_xxx et CN_xxx comme les constantes nommées provenant de toutes les unités de la clause uses.

Conseils de paramétrage de code

Affiche un conseil contenant des noms d'argument et des types d'appel à des méthodes. Disponible entre les parenthèses d'un appel, par exemple ShowMessage ( | );.

Pour obtenir des conseils sur le paramétrage de code, appuyez sur Ctrl+Maj+Espace.

Conseils de code

Affiche des informations sur le symbole telles que le type, le fichier et le numéro de ligne où il est déclaré.

Pour afficher des conseils sur le code lorsque vous travaillez dans l'éditeur de code, vous pouvez vous déplacer avec la souris au-dessus d'un identificateur.

Remarque : Les conseils de code fonctionnent seulement pour Object Pascal quand avez désactivé la fonctionnalité Audit d'aide. Pour désactiver l'audit d'aide, annulez la sélection de Conseil d'audit d'aide sur la boîte de dialogue Outils > Options > Options de l'éditeur > Audit de code.

Audit d'aide

Audit d'aide affiche un conseil contenant des informations sur le symbole telles que le type, le fichier et le numéro de ligne où il est déclaré, ainsi que la documentation XML associée au symbole (s'il y a lieu).

Pour afficher des conseils sur l'aide lorsque vous travaillez dans l'éditeur de code, vous pouvez vous déplacer avec la souris au-dessus d'un identificateur. Vous pouvez aussi invoquer l'audit d'aide en appuyant sur CTRL+MAJ+H.

Achèvement de code

La fonctionnalité Achèvement de code affiche une liste déroulante des symboles disponibles à l'emplacement du curseur. Invoquez l'achèvement de code dans le cadre de votre langage spécifique de la façon suivante :

  • Dans Object Pascal :
    • Appuyez sur Ctrl+Espace (cette combinaison de touches invoque toujours l'achèvement de code).
    • Entrez . (cela fonctionne seulement quand l'option Invoquer automatiquement est activée sur la page Audit de code).
  • Dans C++ :
    • Appuyez sur Ctrl+Espace (cette combinaison de touches invoque toujours l'achèvement de code).
    • Entrez . ou -> (fonctionne seulement quand l'option Invoquer automatiquement est activée sur la page Audit de code).

Pour annuler une requête d'achèvement de code, appuyez sur la touche Echap.

Achèvement de classe

L'achèvement de classe simplifie le processus de définition et d'implémentation des nouvelles classes en générant le code squelette pour les membres de classe que vous déclarez. En positionnant le curseur n'importe où dans la déclaration d'une classe dans la section interface d'une unité et en appuyant sur Ctrl+Maj+C (ou en cliquant avec le bouton droit et en sélectionnant Compléter la classe au niveau du curseur dans le menu contextuel de l'éditeur de code), toutes les déclarations de propriété inachevées sont complétées. Pour toutes les méthodes nécessitant une implémentation, des méthodes vides sont ajoutées à la section implementation.

Vous pouvez aussi utiliser l'achèvement de classe pour remplir les déclarations interface pour les méthodes que vous définissez dans la section implementation :

Achèvement de bloc

Si, alors que vous vous trouvez dans l'éditeur de code, vous appuyez sur Entrée sans fermer correctement un bloc de code, l'éditeur de code ajoute le token de fermeture du bloc sur la première ligne vide disponible après la position du curseur. Par exemple, si vous utilisez l'éditeur de code avec le langage Object Pascal et tapez le token begin puis appuyez sur Entrée, l'éditeur de code complète automatiquement l'instruction et vous obtenez le résultat : begin end. Cette fonctionnalité fonctionne aussi pour le langage C++.

Navigation dans le code (Ctrl+clic)

Lors de l'utilisation de l'éditeur de code pour modifier une application, comme une application FireMonkey, vous pouvez utiliser Ctrl+click pour "sauter" automatiquement sur le code qui définit un identificateur. Pour naviguer dans le code, maintenez enfoncée la touche Ctrl pendant que vous passez la souris au-dessus du nom d'une classe, variable, propriété, méthode ou d'un autre identificateur. Quand le pointeur de la souris prend la forme d'une main et que l'identificateur est mis en surbrillance et souligné, cliquez sur l'identificateur en surbrillance, et l'éditeur de code saute sur la déclaration de l'identificateur et, si nécessaire, ouvre le fichier source.

Vous pouvez faire la même chose en cliquant avec le bouton droit sur un identificateur et en choisissant Chercher la déclaration dans le menu contextuel.

Le navigateur de code peut trouver et ouvrir uniquement les unités qui existent dans le chemin de recherche du projet ou dans le chemin de navigation global. La recherche s'effectue au sein des répertoires dans l'ordre suivant :

  1. Le chemin de recherche spécifique au projet pour Object Pascal (Projet > Options > Compilateur Object Pascal) ou le chemin d'inclusion pour C++ (Projet > Options > Répertoires et Conditions).
  2. Le chemin de navigation global (pour Object Pascal : Outils > Options > Options d'environnement > Options Object Pascal > Bibliothèque , ou pour C++ : Outils > Options > Options d'environnement > Options C++ > Chemins et répertoires).

Une alternative à l'utilisation de Ctrl+clic pour aller à la déclaration d'un identificateur est d'utiliser Alt+flèche Haut. Pour d'autres combinaisons de touches utiles, voir Raccourcis clavier par défaut.

Barre d'outils de navigation

La barre d'outils de navigation est affichée dans la partie supérieure de l'éditeur de code, et elle vous aide à vous déplacer au sein de votre code.

NavigationToolbar.png

De gauche à droite, la barre d'outils de navigation contient les contrôles suivants :

  • Unités utilisées : le menu déroulant attaché à ce bouton UsedUnits.png affiche la liste de toutes les unités utilisées par l'unité en cours. Choisissez une unité dans la liste pour l'ouvrir. Le menu affiche les unités par ordre de déclaration. Vous pouvez également ouvrir le menu déroulant en appuyant sur le raccourci Ctrl+Alt+N & Ctrl+Alt+U.
  • Sections du fichier : le menu déroulant attaché à ce bouton UnitSections.png affiche la liste des sections du fichier. Ces sections peuvent inclure Début du fichier, Section interface, Clause uses de la section interface, Section implementation, Clause uses de la section implementation, Section initialization et Bas du fichier. Choisissez l'une de ces sections pour l'afficher et placer le curseur au début de cette section. Vous pouvez également ouvrir le menu déroulant en appuyant sur le raccourci Ctrl+Alt+N & Ctrl+Alt+S.
  • Types : cette zone de liste déroulante inclut les noms de tous les types déclarés par l'unité en cours. Choisissez l'un de ces types pour déplacer le curseur vers sa déclaration. Le raccourci Ctrl+Alt+N & Ctrl+Alt+T ouvre la zone de liste déroulante Types.
  • Méthodes : cette zone de liste déroulante inclut les noms de toutes les procédures et fonctions de l'unité en cours. Choisissez l'un de ces éléments pour déplacer le curseur vers l'implémentation de la procédure ou fonction. Le raccourci Ctrl+Alt+N & Ctrl+Alt+P ouvre la zone de liste déroulante Méthodes.
  • Recherche des symboles du projet : le bouton Glass.png vous permet de rechercher tous les symboles du projet actif sélectionné. Le raccourci Ctrl+Alt+N & Ctrl+Alt+F ouvre l'outil de recherche des symboles du projet. La recherche des symboles du projet est filtrée au fur et à mesure de la saisie. La fenêtre de recherche affiche toute recherche qui correspond à une sous-chaîne du nom du symbole ; par exemple, about correspond à AboutBox, TAboutBox et reabout.

Pour plus de détails, voir Utilisation de la barre d'outils de navigation.

Navigation dans le code

Les sections ci-dessous décrivent les fonctionnalités que vous pouvez utiliser pour naviguer dans votre code tout en utilisant l'éditeur de code.

Navigation entre méthodes

Pour aller d'une méthode à une autre, vous disposez dans l'éditeur de plusieurs raccourcis. Vous pouvez aussi demander à ne naviguer qu'entre les méthodes de la classe en cours. Par exemple, si vous avez activé le verrouillage de classe alors que vous vous trouvez dans une méthode de TComponent, vous ne pouvez vous déplacer qu'entre les méthodes de TComponent.

Voici les raccourcis clavier de la navigation entre méthodes :

  • Ctrl+Q^L -- active / désactive le verrouillage de classe.
  • Ctrl+Alt+Haut -- se déplace vers le haut de la méthode en cours ou vers la méthode précédente.
  • Ctrl+Alt+Bas -- se déplace vers la méthode suivante.
  • Ctrl+Alt+Début -- première méthode du source.
  • Ctrl+Alt+Fin-- dernière méthode du source.
  • Ctrl+Alt+Roue_souris -- défile à travers les méthodes.

Recherche de classes

Vous permet de rechercher des classes. Utilisez la commande Cherche > Rechercher une classe pour obtenir la liste des classes disponibles dans laquelle vous pouvez effectuer une sélection. Une fois votre choix effectué, l'EDI navigue jusqu'à sa déclaration.

Recherche d'unités

Si vous programmez en langage Object Pascal, vous pouvez utiliser une fonction de refactoring pour localiser les espaces de nommage ou les unités. Utilisez la commande Rechercher une unité pour localiser et ajouter des unités à votre fichier de code.

Recherche des modifications précédentes et suivantes

Lors de l'édition du code, vous pouvez utiliser des combinaisons de touches pour naviguer rapidement vers les modifications précédentes et suivantes que vous avez effectuées. Les raccourcis clavier sont :

  • Ctrl+Maj+F7 -- déplace le curseur sur la modification précédente effectuée depuis l'ouverture du fichier (marque verte dans la gouttière).
  • Ctrl+Maj+F8 -- déplace le curseur sur la modification suivante effectuée depuis l'ouverture du fichier (marque verte dans la gouttière).
  • Alt+Maj+F7 -- déplace le curseur sur la modification précédente effectuée depuis la dernière sauvegarde (marque jaune dans la gouttière).
  • Alt+Maj+F8 -- déplace le curseur sur la modification suivante effectuée depuis la dernière sauvegarde (marque jaune dans la gouttière).

Si la ligne relative à la modification précédente ou suivante est un bloc élidé (plié), le bloc est déplié. Pliage du code est décrit ci-après dans cette rubrique.

Les combinaisons de touches sont les mêmes pour les mappages clavier : Défaut, EDI classique, Brief et Epsilon. Les mappages clavier Visual Studio et Visual Basic ne disposent pas de combinaisons de touches pour les modifications précédentes / suivantes.

Recherche des utilisations dans le code source

Si vous programmez en langage Object Pascal, vous pouvez utiliser la fonctionnalité Rechercher les utilisations pour trouver les utilisations des classes, des méthodes, des variables, des méthodes de redéfinition, des classes dérivées et des interfaces implémentées dans vos projets de code source.

Templates dynamiques

Les templates dynamiques mettent à votre disposition un dictionnaire de code pré-écrit, que vous pouvez insérer dans vos programmes tout en utilisant l'éditeur de code. Vous réduisez ainsi la frappe au clavier que vous devez effectuer.

Utilisez les liens proposés à la fin de cette rubrique pour en savoir plus sur la création et l'utilisation de templates dynamiques.

Pliage du code

Le pliage du code vous permet de réduire ou de développer des régions ou des blocs de code. Le pliage de votre code crée une vue hiérarchique du code facile à lire et à parcourir. Le code réduit n'est pas supprimé, mais seulement masqué de la vue jusqu'à ce que vous le développiez. Le pliage du code est activé par défaut.

Pour utiliser le pliage du code, cliquez sur les signes plus (+) et moins (-) situés sur le bord gauche de l'éditeur de code :

  • Cliquez sur le signe plus (+) pour développer la région de code associée.
  • Cliquez sur le signe moins (-) pour réduire la région de code associée.

Pour activer / désactiver le pliage du code :

  • Utilisez la case à cocher Pliage du code de la boîte de dialogue Outils > Options > Options de l'éditeur.
  • Utilisez le raccourci clavier Ctrl+Maj+K+O.

Vous pouvez aussi utiliser la commande de menu contextuel Plier pour plier des types de régions spécifiques, tels que Types, Méthodes, Commentaires de documentation XML (pour Object Pascal), et la région 'Plus proche'. Les commandes Plier et Déplier sont décrites dans Menu contextuel de l'éditeur de code. Pour de plus amples informations sur le pliage du code, y compris comment créer des régions de pliage de code, voir Utilisation du pliage de code.

Refactoring

Le Refactoring est le processus d'amélioration de votre code sans changer sa fonctionnalité externe. Par exemple, vous pouvez transformer un fragment de code sélectionné en méthode au moyen du refactoring d'extraction de méthode. L'EDI déplace le code extrait hors de la méthode en cours, détermine les paramètres nécessaires, génère des variables locales si nécessaire, détermine le type de retour et remplace le fragment de code par un appel à la nouvelle méthode. D'autres refactorings sont disponibles, par exemple le renommage d'un symbole et la déclaration d'une variable.

Synchronisation des modifications

Video ! Video : Sync Editing in Appmethod, par Mike Rozlog (EN)

La fonctionnalité de synchronisation des modifications vous permet de modifier simultanément des identificateurs identiques dans le code. Quand vous modifiez le premier identificateur, la même modification est automatiquement appliquée aux autres identificateurs. Vous pouvez aussi définir des points de saut pour naviguer jusqu'aux sections spécifiques de votre code.

Listes A faire

Une liste A faire enregistre les tâches d'un projet devant être achevées. Après avoir ajouté une tâche à la liste A faire, vous pouvez la modifier, l'ajouter à votre code en tant que commentaire, indiquer qu'elle est achevée et la supprimer de la liste. Vous pouvez filtrer la liste pour n'afficher que les tâches qui vous intéressent.

Macros clavier

Vous pouvez enregistrer une séquence de touches sous forme d'une macro lors de l'édition du code. Une fois enregistrée, la macro peut être exécutée pour répéter la séquence de touches lors de la session de l'EDI en cours. L'enregistrement d'une macro remplace la macro précédemment enregistrée.

Signets

Les signets fournissent un moyen pratique de naviguer dans les longs fichiers. Vous pouvez marquer un emplacement dans votre code avec un signet et accéder à cet emplacement depuis n'importe endroit au sein du fichier.

Lorsque vous définissez un signet, une icône de signe Icône Signet est affichée dans la gouttière de gauche de l'éditeur de code. Vous pouvez utiliser jusqu'à dix signets, numérotés de 0 Bookmark0.bmp à 9 Bookmark9.bmp, au sein d'un fichier.

Vous pouvez effectuer l'opération glisser-déposer sur les icônes de signet dans la gouttière de l'éditeur de code ; un signet déplacé conserve le numéro du signet original.

Synchronisation des prototypes

Appmethod fournit la fonctionnalité Synchroniser les prototypes pour synchroniser l'interface et les copies d'implémentation de vos prototypes de méthodes Object Pascal.

La fonctionnalité Synchroniser les prototypes ne concerne que Object Pascal. Elle vous permet de synchroniser le type de méthode (fonction, procédure, constructeur ou destructeur), ses paramètres, les types de paramètres, les modificateurs de paramètres et le type de retour de la fonction. Vous ne pouvez pas synchroniser le nom de fonction ou les modificateurs de fonctions.

Si vous voulez synchroniser un prototype de méthode :

  1. Effectuez toute modification nécessaire dans l'interface ou l'implémentation de votre prototype de méthode.
  2. Appuyez sur le raccourci Synchroniser les prototypes Ctrl+Maj+Alt+P, ou Synchroniser les prototypes dans le menu contextuel.
  3. Appmethod synchronise les prototypes, en effectuant les changements nécessaires.

La fonctionnalité Synchroniser les prototypes vous permet de préserver la synchronisation de l'interface et de l'implémentation de vos méthodes prototypes.

Si Appmethod ne trouve pas de méthode à synchroniser, le message suivant est affiché : Aucune méthode synchronisable n'a été trouvée.

Limitations : N'oubliez pas les limitations suivantes :

  • Les méthodes surchargées ne peuvent pas être synchronisées.
  • La synchronisation des prototypes des méthodes ne change pas le prototype des méthodes dans les classes ancêtre ou dérivées.

Mise en surbrillance structurelle

Mise en surbrillance structurelle

Appmethod met en surbrillance les structures de code avec des lignes, par exemple des blocs begin-end. La mise en surbrillance structurelle de Appmethod renforce la mise en surbrillance de la syntaxe pour que vous puissiez facilement organiser votre code et votre procédure de travail.

La mise en surbrillance structurelle regroupe les blocs de code et identifie les mots-clés pertinents. La mise en surbrillance structurelle utilise une séquence alternative de quatre couleurs pour distinguer le niveau de détail d'un bloc particulier.

Vous pouvez activer ou désactiver la mise en surbrillance structurelle, et configurer les couleurs des lignes depuis la page des options de la mise en surbrillance structurelle.

StructuralHighlighting.png

Mise en surbrillance du contrôle de flux

Appmethod met en surbrillance l'utilisation des procédures qui interrompent le flux linéaire d'exécution dans votre code. La mise en surbrillance du contrôle de flux de Appmethod fournit un rappel visuel des lignes de code qui interrompent l'exécution linéaire de votre projet.

Les icônes peuvent apparaître dans la gouttière de l'éditeur de code ou à la fin de la ligne qui contient le changement de flux.

Vous pouvez activer ou désactiver la mise en surbrillance du contrôle de flux, et configurer l'emplacement des icônes depuis la page des options de la mise en surbrillance structurelle.

FlowControlGutter.pngFlowControlEndLine.png

Touches intelligentes

Touche Début intelligente

La touche Début intelligente fournit un raccourci pour positionner le curseur au début de la ligne, et au début du texte.

L'appui sur la touche Début lorsque vous êtes dans l'éditeur de code positionne le curseur au début de la ligne dans laquelle se trouve le curseur. Un nouvel appui sur la touche Début place le curseur au début du texte de la même ligne. Si vous appuyez en permanence sur la touche Début, la position du curseur bascule entre le début de la ligne et le début du texte.

Vous pouvez activer ou désactiver la touche Début intelligente dans Outils > Options > Options de l'éditeur > Affectations de touches.

Touche Encadrement intelligente

Les touches Encadrement intelligentes fournissent un moyen rapide d'encadrer votre code avec "()", "[]" ou "{}".

Pour encadrer votre code avec "()", "[]" ou "{}", sélectionnez le texte que vous voulez encadrer dans l'éditeur de code, et cliquez sur "(", "[" ou "{". L'éditeur de code encadre le texte sélectionné avec "()", "[]" ou "{}" selon le caractère que vous avez tapé.

Vous pouvez activer ou désactiver les touches Encadrement intelligentes dans Outils > Options > Options de l'éditeur > Affectations de touches.

Commentaires de bloc

Vous pouvez définir en commentaire une section de code en sélectionnant le code dans l'éditeur de code, puis en appuyant sur Ctrl+/ (barre oblique). Chaque ligne du code sélectionné comporte le préfixe // et est ignorée par le compilateur. L'appui sur Ctrl+/ ajoute ou retire les barres obliques, en fonction de la présence du préfixe // sur la première ligne du code. Si vous utilisez les mappages de touches Visual Studio ou Visual Basic, utilisez Ctrl+K+C pour ajouter ou retirer des barres obliques de commentaire.

Voir aussi