# Outils modules externes

&kdevelop; contient un grand nombre de petits outils qui vous aident à effectuer certaines tâches. La plupart d'entre eux sont réalisés sous forme de modules externes (plugins). Cela signifie que, si vous n'avez pas besoin d'un module externe, vous pouvez le désactiver.

Cela signifie également que si vous cherchez une fonctionnalité qui devrait être présente et qui ne l'est pas, il se peut qu'elle soit implémentée dans un module externe et que ce denier soit désactivé. Par exemple, dans le menu Fichier, il y a une fonctionnalité Ouverture rapide, mais uniquement si elle est activée dans la boîte de dialogue Projet - Options du projet.

Techniquement, les modules externes sont basés sur la classe KDevPlugin définie dans lib/interfaces/kdevplugin.h. La suite est tirée d'un commentaire qui en provient.

KDevPlugin est la classe de base pour tous les modules externes de KDevelop. Un module externe est un composant qui est chargé dans le shell de KDevelop au démarrage ou à la suite d'une requête. Un module externe a une portée qui peut être soit :

- Core

- Global

- Projet

Les modules externes « core » sont des modules externes globaux qui offrent une certaine fonctionnalité « core » et ainsi, ne sont pas sélectionnables par l'utilisateur dans les pages de configuration des modules externes.

Les modules externes globaux sont des modules externes qui ont besoin du shell uniquement pour être chargés et n'agissent pas sur l'interface de KDevProject et / ou n'utilisent pas d'informations à l'échelle du projet. Par exemple, le module externe « uimode » permet au développeur de choisir l'interface utilisateur qu'il souhaite employer.

Les modules externes de projet nécessitent qu'un projet soit chargé et sont habituellement chargés / déchargés tout au long du projet. Si un module externe agit sur des informations liées au projet, alors c'est un module externe de projet. Le gestionnaire Automake, par exemple, ne doit être actif que quand un projet basé sur Automake est actuellement chargé.

Comme établi ci-dessus, les modules externes « core » ne peuvent être désactivés. Les modules externes globaux peuvent être activés / désactivés dans Configuration Configurer KDevelop... sous Modules externes. Les modules externes peuvent être activés / désactivés dans Projet Options du projet... sous Modules externes. Les modules externes actifs peuvent avoir de nombreux effets sur KDevelop. Selon leur fonction, ils peuvent ajouter des menus supplémentaires, des éléments de menus supplémentaires, des boutons d'outils supplémentaires, etc.

Les modules externes qui sont désactivés n'encombrent pas vos menus et ne sont pas chargés en mémoire.

La liste de modules externes suivante est générée par un petit script (listplugins.sh) écrit par Volker Paul. Tous les modules externes comportent un fichier .desktop, où sont enregistrées des informations telles que leur nom et des commentaires. Si dans ce qui suit ces commentaires ne sont pas très utiles, c'est parce que leurs auteurs l'ont voulu ainsi.

Les modules externes sont groupés par portée (Core, Global, Projet).

Portée : Core

- ## Assistant d'application

  Assistant d'application

- ## Afficheur de différences

  Afficheur de différences

- ## Création de fichiers

  Création de fichiers

- ## Plein écran

  Plein écran

- ## Astuce du jour

  Astuce du jour

- ## Sélection de l'interface utilisateur

  Fournit une boîte de dialogue pour la sélection du mode d'interface utilisateur.

- ## Gestionnaire VCS

  Gestionnaire de systèmes de contrôle de versions

Portée : Global

- ## Expansion des abréviations

  Fournit la prise en charge des abréviations personnalisables - mots courts qui s'étendent en structures de code couramment requises.

- ## Documentation

  Le module externe Documentation offre la navigation et la recherche dans la documentation locale et en ligne avec une prise en charge pour des systèmes de documentation multiples.

- ## Liste des fichiers

  Fournit une liste de tous les fichiers actuellement ouverts. (Pratique quand la barre d'onglets n'est pas tout à fait assez large.)

- ## Sélecteur de fichiers

  Puissant utilitaire navigateur de fichiers transparent vis-à-vis du réseau.

- ## Filtrage et insertion dans le shell

  Fournit un moyen de manipuler le texte d'un éditeur à l'aide d'outils en ligne de commande. Apparaît dans le menu Outils.

- ## Interface Grep

  Intègre « find|grep » dans KDevelop - permet la recherche rapide de fichiers multiples à l'aide de motifs ou d'expressions rationnelles.

- ## Konsole embarquée

  Ce module externe donne à KDevelop une console embarquée pour un accès en ligne de commande rapide et facile.

- ## Ajout du menu « Ouvrir avec »

  Ce module externe fournit des alternatives à « Ouvrir » additionnelles pour divers menus contextuels de KDevelop.

- ## Outil Explorateur de composants

  Un outil graphique pour effectuer des requêtes de type KTrader sur des services déclarés

- ## Testeur d'expressions rationnelles

  Outil permettant de concevoir et de tester des expressions régulière par rapport à la syntaxe d'expressions rationnelles communes.

- ## Composant remplacement

  Ce module externe est un outil « Recherche et remplacement » interactif à l'échelle du projet. Il effectue une recherche à l'aide de la correspondance de chaînes ou d'expressions rationnelles et sélectionne les remplacements à effectuer à partir d'un aperçu avant que l'action ne soit finalisée. Quand chargé, il apparaît dans le menu Édition.

- ## Scriptage

  Le module Scriptage offre un scriptage basé sur KScript de l'application KDevelop

- ## Fragments de code

  Ce module externe vous permet de stocker des fragments de code et de les ajouter à votre code

- ## Structure du texte

  Fournit un vue d'ensemble de la structure et une navigation pour les fichiers HTML et TEX

- ## Ajout au menu Outils

  Ce module externe fournit un moyen facile d'ajouter des applications externes au menu Outils et à la barre d'outils.

- ## Interface Valgrind

  Valgrind est un outil qui vous aide à repérer les problèmes de gestion de mémoire dans les programmes. http://developer.kde.org/~sewardj/

Portée : Projet

- ## Module externe Annotation

  Description des annotations

- ## Formateur de code source

  Un module externe pour formater du code source en fonction d'un ensemble spécifié de règles. Quand chargé, il se trouve dans le menu Outils.

- ## Signets

  Module externe qui fournir une navigation et une vue d'ensemble des signets actifs et les rend persistants entre deux sessions.

- ## Vue des classes

  Ce module externe affiche une vue graphique de toutes les classes du projet, complète avec les méthodes et les attributs. Il fournit également un moyen de navigation direct dans les sources.

- ## Copier vers

  Module externe simple d'envoi de fichiers. Il effectue une copie de fichier sur n'importe quel protocole KIO pris en charge.

- ## Interface CTags

  CTags est un outil de navigation dans les sources avec prise en charge de nombreux langages. Quand chargé, il fournit un menu contextuel pour trouver des déclarations / définitions de types, ainsi qu'une boîte de dialogue de requêtes. http://ctags.sourceforge.net/

- ## Prise en charge du conditionnement final

  Aide à construire et à publier le projet final. Seul le format de paquetage RPM est pris en charge pour l'instant.

- ## Prise en charge de Doxygen

  Le module externe Doxygen fournit un moyen de spécifier et de contrôler la génération de documentation pour un projet, en fonction du contenu des sources. Vous devez avoir installé Doxygen pour pouvoir l'utiliser. Pour plus d'informations, visitez http://www.doxygen.org

- ## QuickOpen

  Fournit un moyen efficace de trouver / ouvrir des fichiers, classes et méthodes dans un gros projet. Il apparaît dans les menus Fichier et Outils quand chargé.

- ## Contrôleur de sécurité

  Contrôleur de sécurité du code

Jusqu'ici, la liste des modules externes générés.

## Modules externes de gestion de projet dans &kdevelop;

antproject | Gestionnaire de projets ANT (applications &Java;)
autoproject | Gestionnaire de projets Automake
customproject | Gestionnaire de projets personnalisés
trollproject | Gestionnaire de projets basé sur QMake

Les modules externes ci-dessus sont actuellement (en mai 2005) vides. Peut-être la prise en charge des gestionnaires de projets sera-t-elle implémentée sous forme de modules externes dans le futur.

## Modules externes de gestion des langages dans &kdevelop;

cppsupport | Prise en charge de C/C++
fortransupport | Prise en charge de Fortran
javasupport | Prise en charge de &Java;
perlsupport | Prise en charge de Perl
phpsupport | Prise en charge de PHP
pythonsupport | Prise en charge de Python

Dans ce qui suit, certains des modules externes seront étudiés en détail.

- ## Le module externe `abbrev`

  Ce module externe étend les abréviations en fragments de code fréquemment utilisés. Il est activé en appuyant sur Ctrl Espace. Par exemple, quand vous saisissez `« ife »` en C++ dans un éditeur et que vous appuyez sur Ctrl Espace, vous obtenez un modèle de code `if-else` et enregistrez certaines frappes de touches. L'ensemble des abréviations prises en charge dépend du langage de programmation du fichier édité. Par exemple, pour le PHP, vous serez bien évidemment intéressé par des modèles de code autres que pour &Java;.

  L'ensemble des modèles de code est configurable. Si le module externe est activé, vous pouvez voir ceux qui sont disponibles dans la boîte de dialogue Configuration Configurer KDevelop... sous Abréviations.

- ## Le module externe `filter`

  Celui-ci offre deux fonctionnalités. Si vous sélectionnez Outils Exécuter une commande, vous pouvez saisir une commande de shell. La sortie de cette commande est insérée dans le tampon de l'éditeur quand vous cliquez sur le bouton Démarrer.

  Une fonctionnalité connexe est disponible sous Outils Choix d'un filtre par une commande.... Pour l'utiliser, vous devez sélectionner une zone de texte dans l'éditeur. Si vous saisissez à présent une commande de shell et que vous cliquez sur le bouton Démarrer, la commande est lancée et la sélection utilisée comme l'entrée standard pour celle-ci. La sortie standard de la commande est alors insérée dans l'éditeur, remplaçant la sélection.

  Par exemple, si vous écrivez de la documentation, vous devez fréquemment vous référer aux éléments de menu. Pour le faire correctement, par exemple pour la commande « Copier » du menu Édition, vous devez écrire :

      <menuchoice><guimenu>Édition</guimenu><guimenuitem>Copier</guimenuitem></menuchoice>

  Comme c'est fastidieux, vous pourriez aussi bien n'écrire que « Édition- Copier » et laisser l'ordinateur réaliser le marquage. Voici comment vous pouvez le faire. Écrivez un petit script shell appelé « mef » que vous placez par exemple dans votre répertoire personnel :

      sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/

  N'oubliez pas de le rendre exécutable. C'est tout. Maintenant, dans le source .docbook de votre documentation, écrivez « Édition- Copier ». Sélectionnez ce texte que vous venez de saisir, choisissez Outils Choix d'un filtre par une commande... et appelez ~/bin/mef. Instantanément, « Édition- Copier » est remplacé par

      <menuchoice><guimenu>Édition</guimenu><guimenuitem>Copier</guimenuitem></menuchoice>

- ## Le module externe &doxygen;

  Celui-ci vous aide à utiliser l'outil de documentation d'API &doxygen; (). Vous pouvez sélectionner Projet Exécuter Doxygen pour générer la documentation de l'API pour votre projet actuel, en fonction de la configuration donnée par le fichier `Doxyfile` dans le dossier de votre projet.

  De plus, vous pouvez configurer &doxygen; dans la boîte de dialogue Projet Options du projet.... Cette boîte de dialogue est très similaire à l'outil &doxywizard;.

- ## Le module externe &ctags;

  Bien que le navigateur de classes vous donne une compréhension exhaustive des symboles et des classes de votre projet, il se peut aussi que vous soyez amené à utiliser l'outil ctags. En particulier, celui-ci prend en charge beaucoup plus de langages que le navigateur de classes.

  Vous activez ce module externe sous Outils CTags.... Quand vous le démarrez pour la première fois, vous êtes invité à générer d'abord une base de données de recherche. Après que vous l'avez accepté, le programme &ctags; démarre et crée un fichier nommé `tags` dans le dossier de votre projet. C'est un fichier texte contenant tous les symboles de vos fichiers sources.

  Vous pouvez faire une recherche dans la base de données des symboles de deux manières : quand la case Correspondance avec une expression rationnelle est cochée, le texte que vous saisissez sera interprété comme une expression rationnelle (dialecte POSIX) et concordant avec les symboles existants. Par exemple, le texte `.*Widget` cherchera tous les symboles se terminant par `Widget`. Si la case n'est pas cochée, la recherche aura lieu mot à mot.

  Lors de la recherche, vous obtiendrez une liste des symboles concordants, accompagnés des numéros de ligne où ils sont définis. Vous passez au point concerné en cliquant sur la liste.

  Pour certains langages, &ctags; distingue différentes sortes de symboles. Par exemple, Python comporte des classes et des fonctions. Vous pouvez faire une recherche sélective uniquement pour des classes en cochant les types respectifs dans la boîte de dialogue.

  La base de données des symboles n'est normalement pas mise à jour quand vos sources changent. En conséquence, au bout d'un moment, les numéros de ligne ne seront plus corrects et les classes et fonctions récemment ajoutées seront absentes. Vous devriez donc mettre à jour le fichier `tags` à intervalles réguliers en cliquant sur le bouton Régénerer.

- ## Le module externe `astyle`

  Astyle est un module externe pour formater le code source en fonction d'un ensemble spécifié de règles.

- ## Le module externe `regexptest`

  Concevoir avec des expressions rationnelles peut être un travail ardu. Souvent, la première tentative auprès d'une expression correspond à de trop nombreuses chaînes. En particulier, en travaillant avec un langage compilé, les délais d'exécution lors du débogage d'une expression rationnelle peuvent être pénalisants. Le module externe « regexptest » vous permet d'explorer directement les changements dans une expression rationnelle. Il est activé en choisissant Outills Déboguer l'expression rationnelle....

  Dans la zone des groupes de dialectes, vous pouvez choisir le dialecte du moteur d'expressions rationnelles utilisé. Actuellement, sont pris en charge le dialecte défini dans la norme POSIX, qui est utilisé par le programme &grep; et la syntaxe POSIX étendue utilisée par le programme &egrep;.

  Quand vous saisissez une expression, vous avez un retour immédiat sur toute erreur de syntaxe qu'elle contient. En saisissant un texte sous Chaîne de test,vous pouvez voir si l'expression correspond à cette chaîne. En particulier, si votre expression rationnelle inclut des groupes, tels que `([a-z])`, le contenu des sous-groupes concordants sera affiché dans une zone de liste.