KDevelop4/TipsAndTricks/fr: Difference between revisions

From KDE UserBase Wiki
(Created page with "== Trucs Et Astuces ==")
 
No edit summary
 
(69 intermediate revisions by 2 users not shown)
Line 2: Line 2:
== Trucs Et Astuces ==
== Trucs Et Astuces ==


=== Code Completion ===
=== Complétion de code ===


While you have automatic code completion, requesting it manually is often a very good idea. Press <keycap>Ctrl + Space</keycap> and you'll get a detailed code completion list. Navigate with the arrow buttons (<keycap>Up</keycap>/<keycap>Down</keycap>) and press (and keep pressed) <keycap>Alt</keycap> to show documentation of the focused item. Press <keycap>Enter</keycap> to insert the item.
Alors que vous avez la complétion automatique de code, en faire la demande manuellement est souvent une très bonne idée. Appuyez sur <keycap>Ctrl + Space</keycap> et vous obtiendrez une liste détaillée de complétion de code. Naviguez avec les flèches (<keycap>Haut</keycap>/<keycap>Bas</keycap>) et appuyez (et laissez appuyer) <keycap>Alt</keycap> pour montrer la documentation de l'élement ciblé. Appuyez sur <keycap>Entrer</keycap> pour insérer l'élement.


=== C++ Type Assistant ===
=== Assistant de type C++ ===


Assume you have something similar to this:
Supposons que vous ayez quelque chose de semblable à ceci:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
#include <vector>
#include <vector>
Line 15: Line 15:
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Now you want to iterate over the contents, instead of writing the type of the iterator, you just write:
Maintenant, vous voulez parcourir le contenu, au lieu d'écrire le type de l'itérateur, écrivez simplement:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
   it = vector.begin();
   it = vector.begin();
</syntaxhighlight>}}
</syntaxhighlight>}}
Now wait a second until the assistant pops up at the bottom of the editor. Press <keycap>Alt + 1</keycap> to execute the assistant and you end up with:
Maintenant, attendez une seconde jusqu'à ce que l'assistant apparaisse au bas de l'éditeur. Appuyez sur <keycap> Alt + 1 </keycap> pour exécuter l'assistant et vous vous retrouvez avec:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
   std::vector< int >::iterator it = v.begin();
   std::vector< int >::iterator it = v.begin();
</syntaxhighlight>}}
</syntaxhighlight>}}
Nice, lots of time saved. {{Smiley}} And this should work with most/all expressions, as long as the right side can be evaluated, you should get an assistant that adds the correct type to the left side.
Bien, beaucoup de temps de gagné {{Emoji|smile}}.  Et cela devrait fonctionner avec la plupart/toutes des expressions, dès que le côté droit peut être évalué, vous devriez obtenir un assistant qui ajoute le type correct sur ​​le côté gauche.


=== C++ Signature Assistant ===
=== Assistant de signature C++ ===


Example code:
Exemple de code:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class foo {
class foo {
Line 37: Line 37:
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Now try the following things and after each step wait shortly and apply the assistant that pops up at the bottom of the editor with <keycap>Alt + 1</keycap>:
Maintenant essayez les choses suivantes et après chaque étape attendez un peu et appliquez l'assistant qui apparaît en bas de l"éditeur avec <keycap>Alt + 1</keycap>:


# add a parameter, e.g. <code>int foo</code> to either signature in the definition or the declaration.
# ajoutez un paramètre, ex: <code>int foo</code> soit à la signature de la définition ou de la déclaration.
# make one signature <code>const</code>
# faites une signature <code>const</code>
# change a type of a parameter
# changez le type de paramètre
# remove a parameter
# retirez le paramètre


Again, a very handy time saver!
De nouveau, un gain de temps très pratique!


=== C++ Missing Declaration Assistant ===
=== Assistant de déclaration C++ absente ===


Example Code:
Exemple de code :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class foo {
class foo {
Line 58: Line 58:
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Now write this into the implementation of bar:
Maintenant écrivez ceci dans l'implementation de la barre :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
   myVar = 1;
   myVar = 1;
</syntaxhighlight>}}
</syntaxhighlight>}}
You should get an assistant that offers you three options:
Vous devriez obtenir un assistant qui vous propose trois options :


# declare local <code>int myVar</code> (see type assistant above)
# déclarer en local <code>int myVar</code> (voir l'assistant de type ci-dessus)
# declare public <code>int myVar</code>, adds the declaration to the class body
# déclarer public <code>int myVar</code>, ce qui ajoute la déclaration dans le corps de la classe
# declare private <code>int myVar</code>, same as above, but in private section.
# déclarer private <code>int myVar</code>, pareil que ci-dessus mais dans la section privée.


This even works for functions:
Ceci fonctionne même pour les fonctions :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class foo {
class foo {
Line 78: Line 78:
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Now write this below <code>foo f;</code>:
Maintenant écrivez ceci en-dessous <code>foo f;</code>:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
   f.someFunction(1, true, "asdf");
   f.someFunction(1, true, "asdf");
</syntaxhighlight>}}
</syntaxhighlight>}}
The assistant now offers you to declare that function, you'll end up with:
L'assistant vous offre maintenant de déclarer cette fonction, avec laquelle vous terminerez :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class foo {
class foo {
Line 89: Line 89:
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}
Cool {{Smiley}}.
Sympa {{Emoji|smile}}.




=== Overload Helper ===
=== Aide pour la surcharge ===


Example code:
Code d'exemple :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class A {
class A {
Line 104: Line 104:
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}
Inside the class body of <code>B</code> press <keycap>Ctrl + Space</keycap> to bring up code completion. You should notice an item to overload <code>foo(int something);</code>. Execute it with <keycap>Enter</keycap> and you should get:
Dans le corps de la classe <code>B</code> pressez les touches <keycap>Ctrl + Space</keycap> pour réaliser la complétion du code. Vous devriez remarquer un élément pour surcharger <code>foo(int quelquechose);</code>. Puis exécutez le avec <keycap>Entrée</keycap> et vous devriez obtenir :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class B : public A {
class B : public A {
Line 111: Line 111:
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}
Cool {{Smiley}}.
Sympa {{Emoji|smile}}.


=== Implementation Helper ===
=== Aide pour l'implémentation ===


Continue where we left of in the '''Overload Helper''':
Continuez là où nous nous sommes arrêté dans l' '''aide sur la surcharge''' :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class B : public A {
class B : public A {
Line 122: Line 122:
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}
Place your cursor below the class context, request code completion with <keycap>Ctrl + Space</keycap>, you should notice an item to implement <code>B::foo(int something);</code>. Execute it with <keycap>Enter</keycap> and you should get:
Amenez votre curseur sous le contexte de la classe, appelez la complétion de code avec <keycap>Ctrl + Espace</keycap>, vous devriez apercevoir un élément à implémenter <code>B::foo(int quelque chose);</code>. Exécutez le avec <keycap>Entrée</keycap> et vous devriez obtenir :
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
A* B::foo(int something)
A* B::foo(int something)
Line 129: Line 129:
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Awesome {{Smiley}}.
Génial {{Emoji|smile}}.


=== Quick Open ===
=== Ouverture rapide ===


<menuchoice>Quick Open</menuchoice> is probably one of ''the'' features in '''KDevelop''' that increases productivity:
<menuchoice>Ouverture rapide</menuchoice> est probablement l'une des fonctions de '''KDevelop''' qui améliore la productivité :


* Quick Open Files
* Ouverture rapide des fichiers
Press <keycap>Ctrl + Alt + O</keycap> and type part of a filepath, press <keycap>Enter</keycap> and the selected file gets opened. The search is separated by forward slashes, i.e. you can write this: <code>/a/.cpp</code> and the list will only show paths that have a folder starting with <code>a</code> and files that end on <code>.cpp</code>. Try it out.
Si vous faites <keycap>Ctrl + Alt + O</keycap> suivi d'un chemin partiel et pressez <keycap>Entrée</keycap> , alors le fichier sélectionné s'ouvre. La recherche est séparée par les caractères slash avant ('/') , c'est à dire que vous pouvez écrire ceci: <code>/a/.cpp</code> et la liste n'affichera que des chemins qui ont un répertoire commençant par <code>a</code> et des fichiers qui se terminent par <code>.cpp</code>. Essayez !


* Quick Open Classes
* Ouverture rapide des classes
<keycap>Ctrl + Alt + C</keycap> and input (parts) of the qualified class identifier, press <keycap>Return</keycap> and jump to the declaration of that class.
<keycap>Ctrl + Alt + C</keycap> et entrez (les parties) de l'identificateur de classe utilisé, pressez <keycap>Retour</keycap> et sautez à la déclaration de cette classe.


Also make sure to explore the other advanced features in <menuchoice>Quick Open</menuchoice>.
Assurez-vous aussi de voir les autres fonctions avancées présentes dans <menuchoice>Quick Open</menuchoice>.


=== Outline ===
=== Plan ===


Similar to quick open, pressing <keycap>Ctrl + Alt + N</keycap> gives you an outline of the current document with the ability to search for an identifier and quickly jump to its declaration.
Pareil que pour l'ouverture rapide, en pressant <keycap>Ctrl + Alt + N</keycap> vous aurez un plan du document courant avec la possibilité de rechercher un identifiant et d'aller rapidement à sa déclaration.


=== Context Browsing ===
=== Exploration du contexte ===


Hover a use, declaration or definition and you'll get a popup with information about it. You can also move your cursor in there and press (and keep pressed) the <keycap>Alt</keycap> button to show that popup without using the mouse. Use the arrow keys to navigate between the links in the popup, use <keycap>Enter</keycap> to jump to the destination of a link.
Survolez à l'aide de la souris l'utilisation, la déclaration ou la définition et vous obtiendrez une fenêtre contenant les informations. Vous pouvez aussi placer votre curseur et presser le bouton <keycap>Alt</keycap> (en le maintenant) pour afficher cette fenêtre sans utiliser la souris. Utilisez les flèches pour naviguer entre les liens dans la fenêtre, utilisez <keycap>Entrée</keycap> pour vous rendre à la destination d'un lien.


When inside a use, press <keycap>Meta + Left</keycap> or <keycap>Meta + Right</keycap> to jump to the previous/next use. Press <keycap>Ctrl + .</keycap> or <keycap>Ctrl + ,</keycap> to jump to the declaration or definition of the symbol under the cursor. Alternatively click on a symbol with <keycap>Ctrl</keycap> button pressed to do the same.
Lorsque vous êtes dans un cas d'utilisation, pressez <keycap>Meta + Flèche gauche</keycap> ou <keycap>Meta + Flèche droite</keycap> pour sauter à l'utilisation précédente/suivante. Pressez <keycap>Ctrl + .</keycap> ou <keycap>Ctrl + ,</keycap> pour aller à la déclaration ou à la définition du symbole sous le curseur. Vous pouvez également cliquer sur un symbole avec le bouton <keycap>Ctrl</keycap> enfoncé et obtenir le même résultat.


Also take a look at the <menuchoice>Navigation</menuchoice> menu and it's various shortcuts. Context browsing is awesome!
Essayez aussi le menu <menuchoice>Navigation</menuchoice> et ses différents raccourcis. L'exploration du contexte est merveilleuse !


=== How to work with autotools: automake, autoconf and libtool ===
=== Comment travailler avec les autotools: automake, autoconf et libtool ===


'''KDevelop 4''' does not support very well the autotools. I suggest using [[Special:myLanguage/Konsole|Konsole]] to run configure scripts to build makefile. The custom makefile support works quite well. I suggest using separate building folder (say <tt>project/build</tt>).
'''KDevelop 4''' ne suppporte pas bien les autotools. Je suggère d'utiliser [[Special:myLanguage/Konsole|Konsole]] pour exécuter les scripts de configuration pour la construction du makefile. Le support de la personnalisation des makefile fonctionne bien. Je suggère d'utiliser un répertoire de compilation séparé (disons  <tt>project/build</tt>).


After the custom makefiles are in place (say in <tt>build</tt>-directory) one can add that to build list by clicking the {{Plus}} button on lower left corner '''Project selection''' while build directory is selected. This causes command '''make''' to be run when pressing <menuchoice>Build</menuchoice>. One can also directly run say '''make install''' on specific directory by right clicking the folder and selecting '''make install'''. This is nice if you have lots of projects in working set.  
Après que les fichiers makefile utilisateur aient été construits (disons dans le répertoire <tt>build</tt> ) vous pouvez les ajouter à la liste du build en cliquant sur le bouton {{Plus}} dans le coin inférieur gauche '''Sélectionner un projet''' en sélectionnant le répertoire de  build. Ceci fait que vous exécutez la commande '''make''' lorsque vous pressez <menuchoice>Build</menuchoice>. On peut aussi lancer directement disons '''make install''' sur un répertoire spécifique en cliquant-droit sur le répertoire et en choisissant '''make install'''. Ceci est bien si vous avez beaucoup de projets dans votre espace de travail.  


'''Libtool''' also causes problems if you try to debug application that has been linked with '''libtool''': the program that you see in for example <tt>src/bin/program</tt> is not the executable, but a script that handles the libraries.  
'''Libtool''' crée aussi des problèmes si vous essayez de déboguer des applications dont l'édition de liens a été faite avec '''libtool''': le programme que vous voyez par exemple <tt>src/bin/program</tt> n'est pas l'exécutable, mais un script qui gère les bibliothèques.  


Problem is properly solved in console by running {{Input|1=libtool --mode=execute '''''<dst_binary>'''''}} but at least currently '''KDevelop4''' does not work good (at all) with other console than default. I have been stuck of using the real binary (found usually from  <tt>src/bin/.libs/<exec></tt>) that might use wrong libraries, so do '''make install''' before every run.
Le problème est résolu simplement dans la console en lançant {{Input/fr|1=libtool --mode=execute'' '''<dst_binary>''' ''}}  
mais au moins le '''KDevelop4''' actuel ne fonctionne pas bien (pas du tout) avec d'autres consoles que celle par défaut. J'ai eu des problèmes en utilisant le binaire réel (trouvé habituellement à partir de <tt>src/bin/.libs/<exec></tt>) qui pourrait utiliser de mauvaises bibliothèques, donc faites '''make install''' avant chaque exécution.


=== KDE Classes Documentation ===
=== Documentation des classes KDE ===


Using the '''Qt Documentation''' plugin you may integrate KDE documentation along with Qt documentation. Point your browser at [http://api.kde.org/ KDE API Reference] and download the desired <tt>.qch</tt> file (not all modules provide one). Then configure the '''Qt Documentation''' plugin by adding the downloaded files. That's it! Whenever you hover a KDE class you can see a link <menuchoice>Show documentation for KFooClass</menuchoice> which points to KFooClass documentation. Enjoy.
En utilisant le module externe '''Qt Documentation''' vous pourvez intégrer la documentation KDE avec celle de Qt. Ouvrez dans votre navigateur la page [http://api.kde.org/ manuel de référence de l'API KDE] et téléchargez le fichier <tt>.qch</tt> voulu (pas tous les modules en proposent un). Puis configurez le module externe '''Qt Documentation''' en ajoutant les fichiers rapatriés. C'est tout! A chaque fois que vous survolez une classe KDE vous pouvez voir un lien <menuchoice>Afficher la documentation de KFooClass</menuchoice> qui pointe sur la documentation de KFooClass. Essayez le !


[[Category:Development]]
[[Category:Développement/fr]]

Latest revision as of 13:26, 30 July 2018

Other languages:

Trucs Et Astuces

Complétion de code

Alors que vous avez la complétion automatique de code, en faire la demande manuellement est souvent une très bonne idée. Appuyez sur Ctrl + Space et vous obtiendrez une liste détaillée de complétion de code. Naviguez avec les flèches (Haut/Bas) et appuyez (et laissez appuyer) Alt pour montrer la documentation de l'élement ciblé. Appuyez sur Entrer pour insérer l'élement.

Assistant de type C++

Supposons que vous ayez quelque chose de semblable à ceci:

#include <vector>
void myFunc(const std::vector<int>& v) {

}

Maintenant, vous voulez parcourir le contenu, au lieu d'écrire le type de l'itérateur, écrivez simplement:

  it = vector.begin();

Maintenant, attendez une seconde jusqu'à ce que l'assistant apparaisse au bas de l'éditeur. Appuyez sur Alt + 1 pour exécuter l'assistant et vous vous retrouvez avec:

  std::vector< int >::iterator it = v.begin();

Bien, beaucoup de temps de gagné 🙂. Et cela devrait fonctionner avec la plupart/toutes des expressions, dès que le côté droit peut être évalué, vous devriez obtenir un assistant qui ajoute le type correct sur ​​le côté gauche.

Assistant de signature C++

Exemple de code:

class foo {
  int bar();
};

int foo::bar()
{
}

Maintenant essayez les choses suivantes et après chaque étape attendez un peu et appliquez l'assistant qui apparaît en bas de l"éditeur avec Alt + 1:

  1. ajoutez un paramètre, ex: int foo soit à la signature de la définition ou de la déclaration.
  2. faites une signature const
  3. changez le type de paramètre
  4. retirez le paramètre

De nouveau, un gain de temps très pratique!

Assistant de déclaration C++ absente

Exemple de code :

class foo {
  int bar();
};

foo::bar()
{
}

Maintenant écrivez ceci dans l'implementation de la barre :

  myVar = 1;

Vous devriez obtenir un assistant qui vous propose trois options :

  1. déclarer en local int myVar (voir l'assistant de type ci-dessus)
  2. déclarer public int myVar, ce qui ajoute la déclaration dans le corps de la classe
  3. déclarer private int myVar, pareil que ci-dessus mais dans la section privée.

Ceci fonctionne même pour les fonctions :

class foo {
};

int main() {
  foo f;

}

Maintenant écrivez ceci en-dessous foo f;:

  f.someFunction(1, true, "asdf");

L'assistant vous offre maintenant de déclarer cette fonction, avec laquelle vous terminerez :

class foo {
public:
  void someFunction( int arg1, bool arg2, const char* arg3 );
};

Sympa 🙂.


Aide pour la surcharge

Code d'exemple :

class A {
public:
  virtual A* foo(int something){}
};
class B : public A {

};

Dans le corps de la classe B pressez les touches Ctrl + Space pour réaliser la complétion du code. Vous devriez remarquer un élément pour surcharger foo(int quelquechose);. Puis exécutez le avec Entrée et vous devriez obtenir :

class B : public A {
public:
  virtual A* foo(int something);
};

Sympa 🙂.

Aide pour l'implémentation

Continuez là où nous nous sommes arrêté dans l' aide sur la surcharge :

class B : public A {
public:
  virtual A* foo(int something);
};

Amenez votre curseur sous le contexte de la classe, appelez la complétion de code avec Ctrl + Espace, vous devriez apercevoir un élément à implémenter B::foo(int quelque chose);. Exécutez le avec Entrée et vous devriez obtenir :

A* B::foo(int something)
{
  A::foo(something);
}

Génial 🙂.

Ouverture rapide

Ouverture rapide est probablement l'une des fonctions de KDevelop qui améliore la productivité :

  • Ouverture rapide des fichiers

Si vous faites Ctrl + Alt + O suivi d'un chemin partiel et pressez Entrée , alors le fichier sélectionné s'ouvre. La recherche est séparée par les caractères slash avant ('/') , c'est à dire que vous pouvez écrire ceci: /a/.cpp et la liste n'affichera que des chemins qui ont un répertoire commençant par a et des fichiers qui se terminent par .cpp. Essayez !

  • Ouverture rapide des classes

Ctrl + Alt + C et entrez (les parties) de l'identificateur de classe utilisé, pressez Retour et sautez à la déclaration de cette classe.

Assurez-vous aussi de voir les autres fonctions avancées présentes dans Quick Open.

Plan

Pareil que pour l'ouverture rapide, en pressant Ctrl + Alt + N vous aurez un plan du document courant avec la possibilité de rechercher un identifiant et d'aller rapidement à sa déclaration.

Exploration du contexte

Survolez à l'aide de la souris l'utilisation, la déclaration ou la définition et vous obtiendrez une fenêtre contenant les informations. Vous pouvez aussi placer votre curseur et presser le bouton Alt (en le maintenant) pour afficher cette fenêtre sans utiliser la souris. Utilisez les flèches pour naviguer entre les liens dans la fenêtre, utilisez Entrée pour vous rendre à la destination d'un lien.

Lorsque vous êtes dans un cas d'utilisation, pressez Meta + Flèche gauche ou Meta + Flèche droite pour sauter à l'utilisation précédente/suivante. Pressez Ctrl + . ou Ctrl + , pour aller à la déclaration ou à la définition du symbole sous le curseur. Vous pouvez également cliquer sur un symbole avec le bouton Ctrl enfoncé et obtenir le même résultat.

Essayez aussi le menu Navigation et ses différents raccourcis. L'exploration du contexte est merveilleuse !

Comment travailler avec les autotools: automake, autoconf et libtool

KDevelop 4 ne suppporte pas bien les autotools. Je suggère d'utiliser Konsole pour exécuter les scripts de configuration pour la construction du makefile. Le support de la personnalisation des makefile fonctionne bien. Je suggère d'utiliser un répertoire de compilation séparé (disons project/build).

Après que les fichiers makefile utilisateur aient été construits (disons dans le répertoire build ) vous pouvez les ajouter à la liste du build en cliquant sur le bouton dans le coin inférieur gauche Sélectionner un projet en sélectionnant le répertoire de build. Ceci fait que vous exécutez la commande make lorsque vous pressez Build. On peut aussi lancer directement disons make install sur un répertoire spécifique en cliquant-droit sur le répertoire et en choisissant make install. Ceci est bien si vous avez beaucoup de projets dans votre espace de travail.

Libtool crée aussi des problèmes si vous essayez de déboguer des applications dont l'édition de liens a été faite avec libtool: le programme que vous voyez par exemple src/bin/program n'est pas l'exécutable, mais un script qui gère les bibliothèques.

Le problème est résolu simplement dans la console en lançant

libtool --mode=execute <dst_binary> 

mais au moins le KDevelop4 actuel ne fonctionne pas bien (pas du tout) avec d'autres consoles que celle par défaut. J'ai eu des problèmes en utilisant le binaire réel (trouvé habituellement à partir de src/bin/.libs/<exec>) qui pourrait utiliser de mauvaises bibliothèques, donc faites make install avant chaque exécution.

Documentation des classes KDE

En utilisant le module externe Qt Documentation vous pourvez intégrer la documentation KDE avec celle de Qt. Ouvrez dans votre navigateur la page manuel de référence de l'API KDE et téléchargez le fichier .qch voulu (pas tous les modules en proposent un). Puis configurez le module externe Qt Documentation en ajoutant les fichiers rapatriés. C'est tout! A chaque fois que vous survolez une classe KDE vous pouvez voir un lien Afficher la documentation de KFooClass qui pointe sur la documentation de KFooClass. Essayez le !