This page has been robot translated, sorry for typos if any. Original content here.

Schreiben eines einfachen Sublime Text 2 Plugins

Zum Thema:


Sublime Text 2 FAQSublime Text 2 FAQ

Ein echtes Beispiel aus der Ingenieurpraxis. Übersetzung der ausgewählten Zahl im Text vom Dezimal- zum Hexadezimalzahlensystem. Die Funktion sollte über die Haupt- und Kontextmenüs sowie über die Tastenkombination Strg + Umschalt + H zugänglich sein. Ausführungsergebnis: Die Zahl im Hex, die mit Zahlen und Großbuchstaben ohne führende Zeichen wie „0x“ geschrieben wurde. Wenn der ausgewählte Text keine Zahl ist, schwören wir dies mit der Statusleiste. Ich mache Sie darauf aufmerksam, dass das Beispiel absichtlich maximal vereinfacht wird, damit die Details nicht verloren gehen: die Einfachheit, Plugins für Sublime zu erstellen.

Ein Plugin schreiben

Klicken Sie auf Extras -> Neues Plugin ... und sehen Sie sich das Werkstück an. Ändern Sie den Namen der Klasse und schreiben Sie die Funktion in die Ausführungsmethode. Ich habe folgendes bekommen:

 sublime, sublime_plugin importieren

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

  # Ermittelt den Wert des ersten ausgewählten Blocks
  dec = vstr (vsel () [0])

  # Ersetzen Sie die Dezimalstelle durch eine Hexadezimalzahl oder zeigen Sie eine Fehlermeldung an		
  if dec.isdigit ():
  v.replace (edit, v.sel () [0], hex (int (dec)) [2:]. Upper ())
  sonst:
  # Schneiden Sie zu lange Linien, die nicht in die Statusleiste passen 
  if len (dec)> self.MAX_STR_LEN:
  logMsg = dec [0: self.MAX_STR_LEN] + "..."
  sonst:
  logMsg = dec
  sublime.status_message ("" + logMsg + "" ist keine Dezimalzahl! ")	

Wir speichern dort, wo der Editor mit dem Namen dec_to_hex.py vorschlägt

Menüelemente hinzufügen. Verschreiben Sie eine Tastenkombination.

Beginnen wir mit den Tastenkombinationen.

Klicken Sie im Menü auf Einstellungen -> Tastenkombinationen-Benutzer . Eine Datei mit Einstellungen im JSON-Format wird geöffnet. Höchstwahrscheinlich leer. Fügen Sie eine Zeile hinzu.

  {"Tasten": ["Strg + Umschalt + h"], "Befehl": "dec_to_hex"}

Speichern. Das ist alles. Grundsätzlich können Sie es bereits verwenden. Wenn es nicht funktioniert, sollten Sie sich ansehen, was zu diesem Thema in der Konsole geschrieben steht (Strg + `).

Um dem Kontextmenü ein Element hinzuzufügen, erstellen Sie eine Context.sublime-Menüdatei mit den folgenden Inhalten:

 [ 
  { 
  "Befehl": "dec_to_hex"
  }} 
 ]] 

Ich denke, dass wie im vorherigen Fall alles kommentarlos klar ist.

Wir speichern in demselben Verzeichnis, in dem das Plug-In gespeichert wurde.

Das heißt, % USERPROFILE% \ AppData \ Roaming \ Sublime Text 2 \ Packages \ User für Windows-Benutzer. An derselben Stelle erstellen wir die Datei Main.sublime-men u. Ich dachte, dass dieses Element im Menü Bearbeiten am besten geeignet ist, also schrieb ich Folgendes in die Datei Main.sublime-menu:

 [ 
  { 
  "id": "edit", 
  "Kinder": 
  [ 
  {"Befehl": "dec_to_hex"} 
  ]] 
  }} 
 ]]

Wir prüfen. Im Haupt- und Kontextmenü sollten Elemente mit der Bezeichnung Dec To Hex angezeigt werden

Referenzen:

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

www.sublimetext.com/download - Herunterladen

www.sublimetext.com/dev - Dev Builds. Ich benutze die Dev-Version, ich habe noch keine Bugs entdeckt.

net.tutsplus.com/tutorials/python-tutorials/how-to-create-a-sublime-text-2-plugin/ - Artikel zum gleichen Thema in englischer Sprache