QScintilla est un portage de la librairie Scintilla vers le framework Qt permettant l’édition de texte, la coloration syntaxique, repliage du code etc…
Pour l’utiliser il vous faudra installer, si ce n’est déjà fait, le framework Qt : ici.
Puis une fois Qt installé, il faudra télécharger Qscintilla : ici.
Pour l’installer, ouvrez l’invité de commande de Qt (Qt Command Prompt), placez-vous dans le répertoire extrait et allez ensuite dans le répertoire Qt4 :
cd Qt4
qmake
make
make install
Ou sous Windows : qmake & make & make install puis
copy %QTDIR%\lib\qscintilla2.dll %QTDIR%\bin
Ceci fait, vous pouvez commencer à créer votre première application. Voici un exemple créant simplement une fenêtre avec un éditeur :
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QsciScintilla *scintilla = new QsciScintilla;
QsciLexerHTML *lexer = new QsciLexerHTML;
scintilla->setLexer(lexer);
scintilla->show();
return app.exec();
}
Compilez ce bout de code (n’oubliez pas de rajouter LIBS += -lqscintilla2 à votre .pro) et admirez le résutat^^
Pour colorier le texte QScintilla utilise des lexers, ici nous avons utilisé un QsciLexerHTML qui colore le Cobol HTML et avec le PHP, XML, ASP, Python, VBScript, Javascript et SGML.
QScintilla rassemble ainsi 29 QsciLexer pout tous les langages courants : C++, Java, C#, Perl, SQL, Fortran, D etc…
Mais le fait de seulement colorier du code n’est pas intéressant ni vraiment utile.
Heureusement pour nous QScintilla possède tout un tas de propriétés et de fonctions qui vont nous aider à mettre un place un éditeur de texte complet :
// Définit une couleur spécifique pour un élément :
// ici red pour les tags PHPStart ('; ?>)
lexer->setColor(Qt::red, QsciLexerHTML::PHPStart);
// Active la marge à gauche pour la numérotation des lignes
// et lui assigne une largeur de 4
scintilla->setMarginLineNumbers (1, true);
scintilla->setMarginWidth(1, "----");
// ‘Repliage’ du code (parentheses, crochets,
, etc…)
scintilla ->setFolding(QsciScintilla::BoxedFoldStyle);
// Mise en surbrillance des parenthèses, crochets correspondants
scintilla->setBraceMatching(QsciScintilla::SloppyBraceMatch);
// Active l'auto-indentation
scintilla->setAutoIndent(true);
// Charge le contenu du fichier (ligne par ligne) comme source d'auto-complétion
// Et assigne cette source à l'éditeur qui déclenchera l'auto-complétion dès que 3 caractères seront tapés
QsciAPIs *api = new QSciAPIs(lexer);
api->load("fichier.txt");
scintilla->setAutoCompletionSource(QsciScintilla::AcsAPIs);
scintilla->setAutoCompletionThreshold(3);
Etc... etc...
Pour la liste complète des méthodes et des classes de QScintilla direction la Doc.
Sachez également qu’une liste de fonctions propres aux éditeurs de texte existe. Vous pouvez donc aussi bien utiliser undo() / redo(), que indent()/ unindent(), cut() / copy() / paste(), insert() / insertAt() etc…
Bon codage !
Posté par

seiyar81 le 17 novembre 2009 |
Laisser un commentaire (0)
Avant-dernière partie du tutoriel consacré à l’éditeur Vim. Aujourd’hui c’est à l’encodage que nous nous intéresserons. Source de bien des soucis, lequel choisir, et comment, entre l’UTF-8 et les différentes normes ISO ?
Tout d’abord il faut régler 2 paramètres impotants :
- fileencoding : encodage des caractères à l’enregistrement du fichier
- fileencodings : liste des encodages à tester pour initialiser fileencoding
L’idéal est de fixer le second paramètre dans votre fichier de configuration (‘/etc/vim/vimrc’ ou bien ‘/home/username/.vimrc’ comme vu dans la seconde partie) :
set fileencodings=ucs-bom,utf-8,latin1
Ainsi le fichier commence par une marque d’encodage BOM, ensuite si un caractère non valide UTF-8 est trouvé dans le document, Vim passe alors en latin1 (ISO8859-1).
Un petit exemple de configuration pour l’encodage :
if has("multi_byte")
set encoding=utf-8
setglobal fileencoding=utf-8
set bomb
set termencoding=iso-8859-15
set fileencodings=utf-8,ucs-bom,iso-8859-15,iso-8859-3
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
Notez que set bomb force le BOM (nobomb pour l’enlever).
Ainsi à moins qu’un caractère défectueux ne soit trouvé, l’encodage est fixé en UTF-8.
Il est également possible de forcer l’encodage à l’ouverture du fichier :
:e ++enc=utf-8 file // Force l'encodage en UTF-8 même en cas de mauvais caractère
vim -c ':e ++enc=utf-8 file' // Pareil mais de la ligne de commande
Libre à vous ensuite de régler vos paramètres à l’encodage qui vous convient le mieux !
Prochain et dernier chapitre : l’utilisation de Vim pour développer. Auto-complétion, coloration du code et différents réglages.
Posté par

seiyar81 le 15 novembre 2009 |
Laisser un commentaire (0)
Aujourd’hui nous nous attaquons à la partie sur la recherche avec Vim. Il est en effet possible d’effectuer une recherche dans le document en cours d’édition vers le bas du document, vers le haut, de remplacer du texte sur une ou plusieurs lignes etc…
Tout d’abord comment effectuer une recherche de texte :
/yriase // Recherche toutes les occurrences d'yriase dans le document vers le bas
?yriase // Pareil mais vers le haut du document
// Appuyez ensuite sur la touche n pour aller d'une occurrence à l'autre.
% // Vous permet de trouver les correspondances des caractères suivants : ), ] ou }
// Très utile quand on programme
Il est également possible d’effectuer un « rechercher/remplacer » :
:s/ancien/nouveau // Remplace la première occurrence d'ancien par nouveau dans la ligne
:s/ancien/nouveau/g // Pareil mais sur toute la ligne
:%s/ancien/nouveau/g // Pareil mais dans tout le fichier
:10,15s/ancien/nouveau/g // Pareil mais entre les lignes 10 et 15
:%s/ancien/nouveau/gc // Demande confirmation pour le remplacement
Enfin quelques petits réglages pour la casse :
:set hl // Active la mise en surbrillance des résultats
:set ic // Active la recherche incrémentielle
:set ic // Ignore la casse
:set noic // N'ignore pas la casse
Voilà la prochaine fois ce sera la partie sur l’encodage !
Posté par

seiyar81 le 27 octobre 2009 |
Laisser un commentaire (0)
Qt est un framework multi-plateforme (Windows, Linux, Mac OS) composés de plusieurs bibliothèques (ou modules) qui permettent aussi bien la programmation de GUI que la programmation réseau, l’accès aux bases de données, la manipulation de XML, la 3D avec OpenGL etc… tout cela en C++.
Ses capacités sont énormes, c’est simple : on peut tout faitre avec Qt !
Crée par la société Trolltech, rachetée récemment par Nokia, Qt est disponible sous licence LPGL, ce qui permet la création d’application propriétaires, et également sous une licence commerciale.
Utilisé par de milliers de développeurs dans le monde, de nombreux logiciels plus ou moins ‘connus’ ont été crées avec : Google Earth, KDE, Opera, Skype etc…
Développer avec Qt requiert une bonne connaissance des modules de base du framework, de son architecture, des différentes classes (histoire de ne pas être dans la doc, très bien pensée soit dit en passant, toutes les 5min).
Nokia a pensé aux développeurs avides de certifications puisqu’est disponible depuis le 1er Octobre, une certification Qt !
Comme beaucoup de certifications, on peut la passer dans les centres Person Vue, ceci pour une somme de 149€ (75€ si vous la repassez après l’avoir ratée).
Pour l’instant seule la certification Qt Essentials est disponible. Elle porte principalement sur la connaissance des modules QtCore et QtGui, consiste en un QCM de 50 questions, et est réalisable en 1h.
D’autres certifications viendront et porteront sur les autre modules de Qt.
Pour plus d’informations :
http://qt.nokia.com/developer/learning/certification
http://qt.nokia.com/developer/learning/qt-essentials-curriculum-block
http://qt.developpez.com/certification/presentation
Plus de détails quand je l’aurais passée :p