Utiliser le folding sur du texte, dans SciTE

SciTE est rapidement devenu mon éditeur préféré pour écrire. Je veux dire pour écrire du texte à la page, par exemple des histoires de SF 8)

Pourquoi SciTE ?

  1. c’est un éditeur de texte, pas un traitement de texte lourd et long à démarrer. J’aime le format .txt : léger, portable 🙂
  2. SciTE dispose d’un mode plein écran.
  3. Il permet d’utiliser n’importe quelle police ou presque pour l’affichage du texte. Il est très personnalisable (Emacs aussi, mais bon…).
  4. C’est plus anecdotique, mais je trouve ça très pratique : il est très facile de zoomer dans le texte pour changer sa taille d’affichage. Appuyez sur Ctrl et faite tourner la molette de la souris.

Voici à quoi ressemble ma version de SciTE en mode plein écran :

Scite en mode plein écran, avec la police Thyssen

Ca peut sembler moche mais c’est en réalité très confortable selon mes critères :

  • Ce que vous voyez là c’est toute la surface de l’écran de mon portable (12″ 1280×768). Comme vous le voyez, l’écran est entièrement occupé par SciTE : pas de barre des tâches de Windows, pas de boutons, pas de fenêtres. Rien que le texte coloré sur fond noir. Toutes les sources de distractions potentielles sont masquées : web, email, chat. Rien ne vient me distraire quand j’entre en « mode écriture ».
  • L’écran est entièrement occupé par SciTE, mais j’ai la possibilité de définir des marges gauches et droites de façon à ce que le texte ne s’affiche pas sur toute la largeur et crée des lignes interminables, illisibles.
  • Les couleurs et les polices choisies sont libres. J’aime un fond noir et la police orange, le contraste est moins fatiguant pour les yeux, je trouve.
  • On peut utiliser une police d’affichage avec empattement, sans modifier le fichier texte lui-même juste son apparence. Possibilité d’utiliser des polices, des tailles et des couleurs différentes selon la situation (dans ma version, j’ai défini 5 niveaux de titres, un style commentaire et un style normal).
  • Même si la configuration semble fastidieuse (il faut modifier des paramètres dans un fichier), c’est très simple et très performant.

C’est déjà pas mal, mais il me manquait une petite chose : la possibilité d’utiliser le « folding » dans un fichier .txt. Le folding est une option que SciTE propose pour certains formats de fichiers (et pas pour d’autres, entre autres pas pour le format .txt) qui permet de replier le contenu d’un bloc, par exemple un bloc d’instructions contenues dans une paire d’accolades :

blabla

{

un autre blabla

un autre blabla

}

Suite du blabla

Suite du blabla

Une fois « foldé » donnera :

blabla

{

Suite du blabla

Ou quelque chose dans le genre. Vous avez l’idée. Ca serait très utile lorsqu’on écrit des histoires un peu longues, pour masquer tel ou tel chapitre ou pour visiualiser un plan d’ensemble. Hélas, ça ne marche que pour certains langages de progrmmation, pas pour du simple texte.

Comme les développeurs ont eu la bonne idée de mettre à disposition leur code source (merci !) je me suis dit et si j’essayais ? De mes petits doigts maladroits j’ai créé un lexer (ce qui gère le folding et la coloration du texte, en gros). Bon, je ne suis pas un programmeur, même pas amateur. Alors c’est très rudimentaire mais c’est mieux que rien du tout. Avec cette version de scite, on dispose de 5 niveaux de titre. Chaque niveau est défini par 2 ou plus « = » :

== Titre 1

=== Titre 2

==== Titre 3

Etc. Chaque bloc se termine là où commence un autre. il n’y a donc pas de balise de fermeture.

Il y a aussi un mode commentaire, pour pouvoir prendre des notes sans trop interférer avec le corps du texte. Placez le commentaire entre /* et */, simplement. Par défaut, si vous ne modifiez pas les réglages de mon user.properties (voyez plus bas), ils seront affichés dans la police Comic Sans, en jaune pâle.

Voici un exemple :

Aperçu avec blocs repliés + 1 commentaire

Un commentaire suivi de plusieurs titres de niveau 2 repliés

Aperçu avec blocs dépliés + 1 commentaire

Le premier titre de niveau 2 déplié, le texte apparaît.

Comme je vous disais, je ne suis pas un programmeur : je n’ai pas réussi à faire fonctionner les menus de folding automatique intégrés à SciTE. Désolé. Vous devrez donc plier et déplier manuellement chaque titre

* * *

Je ne sais pas si cette version de SciTE pourra intéresser quelqu’un d’autre. Au cas où, elle est téléchargeable ici :

  • Scite « pour auteurs ». Il suffit de décompresser l’archive et de la copier quelque part.
  • Pour utiliser les mêmes réglages que moi ou au moins pour vous faire une idée rapide de la façon de les personnaliser je vous conseille de télécharger aussi mon user.properties. Ouvrez-le, copiez son contenu, ensuite allez dans le menu Options -> Open User Option File de SciTE et collez-y son contenu à la suite de ce qui serait éventuellement déjà présent.

Attention : mes réglages (taille des polices, marges) sont optimisés pour un affichage en mode plein écran (appuyez sur F11 depuis SciTE). Je n’utilise Scite que dans ce mode, ou presque. Pour l’affichage du texte, j’utilise deux polices de caractères : Verdana pour les titres et la très belle « Thyssen » pour le corps du texte. Thyssen est téléchargeable gratuitement sur dafont.

Ces réglages sont ceux qui me conviennent, ils n’ont aucune autre prétention que de me plaire. Ils ne sont pas adaptés à l’écriture de code informatique. Vous pouvez facilement les modifier dans votre user.properties, en vous basant sur les commentaires inclus dans le mien.

Si vous voulez améliorer ma modeste tentative de folding ou autre chose, voici le code du principal fichier que jai modifié : LexOthers.cxx. Remplacez simplement celui qui existe dans le source de Scintilla (dans le dossier Scintilla/src), mes fonctions comportent l’expression « nvl ». Et voici le code source complet de Scintilla, avec toutes les petites modifs nécessaires pour compiler scintilla avec ma fonction NVL.

Un énorme merci à Sandra, ma compagne et accessoirement informaticienne, sans qui je n’aurai jamais réussi 🙂

EDIT : une demi tonne de coquilles et autres fautes… J’suis fatigué 😉

Comments are closed.