Edition du code

L'IDE du PureBasic se comporte comme un éditeur de texte classique en ce qui concerne la saisie de texte. Les touches de curseur, Page précédente, Page suivante, Début et Fin permettent de se déplacer dans le code. Ctrl+Début se rend au début du code et Ctrl+Fin se déplace à la fin.

Les raccourcis par défaut Ctrl+C (copier), Ctrl+X (couper) et Ctrl+V (coller) servent à l'édition. La touche Insérer change le mode d'édition pour déterminer si le texte doit etre remplacé ou ajouté (le mode par défaut est l'ajout). La touche Supprimer supprime une lettre à droite du curseur. Maintenir la touche Shift appuyée et utiliser les flèches permet de sélectionner du texte.

Au delà des fonctions de base, l'IDE a de nombreuses fonctionnalités dédiées à la programmation PureBasic.

Indentation

Quand un retour à ligne est effectué, l'indentation (nombre d'espaces/tabulations en début de ligne) de la ligne courante et de la ligne suivante sera calculée automatiquement en fonction du mot-clé qui est présent sur la ligne. Un mode "block" est aussi disponible. Dans ce cas, la nouvelle ligne aura la même indentation que la ligne courante. Tout ceci est paramètrable dans les preférences.

Caractères de tabulation

Par défaut, l'IDE n'insère pas une vraie tabulation quand la touche Tab est utilisée. En cas d'échange de source, ceci permet d'éviter les problèmes d'affichage inhérents aux normes de tabulation utilisées.

A la place, deux caractères espaces sont insérés. Ce comportement peut être modifié dans les préférences de l'IDE (voir Configurer l'IDE).

Comportement particulier de la touche Tab

Quand la touche Tab est utilisée alors que la sélection est vide ou ne contient que quelques caractères, elle agit comme décrit ci-dessus (insertion d'un nombre d'espaces, ou d'une vraie tabulation selon le réglage défini dans les préférences de l'IDE).

Quand la touche Tab est utilisée alors qu'une ou plusieurs lignes complètes sont sélectionnées, des espaces (ou des tabulations, en fonction de la configuration) sont insérés au début de chaque ligne. Cela permet d'indenter rapidement des blocs complets de code.

Quand la combinaison de touches Shift+Tab est utilisée alors que plusieurs lignes sont sélectionnées, les espaces/tabulations au début de chaque ligne sont supprimés afin de réduire l'indentation du bloc complet.

Retrait (Indentation) / Alignement des commentaires:

Similaire au comportement de l'onglet spécial ci-dessus, les raccourcis clavier Ctrl+E et Ctrl+Maj+E (CMD+E et CMD+Maj+E sur OSX) peuvent être utilisés pour modifier le retrait des commentaires sélectionnés. Cela aide à aligner les commentaires à la fin du code, pour le rendre encore plus lisible. Les raccourcis utilisés peuvent être configurés dans les préférences.

Sélection des blocs de code:

Le raccourci Ctrl+M (CMD+M sur OSX) peut être utilisé pour sélectionner le bloc de code qui contient la position du curseur (par exemple un bloc 'If', une boucle ou une procédure). Une utilisation répétée du raccourci sélectionne d'autres blocs de code environnant.

Le raccourci Ctrl+Maj+M (CMD+Maj+M sur OSX) a la fonction inverse et rétablit la sélection du bloc précédemment sélectionné avec Ctrl+M.

Les raccourcis utilisés peuvent être configurés dans les préférences.

Double-cliquer sur un mot

En principe, double-cliquer sur un mot le sélectionne. Néanmoins, dans quelques cas, le comportement est différent:

Maintenir la touche Ctrl appuyée et double-cliquer sur le nom d'une procédure , définie dans le même fichier, permet de se rendre directement à sa déclaration. Si la procédure se trouve dans un autre fichier, celui-ci doit déjà être ouvert dans l'IDE.

Double-cliquer sur un mot-clé IncludeFile ou XincludeFile ouvrira le fichier dans l'IDE (le nom du fichier doit être spécifié en entier, sans utiliser de constante par exemple).

De la même manière, double-cliquer sur le mot-clé IncludeBinary aura pour effet d'ouvrir le fichier dans le visualisateur de fichier intégré à l'IDE.

Marqueur de parenthèse et de mots-clés:

Quand le curseur est sur une parenthèse ouvrante ou fermante, l'IDE mettra en surbrillance l'autre parenthèse qui lui correspond. Si aucune parenthèse ne correspond (ce qui est une erreur de syntaxe en PureBasic), l'IDE affichera la parenthèse en rouge. Le même concept est appliqué aux mots-clés. Si le curseur est sur un mot-clé comme "If", l'IDE soulignera ce mot-clé et tous les autres mots-clés qui lui correspond, comme "Else", "ElseIf" ou "EndIf". Si il manque des mots-clés, il sera souligné en rouge. Le menu "Aller au mot-clé correspondant" décrit ci-dessous peut être utilisé pour aller rapidement d'un mot-clé à l'autre.

Le marqueur de parenthèse et de mots-clés est configurable dans les préférences.

Aide syntaxique dans la barre d'état

L'IDE affichera les paramètres nécessaires pour chaque fonction PureBasic qui est en cours de frappe. Cela rend plus facile la saisie, en montrant les paramètres qui sont indispensables. Cela fonctionne aussi pour les procédures, prototypes, interfaces ou fonctions importées, s'ils sont déclarés dans le même fichier source ou dans le même projet.

Options de pliage

Quand un mot-clé de pliage est rencontré (Procedure / EndProcedure par défaut, d'autres peuvent être ajoutés) l'IDE marque la région délimitée par ces deux mots-clés par un [-] sur la ligne du premier mot et une ligne verticale jusqu'à la fin du bloc.

En cliquant sur le [-], il est possible de cacher (replier) le contenu du bloc pour garder une meilleure vue d'ensemble sur les codes sources conséquents. Le [-] se transformera alors en [+]. En cliquant de nouveau dessus, le code sera de nouveau affiché (déplié).

Note: Même si l'état des blocs est préservé lors de l'enregistrement du fichier, le fichier lui-même contient bien sûr toutes les lignes de codes. Cette option affecte seulement l'affichage du code source, pas son contenu.

Deux autres délimiteurs de replis sont activés par défaut: ";{" et ";}". Comme ";" marque le début d'un commentaire en PureBasic, ils seront ignorés par le compilateur. Néanmoins, ils permettent de placer des délimiteurs à des endroits arbitraires qui ne correspondent pas forcément à un mot-clé PureBasic.

Auto-complétion

Pour ne pas avoir à se souvenir de tous les noms des commandes PureBasic, il y a l'auto-complétion qui peut rendre bien des services.

Après avoir tapé le début du nom de la commande, une liste des commandes possibles qui débute par ce mot s'affichera. Une liste de choix est aussi affichée après avoir tapé "\" sur une variable liée à une structure ou une interface.

Une fois le mot sélectionné à l'aide des flèches il peut être inséré dans le code source en appuyant sur la touche Tab. Il est aussi possible de continuer à taper les lettres pendant que la liste est affichée, pour réduire le choix. Si plus aucune proposition n'est disponible, alors la boîte se fermera automatiquement.

La touche Echappement permet de fermer la liste à tout moment. La liste se ferme aussi automatiquement si un bouton souris est utilisé dans l'IDE.

Note: Pour configurer le contenu qui sera affiché dans la liste d'auto-complétion, ainsi que ses nombreuses fonctionnalités, voir Configurer l'IDE. Par exemple, il est possible de désactiver l'apparition automatique de la liste (Ctrl+Espace sera alors necessaire pour l'afficher).

Panneau d'outils

La plupart des outils qui rendent la navigation et l'édition de code sources plus aisés peuvent être ajoutés au panneau d'outils situé sur le côté de la zone d'édition. Pour avoir un aperçu des outils disponibles et pour les configurer, voir Les outils intégrés.

Le menu édition

Les rubriques suivantes expliquent les commandes disponibles dans le menu édition. A noter que bon nombre de ces commandes sont aussi présentes dans le menu contextuel de la zone d'édition.

Annuler
Annule la dernière action effectuée dans la zone d'édition. Il est possible d'annuler plusieurs actions à la suite.

Rétablir
Refait la dernière action annulée par la commande "Annuler".

Couper
Copie le texte sélectionné dans le presse-papier et le supprime du code.

Copier
Copie le texte sélectionné dans le presse-papier.

Coller
Insère le contenu du presse-papier dans le code, à la position du curseur. Si une partie du code était sélectionnée, elle sera alors remplacée par le contenu du presse-papier.

Insérer commentaires
Insère un commentaire (";") au début de chaque ligne sélectionnée. Cela permet de commenter rapidement un nombre conséquent de lignes.

Supprimer commentaires
Enlève le commentaire (";") du début de chaque ligne sélectionnée. Cela permet de dé-commenter rapidement un nombre conséquent de lignes. C'est la fonction inverse de "Insérer commentaire", mais elle fonctionne aussi sur des commentaires entrés manuellement.

Format et indentation
Reformate le code source sélectionné pour aligner le code en fonction des règles définies dans les préférences.

Sélectionner tout
Sélectionne le code source en entier.

Aller à
Permet de se rendre directement à une ligne donnée.

Aller au mot-clé correspondant
Si le curseur est actuellement sur un mot-clé comme "If", le curseur ira directement sur le mot-clé correspondant (dans ce cas "EndIf").

Ligne récente
L'IDE garde une trace des lignes qui sont visualisées. Par exemple, si la position du curseur est changée par la commande "Aller à" ou en cliquant sur l'outil Navigateur de procédures, cette fonction permet de revenir rapidement à la ligne précédente. L'IDE retient 20 positions différentes.

A noter que l'enregistrement ne se fait que si le déplacement est conséquent (ex: pas si les touches haut/bas sont utilisées).

Changer le pliage courant
Change l'état du point de repli associé à la ligne courante (le déplier ou le replier le cas échéant).

Plier/Déplier tout
Change l'état de tous les points de replis dans le code source, très utile pour cacher toutes les procédures d'un code source (ou pour ré-afficher le code complet en une seule fois).

Ajouter/Supprimer un marqueur
Cette commande permet d'ajouter un marqueur sur la ligne courante (ou de le retirer si il y en avait déjà un). Un marqueur permet de retrouver rapidement une ligne de code. Il est identifié par une petite flèche horizontale (verte, par défaut) à côté de la ligne concernée. Il est possible de passer de marqueur en marqueur en utilisant la commande "Marqueur suivant".

Note: Pour ajouter/retirer un marqueur à l'aide de la souris, il faut maintenir la touche Ctrl appuyée pendant le clic sur la bordure qui affiche les marqueurs (la colonne de numérotation des lignes n'est pas prise en compte).

Aller au marqueur
Se rend au premier marqueur disponible, situé en dessous de la ligne en cours d'édition. Si il n'y a plus de marqueur en dessous de cette ligne, la recherche reprend au début du code source. En utilisant le raccourci "Marqueur suivant" (F2, par défaut) plusieurs fois, il est possible de parcourir tous les marqueurs du code très rapidement.

Effacer les marqueurs
Retire tous les marqueurs du code source en cours d'édition.

Rechercher/Remplacer


Cette fenêtre permet de rechercher un mot (ou une suite de mots) dans le code source et de les remplacer par d'autres mots si nécessaire.

Le bouton "Chercher suivant" démarre la recherche. La recherche peut continuer une fois un terme trouvé en utilisant la commande du menu "Rechercher à nouveau" (raccourci F3 par défaut).

Pour rendre la recherche plus pointue, les options suivantes sont disponibles:
Respecter la casse : Seul le texte qui est strictement identique au mot recherché sera retenu (les minuscules ne sont pas identiques aux majuscules).
Mots entiers seulement : Recherche seulement les termes qui forment un mot. Les termes qui contiennent le mot recherché ne seront pas retenus.
Ignorer les commentaires : Tous les commentaires PureBasic sont exclus de la recherche.
Ignorer les chaînes : Tous les contenus des strings (entre " ") sont ignorés.
Rechercher seulement dans la sélection: recherche seulement dans le texte sélectionné. C'est une option très utile quand elle est utilisée en conjonction avec la fonction "Remplacer tout". Dans ce cas, le remplacement ne s'opèrera uniquement que dans la sélection.

En activant la case à cocher "Remplacer par", la fonction remplacer devient disponible. "Chercher suivant" cherchera toujours l'occurrence suivante, et chaque clic sur le bouton "Remplacer" remplacera le texte trouvé par le contenu du champ "Remplacer par".

En cliquant sur "Remplacer tout", tous les termes correspondants à la recherche situés en dessous du curseur seront remplacés (sauf si l'option "Rechercher seulement dans la sélection" est activée).

Rechercher suivant
Continue la recherche correspondant à la dernière recherche entamée dans la fenêtre "Chercher/Remplacer".

Rechercher précédent
Continue la recherche en remontant à la recherche précédente entamée dans la fenêtre "Chercher/Remplacer".

Rechercher dans les fichiers


Cette fonction permet de rechercher parmi tous les fichiers d'un répertoire donné (et optionnellement dans ses sous-répertoires).

Il suffit de spécifier le mot (ou la séquence de mots) à rechercher ainsi que le répertoire de base (champ "Répertoire"). Il est possible d'indiquer des filtres pour inclure uniquement les fichiers voulus (ex: *.pb). Plusieurs filtres peuvent être spécifiés, en les séparant par une virgule "," (un filtre vide ou *.* recherche dans tous les fichiers). Des options similaires à la fenêtre "Rechercher/Remplacer" sont disponibles pour rendre la recherche plus pointue.

La case à cocher "Inclure les sous-répertoires" permet de rechercher dans tous les sous-répertoires (d'une manière récursive) du répertoire de base.

Quand la recherche débute, une fenêtre indépendante sera ouverte pour afficher les résultats de la recherche en indiquant le fichier, le numéro de la ligne ainsi que le contenu de la ligne.

En double-cliquant sur une des lignes, le fichier sera automatiquement ouvert dans l'IDE à la ligne concernée.