Référence de l'Audit de code

De RAD Studio
Aller à : navigation, rechercher

Remonter à Editeur de code - Index (tutoriel de l'EDI)


L'Audit de code fait référence au sous-ensemble de fonctionnalités intégrées dans l'éditeur de code :

  • Achèvement de code
  • Achèvement des paramètres
  • Conseils de code
  • Expressions de conseil
  • Audit de conseil
  • Aller à la définition
  • Achèvement de bloc
  • Achèvement de classe
  • Audit d'erreur

Ces fonctionnalités servent à accélérer l'édition de code et vous aident lors de la sélection des propriétés et des méthodes. Elles fournissent aussi des informations sur les symboles. Les fonctionnalités mentionnées ci-dessus sont présentées en détail dans les sous-sections suivantes.

Pour activer et configurer les fonctionnalités de l'audit de code, choisissez Outils > Options > Editeur > Langage et cliquez sur l'option Options d'audit.

Remarque:

Les fonctionnalités de l'audit de code sont maintenant définies par langage.

Delphi utilise le protocole LSP (Language Server Protocol) pour l'audit de code.

Pour C++, l'EDI utilise automatiquement Visual Assist ou l'Audit de code traditionnel (Classique) selon le compilateur sélectionné (Clang ou Classique). Le serveur C++ LSP est disponible pour Clang bien qu'il soit désactivé par défaut.

Audit de code utilisant le protocole LSP (Language Server Protocol) Delphi

Le protocole LSP (Language Server Protocol) est une spécification qui fournit des services linguistiques via un processus de serveur qui communique avec un EDI. En conséquence, les fonctionnalités d'audit de code sont fournies par un ou plusieurs processus séparés, et les fonctionnalités sont fournies de façon asynchrone.

Un petit volet en bas de la vue Projet affiche l'activité du serveur LSP. Il facilite la communication lors de l'analyse.

Remarque: L'audit de code utilisant le protocole LSP (Language Server Protocol) peut être utilisé pendant le débogage et pendant la modification normale du code.

Langages

Les langages sont définis dans le volet des paramètres Outils > Options > Langage, qui affiche une liste de toutes les langues disponibles. Vous pouvez aussi créer un nouveau langage.


DelphiLSP Language.png

Options de l'éditeur et Mise en évidence syntaxique

Les options de l'éditeur et de mise en évidence de la syntaxe sont définies en fonction du langage. Elles se trouvent sous Outils > Options > Editeur > Langage.


DelphiLSP Editor Language.png

Vous pouvez depuis ce volet choisir un langage. Des options spécifiques à l'éditeur sont disponibles, telles que Surligneur de syntaxe.


DelphiLSP Editor Language SintaxHighlighter.png

Modification du Gestionnaire d'audit de code/LSP

Le LSP Delphi est activé par défaut. Vous pouvez vérifier si l'EDI utilise le LSP Delphi comme suit :

  • Lorsque vous ouvrez votre projet Delphi ou que vous effectuez des modifications importantes, une petite barre de progression apparaît en bas de la vue Projets affichant l'activité DelphiLSP.
  • Vous pouvez aussi ouvrir le Gestionnaire de tâches et rechercher un processus DelphiLSP.exe. Généralement, plusieurs processus s'affichent.

Audit de code est le dernier onglet d'un langage. Il contient la fonte utilisateur de l'éditeur et un ensemble de réglages d'audit de code.

Le Gestionnaire d'audit de code fournit une fonctionnalité d'audit de code pour chaque langage. Vous pouvez le définir sur n'importe quel gestionnaire répertorié ici, même si ce dernier n'est pas initialement destiné à ce langage.

Attention: Il n'est pas recommandé de remplacer le Gestionnaire d'audit de code par un autre non destiné au langage en cours.

Dans Delphi, pour basculer entre l'implémentation d'audit de code LSP et classique, choisissez :

  • Delphi (Language Server Protocol) : la nouvelle prise en charge LSP.
  • Delphi (Audit de code classique) : l'ancienne implémentation d'audit de code utilisée dans les versions 10.3.3 et antérieures. Lorsque vous sélectionnez cette option, vous désactivez le protocole LSP.
Remarque: L'activation du Gestionnaire d'audit de code classique affecte certaines fonctionnalités ayant été déplacées dans DelphiLSP, comme le volet Structure et la barre de navigation de l'éditeur (la barre d'outils affichée en haut de l'éditeur qui permet de se déplacer dans le code). Ces fonctionnalités ne fonctionnent plus lorsque vous activez le Gestionnaire d'audit de code classique.


DelphiLSP Editor Language CodeInsight.png

Vous pouvez aussi créer un nouveau Gestionnaire LSP. Cliquez sur Nouveau. Le dialogue vous permet de spécifier l'exécutable du serveur LSP ainsi que certaines options, parmi lesquelles un nom convivial, l'identificateur du langage, le délai d'attente après lequel le serveur sera redémarré, et toutes les options d'initialisation spécifiques au serveur à injecter dans l'appel d'initialisation JSON RPC.

Vous pouvez utiliser cette option pour ajouter un serveur Python ou tout autre langage.

Remarque: RAD Studio prend uniquement en charge les serveurs qui communiquent sur des E/S standard (E/S de console).

New LSP Manager.png

Création de fichiers .delphilsp.json

La configuration spécifique à un projet pour l'utilisation du protocole LSP est automatiquement enregistrée dans un fichier .delphilsp.json portant le même nom que le projet. Ce fichier de configuration est lu lorsque le LSP est utilisé avec un éditeur externe tel que Visual Studio Code. Pour activer la génération de ce fichier :

  • Créez un projet Delphi.
  • Accédez à Outils > Options > Editeur > Langage > Audit de code et activez Générer la config LSP.
  • Enregistrez et fermez votre projet dans l'EDI.
  • Lors de la ré-ouverture du projet, un nouveau projet portant le même nom et une extension différente (.delphilsp.json) apparaît.

Achèvement du code — Ctrl+Espace

La fonctionnalité Achèvement de code affiche une liste déroulante de tous les éléments et méthodes qui contiennent la chaîne typée n'importe où dans un identificateur. Elle indique les types d'ensembles. Lors de la déclaration d'une propriété, l'achèvement de code suggère des getters et setters.

Vous pouvez effectuer un achèvement de code sur des fichiers d'en-tête qui ne font pas vraiment partie du projet et sur le source principal du projet.

Pour invoquer l'achèvement du code, appuyez sur Ctrl+Espace dans l'éditeur de code. Sélectionnez le caractère et appuyez sur Entrée pour insérer le texte dans le code à l'emplacement du curseur.

L'achèvement de code est également automatiquement invoqué dans certains emplacements de code, par exemple lorsque vous tapez un point « . » dans Delphi ou une instruction de point « . », de flèche « -> », de portée « :: » ou d'en-tête « #include < » dans C++.

Invoquez l'achèvement de code dans le cadre de votre langage spécifique de la façon suivante :

  • 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 Options d'audit de code).
  • Pour annuler une requête d'achèvement de code, appuyez sur la touche Echap.

Code Completion C.png

Remarque: Cette fonctionnalité utilise un serveur LSP (Language Server Protocol) pour le compilateur amélioré par Clang. Elle est asynchrone et non bloquante.
  • Delphi
  • 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 Options d'audit de code).
  • Pour annuler une requête d'achèvement de code, appuyez sur la touche Echap.

Code Completion D.png

Remarque: Lorsque l'achèvement de mode est réglé sur Invocation auto., la fenêtre d'achèvement de code s'affiche au fur et à mesure que vous tapez votre code. Elle est aussi invoquée si vous appuyez sur point (.), [, (, ou < pour les paramètres de template, de tableau ou de méthode. L'achèvement de code peut aussi être configuré pour ne s'activer que si vous tapez un point ou pour fonctionner uniquement en mode manuel.

Lorsque vous tapez des caractères, le comportement de sélection/correspondance prend en compte les situations suivantes :

  • En cas de correspondance exacte entre les caractères tapés et un identificateur, celui-ci est sélectionné.
  • Sinon, le premier identificateur commençant par ces caractères est sélectionné.
  • Sinon, le premier identificateur contenant ces caractères est sélectionné.

Par exemple, tapez MyControl dans l'éditeur et invoquez l'achèvement de code. Ensuite, tapez rect. Vous verrez que toutes les propriétés ou méthodes commençant par Rect s'affichent, ainsi que ClientRect, BoundsRect, etc., c'est-à-dire toute chaîne d'identificateur contenant rect.

L'achèvement de code fonctionne correctement et produit des résultats corrects dans les situations suivantes :

  • Le fichier est nouveau et n'existe pas encore sur le disque.
  • Le projet est nouveau et aucun projet ni aucune unité n'existe sur le disque.
  • L'unité est modifiée, pas encore enregistrée, et le code interne à l'EDI comporte des modifications qui affectent les résultats d'achèvement.
  • Les résultats sont corrects (et modifiés correctement) lors de la modification des plates-formes cibles et d'autres options du projet.
  • Lorsqu'une unité inclut un fichier .inc.

Achèvement de code dans la clause uses :

  • Affiche les fichiers PAS et les chemins DCU dans le projet et les chemins de recherche.
  • Liste les unités à partir du chemin de recherche et leurs versions raccourcies sans les espaces de nommage configurés.
  • Indique lorsque l'unité sélectionnée est déjà utilisée dans l'unité en cours.
Remarque:
  • Les opérations de mise en correspondance et de filtrage ne sont pas sensibles à la casse.
  • L'achèvement de code fonctionne lorsque l'option Utiliser MSBuild de façon externe pour compiler est activée.
  • Menu déroulant de l'achèvement de code :
    • Sélectionne le symbole correspondant le plus court.
    • Sélectionne l'élément supérieur lorsqu'il s'affiche pour la première fois.

}}

Réglages de l'achèvement de code

Si vous utilisez l'achèvement de code, vous pouvez configurer des filtres dans l'onglet Options d'audit. Accédez à Outils > Options > Editeur > Langage et cliquez sur Options d'audit.


DelphiLSP Editor Language InsightOptions.png

Options générales de l'audit de code

  • Utiliser la fonte de l'éditeur : vous pouvez activer cette option pour utiliser la fonte de l'éditeur pour l'achèvement de code.
  • Utiliser la flèche droite pour accepter les éléments d'achèvement de code : accepte l'élément de votre choix en utilisant la flèche droite.
  • Utiliser >, ), } ou ] pour accepter les éléments d'achèvement de code : cette option est activée par défaut ; elle accepte l'élément de votre préférence en utilisant >, ), } ou ].

Filtrage de l'achèvement de code

Utilisez ces filtres en fonction de vos besoins :

Afficher les symboles contenant le filtre : cette option contrôle les symboles inclus dans la liste. Par défaut (option cochée), tous les symboles contenant le texte saisi sont listés. Si l'option est désactivée, la liste d'achèvement de code affiche uniquement les symboles qui commencent par le texte saisi.

    • Lister tous les symboles commençant par le filtre en premier : les symboles commençant par le texte saisi (le filtre) sont placés en premier, avant ceux qui ne font que contenir le texte saisi. Si l'option est désactivée, les symboles sont triés par ordre alphabétique. Lorsque l'option est activée, les symboles commençant par le texte du filtre sont placés en haut de la liste.
  • Sélectionner le symbole correspondant le plus court : lorsque la liste d'achèvement de code s'affiche, une entrée est toujours sélectionnée automatiquement, ou s'ouvre avec le symbole le plus proche de la portée dans laquelle le codage est sélectionné. Ce réglage est coché par défaut (défini pour sélectionner le symbole le plus court). Mais si vous le désactivez, vous obtenez un comportement plus proche de l'achèvement de code classique.
  • Le texte du filtre est souligné : lorsque cette option est cochée, le menu déroulant de l'achèvement de code souligne le texte qui correspond à votre saisie.

Sélection automatique de l'achèvement du code

  • Sélection automatrique des éléments de templates : les éléments de templates sont choisis automatiquement. Cette option est activée par défaut.
Conseil: Les templates de code peuvent être configurés de façon à ne s'afficher que dans certaines zones d'unités, comme une déclaration de type. </br> Pour utiliser cette fonctionnalité dans vos templates, ajoutez l'indicateur 'context' dans un template. Le symbole "
Avertissement: Si le nom d'un template est identique à celui d'un mot clé (tel que ‘if'), le template ne sera jamais sélectionné automatiquement par défaut.
  • Sélection automatique des mots clés : cette option sélectionne automatiquement les éléments des mots clés lorsqu'elle est active.

Cette fonctionnalité est activée par défaut. N'oubliez pas que les mots clés sont sélectionnés automatiquement avant les identificateurs. Ainsi, même lorsque l'achèvement de code est invoqué automatiquement quel que soit ce que vous saisissez, il est effectué correctement tant qu'il est valide.

Remarque: Vous pouvez désactiver l'inclusion des mots clés (mots réservés) dans la liste d'achèvement. Dans ce cas, nous vous recommandons de désactiver également l'invocation automatique de l'achèvement, en la définissant sur 'Seulement à la saisie du point'.

Achèvement de paramètre — Ctrl+Maj+Espace

L'achèvement de paramètre est invoqué automatiquement après l'ouverture d'un crochet gauche d'appel de fonction ou en appuyant sur Ctrl+Maj+Espace lors de l'utilisation de l'éditeur de code. Une fenêtre popup affiche un conseil contenant des noms d'argument et des types pour les appels de méthodes. Vous pouvez taper des caractères correspondant à ceux de la sélection et appuyer sur Retour pour insérer le texte dans le code à l'emplacement du curseur. Si les paramètres comportent XMLDoc, ils seront affichés pendant l'achèvement de code.

Le conseil ou l'aide du paramètre peut apparaître lors de l'instanciation de types génériques.

Exemples :

  • C++

Parameter Completion C.png

Remarque: Cette fonctionnalité utilise un serveur LSP (Language Server Protocol) pour le compilateur amélioré par Clang. Elle est asynchrone et non bloquante.
  • Delphi

Parameter Completion D.png

Lorsque l'achèvement de code est défini sur l'invocation automatique, l'achèvement des paramètres apparaît également automatiquement lorsque vous tapez ( pour commencer à saisir les paramètres. Vous pouvez alors voir la liste des paramètres et les suggestions d'achèvement de code en même temps.

Conseils de code

Cette fonctionnalité 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é. Vous pouvez afficher des conseils de code en déplaçant la souris au-dessus d'un identificateur dans votre code, lorsque vous travaillez dans l'éditeur de code.

Remarque:

Les conseils de code fonctionnent seulement pour Delphi quand la fonctionnalité Audit d'aide est désactivée.

Pour désactiver la fonctionnalité Audit d'aide, décochez l'option Conseil d'audit d'aide dans la boîte de dialogue Outils > Options > Editeur > Langage > Audit de code.

Exemple :

Code Hints D.png

Evaluation d'expressions de conseil

Cette fonctionnalité affiche la valeur en cours d'une variable quand vous placez le curseur dessus. Elle est disponible quand l'exécution du programme est suspendue au cours d'une session de débogage.

Exemples :

  • C++

Tooltip Expresion Evaluation C.png

  • Delphi

Tooltip Expresion Evaluation D.png

Audit de conseil

Cette fonctionnalité affiche des informations dans une fenêtre popup lorsque la souris passe au-dessus d'un symbole.

Audit de symbole dans conseil

Cette fonctionnalité affiche les informations de déclaration dans une fenêtre de conseil pour tout identificateur, quand vous faites passer le curseur au-dessus d'un symbole dans l'éditeur de code.

Exemples :

  • C++

Tooltip Symbol Insight C.png

  • Delphi

Tooltip Symbol Insight D.png

Conseil d'audit d'aide — Ctrl+Maj+H

Cette fonctionnalité affiche un conseil contenant des informations sur le symbole, telles que le type, le fichier, le numéro de ligne où il est déclaré, ainsi que la documentation XML associée au symbole (s'il y a lieu). C'est aussi valable pour les classes génériques. Les informations d'exception et le numéro de ligne sont affichés pour les tableaux et les ensembles.

Obtenez un conseil d'audit d'aide en déplaçant la souris au-dessus d'un identificateur dans votre code, lorsque vous travaillez dans l'éditeur de code. Vous pouvez aussi l'obtenir en appuyant sur les touches Ctrl+Maj+H.

Exemples :

  • C++

Tooltip Help Insight C.png

Remarque: Uniquement disponible lorsque le compilateur classique est utilisé.
  • Delphi

Tooltip Help InsightD.png

Remarque: Le Conseil affiche l'emplacement complet de définition des unités qui ne sont pas encore liées à un projet.

Chercher la déclaration — Ctrl+Clic

Remarque: La fonctionnalité Chercher la déclaration est uniquement disponible dans les projets Delphi. Cette fonctionnalité a été remplacée par Aller aux éléments associés dans les projets C++. Elle permet de voir la déclaration et d'autres éléments utiles.

Cette fonctionnalité accède à l'emplacement dans lequel un type ou une variable est défini(e).

Lorsque vous utilisez l'éditeur de code, servez-vous du raccourci Ctrl+Clic pour aller automatiquement sur le code qui définit un identificateur ou une méthode héritée.

Pour naviguer dans le code, maintenez enfoncée la touche Ctrl tout en passant la souris au-dessus du nom d'une classe, variable, propriété, méthode ou d'un autre identificateur.

Le pointeur de la souris prend la forme d'une main et l'identificateur apparaît en surbrillance et souligné. Lorsque vous cliquez sur l'identificateur en surbrillance, l'éditeur de code passe à la déclaration de l'identificateur, en ouvrant le fichier source si nécessaire. Vous pouvez faire la même chose en cliquant avec le bouton droit sur un identificateur et en choisissant Chercher la déclaration. L'appui sur Alt+Gauche vous renvoie à votre point initial de navigation.

Vous pouvez également utiliser Ctrl+Maj+flèche Haut/Bas pour vous déplacer entre la déclaration et l'implémentation d'une méthode.

L'appui sur Ctrl+Maj-+Flèche bas depuis une macro/ifdef inactive provoque le passage à l'implémentation de la prochaine méthode déclarée.

La fonctionnalité Rechercher la déclaration - Ctrl+Clic fonctionne avec :

  • Les symboles, comme les variables, les méthodes, les propriétés ou d'autres identificateurs.
  • Les types (classe, énumération, enregistrement, tableaux ou autres).
  • Les entrées uses.
  • Les macros (defines) afin que le basculement entre l'implémentation et la déclaration d'une méthode fonctionne mieux lorsqu'il y a des IFDEF. Les macros (defines) sont aussi trouvées lorsqu'elles sont déclarées dans un fichier include, affectant ce qui apparaît précédemment.

Chercher la déclaration permet aussi de rechercher et d'ouvrir uniquement des unités dans le projet Chemin de recherche ou Chemin source, ou dans le produit Chemin de navigation ou Chemin de bibliothèque. La recherche s'effectue au sein des répertoires dans l'ordre suivant :

  1. Le chemin de recherche du projet (Delphi).
  2. Le chemin source du projet, défini comme le répertoire dans lequel le projet a été enregistré.
  3. Le chemin de navigation global.
  4. Le chemin de bibliothèque global.
  5. Le chemin de bibliothèque, qui est recherché seulement si aucun projet n'est ouvert dans l'EDI.

Ces chemins peuvent être modifiés en éditant les valeurs correspondantes :

Exemple :

  • Delphi

Find Declaration D.png

Achèvement de bloc — Touche Entrée

L'achèvement de bloc se produit lorsque du code est manquant dans les situations suivantes :

  • Dans C++, le bloc considéré pour l'achèvement est le code entre accolades {}.
  • Dans Delphi, le bloc considéré pour l'achèvement est le code entre begin et end.

Si, alors que vous vous trouvez dans l'éditeur de code, vous appuyez sur Entrée sans fermer correctement un code, un token de fermeture est ajouté sur la première ligne vide disponible après l'emplacement du curseur.

Le menu déroulant définit le comportement de l'achèvement quand vous englobez des instructions existantes avec des symboles, comme suit :

  • Sans nouvelle ligne - Positionne le curseur après le code que vous venez de taper.
  • Avec nouvelle ligne - Positionne le curseur à l'intérieur du code que vous venez de taper.
  • Nouveaux blocs uniquement - Invoque l'achèvement seulement si vous commencez un nouveau bloc.

Achèvement de classe — Ctrl+Maj+C

Attention: L'achèvement de classe est une fonctionnalité de Delphi. Une fonction similaire, Créer une déclaration et Créer l'implémentation est implémentée dans C++.

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.

Positionnez le curseur à l'intérieur d'une déclaration de classe dans la section interface d'une unité et appuyez sur Ctrl+Maj+C. Toutes les déclarations de propriétés 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.

L'achèvement de classe peut aussi être accompli en choisissant l'option Compléter la classe au niveau du curseur du menu contextuel de l'éditeur de code.

Audit d'erreur

La fonctionnalité Audit d'erreur souligne le code non valide nécessitant votre attention, par exemple un code non valide provoquant des erreurs (soulignement rouge), des avertissements (soulignement orange) et/ou des conseils (soulignement bleu). Vous pouvez choisir le niveau de gravité des problèmes affichés dans l'éditeur, pour n'afficher que les erreurs et pas les avertissements ou les conseils, par exemple.

En plaçant le curseur sur le texte non valide, vous affichez une fenêtre de conseil contenant la cause probable de l'erreur.

Exemples :

  • C++

Error Insight CP.png

  • Delphi

Error Insight Del.png

De plus, la liste des erreurs générées par l'expression apparaît dans le volet Erreurs de la vue Structure.

Error Insight Structure View.png

Dans la barre d'état de l'éditeur, vous pouvez accéder à une synthèse de l'audit d'erreur affichant le nombre d'erreurs, d'avertissements et/ou de conseils contenus dans le fichier en cours.

Error Insight Summary.png

Aller à Outils > Options > Editeur > Langage puis cliquez sur l'onglet Audit d'erreur pour configurer ses propriétés.


DelphiLSP Editor Language ErrorInsight.png

  • Afficher les niveaux de l'audit d'erreur : détermine le niveau d'audit d'erreur à afficher dans l'éditeur de code. Vous disposez des options suivantes :
    • Aucun : choisissez cette option pour n'afficher aucun niveau d'audit d'erreur dans l'éditeur de code.
    • Erreurs uniquement : affiche uniquement les erreurs dans l'éditeur de code. Les erreurs s'affichent avec un soulignement rouge.
    • Avertissements : affiche les avertissements dans l'éditeur de code. Les avertissements s'affichent avec un soulignement orange.
    • Conseils : affiche les conseils dans l'éditeur de code. Les conseils s'affichent avec un soulignement bleu.
    • Tout : affiche tous les niveaux de code d'erreur dans l'éditeur de code.
  • Style de rendu de l'éditeur : détermine le style de soulignement parmi ces options : Classique, Vague ondulée, Ligne pleine ou Points.
  • Afficher l'audit d'erreur dans la gouttière de l'éditeur : activez/désactivez cette option pour afficher les icônes des erreurs, des avertissements et/ou des conseils à leur emplacement spécifique lorsque vous faites défiler le fichier dans l'éditeur de code.
  • Pourcentage d'opacité du code inactif : pour Delphi, affiche le code inactif (ifdef-ed out) en semi-transparence. Cette option applique le pourcentage d’opacité de votre choix ; vous pouvez sélectionner une valeur comprise entre 0 et 100.
Remarque: Pour C++, la fonctionnalité d'audit d'erreur est désactivée par défaut. Pour l'activer,vous devez préalablement désactiver la fonctionnalité Visual Assist en décochant l'option Utiliser Visual Assist dans l'onglet Audit de code.

Si vous rencontrez des problèmes avec la fonctionnalité d'audit d'erreur :

  • Fermez l'EDI.
  • Ouvrez l'éditeur du Registre.
  • Accédez au dossier HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Editor\Source Options\Borland.EditOptions.Pascal.
  • Supprimez la clé ErrorInsightLevel.
  • Redémarrez l'EDI.

Index pour Audit de code C++

L'index pour Audit de code C++ fournit un index pour les fonctionnalités Audit de conseil et Chercher la déclaration.

Le serveur LSP (Language Server Protocol) (cquery) traite l'ensemble du projet et construit une base de données. Comme il utilise de la CPU, il peut être désactivé avec la case à cocher Index pour Audit de code C++.

Remarque:

Ce réglage s'applique uniquement aux compilateurs C++ et améliorés par Clang.

Cette fonctionnalité utilise un serveur LSP (Language Server Protocol) pour le compilateur amélioré par Clang. Elle est asynchrone et non bloquante.

Lorsque vous travaillez avec les compilateurs améliorés par Clang et que la fonctionnalité Index pour Audit de code C++ est activée, chaque projet que vous ouvrez est indexé. Cela provoque aussi la création d'une base de données pour les fonctionnalités Audit de conseil et Chercher la déclaration. Cette fonctionnalité utilise aussi la CPU et peut être désactivée en décochant Index pour Audit de code C++.

Conseil: N'oubliez pas que lorsque cette option est désactivée, les fonctionnalités Audit de conseil et Chercher la déclaration ne sont pas fonctionnelles. Cependant, l'achèvement de code et l'achèvement de paramètre restent fonctionnels, que l'indexation soit activée ou non.

Comportement du LSP

L'onglet Comportement du LSP contrôle la façon dont le serveur LSP cquery indexe les fichiers. En d'autres termes, comment il stocke les informations utilisées pour l'achèvement de code, la navigation, etc.

Remarque:
  • L'indexation consomme beaucoup de CPU et il n'est pas possible d'utiliser l'Audit de code tant qu'elle n'est pas terminée.
  • Le rechargement du serveur au changement de plate-forme provoque le nettoyage de l'index.


LSPBehavior.png

Trois alternatives sont disponibles dans l'onglet Comportement du LSP :

  • Redémarrer le serveur à chaque fois qu'un projet est activé : indexe tous les fichiers d'un projet ainsi que les fichiers ouverts dans l'éditeur. C'est l'option la plus consommatrice en mémoire, mais son avantage est que l'intégralité du projet est disponible dans l'index. Avec cette option, le serveur LSP est redémarré à chaque fois que vous sélectionnez un nouveau projet actif dans la vue Projets, ou lorsque vous changez les options de projet ou les options de plate-forme.
Remarque: Pour tous les projets C++, cette option est à ON par défaut.
  • N'indexer que les fichiers ouverts dans l'éditeur : N'indexe que les fichiers que vous ouvrez, quel que soit votre projet. C'est une option moins consommatrice de mémoire et l'audit de code est disponible plus rapidement. Toutefois, il faut attendre un court laps de temps que l'Audit de code soit disponible à chaque fois que vous ouvrez un fichier. Avec cette option, le serveur LSP n'est jamais arrêté ou redémarré sauf si vous fermez tous les projets ou groupes de projets, ou si vous changez les options de projet ou les options de plate-forme.
  • Indexer tous les fichiers du groupe de projets : Indexe tous les fichiers de tous les projets lorsque le groupe de projets est chargé. Le serveur LSP n'est jamais arrêté ou redémarré sauf si vous fermez tous les projets ou groupes de projets, ou si vous changez les options de projet ou les options de plate-forme.

Options avancées

Prise en charge de l'API Tools

La prise en charge de l'audit de code repose principalement sur le protocole LSP (Language Server Protocol), qui profite d'une prise en charge générique. Vous pouvez créer un nouveau serveur LSP en utilisant le dialogue ci-dessus. Toutefois, l'EDI implémente deux éléments : l'audit de code asynchrone générique et la prise en charge LSP, qui est une implémentation spécifique d'un audit de code asynchrone.

L'API Tools définit plusieurs nouveaux types et interfaces pour l'audit de code asynchrone. Le LSP utilise ces interfaces, mais vous pouvez écrire un fournisseur d'audit de code asynchrone avec l'implémentation de votre choix.

Les interfaces sont localisées dans ToolsAPI.pas :

  • IOTAAsyncCodeInsightManager est l'interface principale d'une implémentation de gestionnaire d'audit de code asynchrone générique. Elle utilise plusieurs rappels, définis juste au-dessus.
  • IOTACodeInsightUIOverride est utilisé pour redéfinir un comportement d'interface utilisateur spécifique.

Rapports de bogues et fichiers journaux

Pour signaler des bogues ou envoyer des fichiers journaux, voir Dépannage : Delphi LSP et Dépannage : C++ Visual Assist et C++ LSP.

Suivant

Refactoring