L'écriture d'un plugin simple pour Sublime Text 2

Par thème:


Sublime Text 2 FAQSublime Text 2 FAQ

Un exemple du réel, de la pratique de l'ingénierie. Traduire le texte sélectionné dans un certain nombre de décimales à la notation hexadécimale. La fonction devrait être disponible à partir du menu principal et le contexte, ainsi que par une combinaison de touches Ctrl + Maj + H. Résultat d'exécution: le nombre enregistré à Hexham en utilisant des nombres et des lettres majuscules sans caractères principaux comme «0x». Si le texte sélectionné est pas un numéro - jure avec une barre d'état. J'attire votre attention que l'exemple a l'intention est simplifiée au maximum, donc pour plus de détails pas perdu l'essence de la simplicité créer des plug-ins pour Sublime.

Rédaction d'un plug-in

Nous pressons Outils -> Nouveau Plugin ... et de voir un blanc. Changer le nom de la classe et écrire fonctionnalité dans la méthode run. Je suis ce qui suit:

 importer sublime, sublime_plugin

 classe DecToHexCommand (sublime_plugin.TextCommand):
  MAX_STR_LEN = 10
  def run (self, edit):
  v = self.view

  # Obtenir la valeur du premier bloc sélectionné
  dec = v.substr (V.SEL () [0])

  # Remplacer la virgule ou un message d'erreur hexadécimal est affiché		
  si dec.isdigit ():
  v.replace (edit, V.SEL () [0], hex (int (dec)) [2:]. supérieur ())
  d'autre:
  # Lignes longues rognées qui ne rentrent pas dans la barre d'état 
  si len (déc)> self.MAX_STR_LEN:
  logmsg = décembre [0: self.MAX_STR_LEN] + "..."
  d'autre:
  logmsg = décembre
  sublime.status_message ( "\" "+ logmsg +" \ "est pas un nombre décimal!")	

Envoyer à offrir où l' éditeur nommé dec_to_hex.py

Ajout d'éléments de menu. Prescrit le raccourci clavier.

Commençons par "touches".

Hit le menu Préférences -> Key Bindings-utilisateur. Ouvre le fichier de configuration au format JSON. Les chances sont vides. Ajoutant à sa ligne.

  { "Keys": [ "Ctrl + Maj + h"], "commande": "dec_to_hex"}

Enregistrer. Tout. Le principe est déjà possible d'utiliser. Si vous ne travaillez pas la peine de voir qu'à cette occasion, il est écrit dans konsolki (Ctrl + `).

Pour ajouter un élément dans le menu contextuel créer le fichier Context.sublime-menu comme suit:

 [ 
  { 
  "Command": "dec_to_hex"
  } 
 ] 

Je pense que, comme dans le cas précédent, tout est clair, sans commentaire.

Garder dans le même répertoire où vous avez enregistré le bouchon.

Ie % USERPROFILE% \ AppData \ Roaming \ Sublime Text 2 \ Packages \ utilisateur, pour les utilisateurs Windows. Il crée Main.sublime-men fichier u. Je sentais que ce point sera approprié à tous dans le menu Edition, donc le fichier Main.sublime-menu, écrit ce qui suit:

 [ 
  { 
  "Id": "modifier", 
  "Enfants": 
  [ 
  { "Command": "dec_to_hex"} 
  ] 
  } 
 ]

Vérifiez. Dans les éléments du menu principal et le contexte à apparaître avec le nom de décembre Pour Hex

références:

www.sublimetext.com/docs/api-reference - Plugin API Reference

www.sublimetext.com/download - Télécharger

www.sublimetext.com/dev - la Builds Dev. J'utilise la version de dev, les bugs ne sont pas encore pris.

net.tutsplus.com/tutorials/python-tutorials/how-to-create-a-sublime-text-2-plugin/ - Un article sur le même sujet en anglais