KeiruaProd

I help my clients acquire new users and make more money with their web businesses. I have ten years of experience with the technical aspects of growing SaaS projects using data science for decision-making. If that’s something you need help with, we should get in touch!

Ressources pour écrire un plugin Sublime Text 3

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.

<br /> import sublime, sublime_plugin</p> <p>class ExampleCommand(sublime_plugin.TextCommand):<br /> def run(self, edit):<br /> self.view.insert(edit, 0, "Hello, World!")<br />

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 :
<br /> { "keys": ["ctrl+alt+f"], "command": "example" }<br />
Maintenant, à chaque fois que l’on appuiera sur ctrl+alt+f, notre plugin s’executera.

Et maintenant, à vous de jouer !

Bon courage !

See a typo ? You can suggest a modification on Github.