Je suis développeur web freelance et propose des formations à Symfony2 ! Contactez-moi pour en discuter.

La semaine dernière, j’ai réécrit pour Sublime Text 3 l’extension FormatSQL, qui me servait régulièrement dans la version 2, mais qui n’est plus compatible. L’objectif : prendre une chaine SQL mal formatée, et la formater de manière lisible. Le code final de mon petit plugin est sur Github.

J’ai eu étonnamment beaucoup de mal à comprendre comment démarrer. La plupart des bouts de code que j’ai trouvé sur les net, y compris sur le site officiel, ne fonctionnent que sous Sublime Text 2, et n’étaient pas compatibles.

Démarrer

Pour démarrer, c’est en fait très simple, encore faut-il le savoir : en cliquant sur Tools -> new Plugin, on obtient le code minimal d’un plugin, point de départ que je ne trouvais pas.

1
2
3
4
5
import sublime, sublime_plugin

class ExampleCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.insert(edit, 0, "Hello, World!")

C’est du python, ST3 embarque la version 3.3, d’où l’origine de conflits pour de nombreux packages, qui utilisent des librairies qui ne fonctionnent plus en python 3.3.

Exécuter le plugin

Quand on enregistre ce fichier, on est déjà positionné dans le bon répertoire (chez moi : ~/.config/sublime-text-3/Packages/User). On sauvegarde example.py, et sans redémarrer, on peut utiliser le nouveau plugin, de 2 manières :

Depuis la console :
on l’ouvre avec ctrl+`, et on tape view.run_command(‘example’). Le plugin s’exécute !
Depuis un nouveau binding :
On crée un nouveau raccourci, en allant dans Preferences -> Key bindings – User, où l’on ajoute :

1
{ "keys": ["ctrl+alt+f"], "command": "example" }

Maintenant, à chaque fois que l’on appuiera sur ctrl+alt+f, notre plugin s’executera.

Et maintenant, à vous de jouer !

Bon courage !

Répondre

Unable to load the Are You a Human PlayThru™. Please contact the site owner to report the problem.