LaunchBar 6-Aktionen erstellen

Startleiste 6 ist ein Application Launcher, der mit Aktionen erweitert werden kann. In früheren Versionen von Startleiste, Aktionen wurden geschrieben AppleScript. Mit Startleiste 6, Jede Skriptsprache kann verwendet werden, die bevorzugte Sprache ist jedoch JavaScript.

In diesem Tutorial zeige ich Ihnen, wie Sie Ihre eigenen Aktionen erstellen können JavaScript die Funktionalität von erweitern Startleiste. Daher ein funktionierendes Wissen von JavaScript Es wird erwartet. Der Artikel Werden Sie mit Tuts + Courses zu einem professionellen JavaScript-Entwickler kann Ihnen beim Einstieg helfen JavaScript.

Wenn Sie etwas über die Schnittstelle mit erfahren möchten Startleiste 6, Sie können das lesen LaunchBar 6-Aktionsdokumentation.

Die Anwendung, mit der diese Aktion interagieren wird, ist Falttext. Falttext ist ein großartiger Markdown-Editor mit viel Erweiterbarkeit. Sie sollten sich das Tutorial ansehen, Anpassen von FoldingText, um zu sehen, wie man anpassen kann Falttext Ihren Bedürfnissen anpassen.

Um mit zu kommunizieren Falttext, Ich zeige Ihnen, wie Sie das Neue von Apple nutzen können JavaScript für die Automatisierung anstatt AppleScript. Du kannst lesen JavaScript für die Automatisierungsdokumentation um Ihnen beim Einstieg in die Sprache zu helfen.

Aktion durchführen

Um eine Aktion zu starten, müssen Sie ein Verzeichnis mit dem erstellen .lbaction Erweiterung.

Das Verzeichnis der Aktion erstellen

Im Finder, Klicken Sie mit der rechten Maustaste in ein Verzeichnis und wählen Sie Neuer Ordner benennen Sie das neue Verzeichnis FoldingTextAddToTag.lbaction. Es wird nicht mehr wie ein Verzeichnis in aussehen Finder. Startleiste registriert diese Erweiterung bei OS X um es als einen speziellen Dateityp zu behandeln. Es ist immer noch ein Verzeichnis, aber Sie verschieben es wie eine Datei.

Anzeigen des Verzeichnisinhalts

Um den Inhalt erneut anzuzeigen, Rechtsklick im Verzeichnis und wählen Sie Paketinhalt anzeigen.

Inhalt der Aktion

Sobald sie sich im Aktionspaket befinden, können alle Dateien und Verzeichnisse, aus denen sich eine Aktion zusammensetzt, angezeigt werden.

Baumansicht einer Aktion

Die grundsätzliche Struktur einer Aktion kann man mit dem sehen Baum Befehl. Das Baum Befehl ist ein Standard Unix Befehl zum grafischen Anzeigen einer Verzeichnisstruktur. Sie können es mit installieren HomeBrew mit dem Befehl:

brauen Sie installieren Baum

Sie sehen dann ein Verzeichnis mit Baum .

Um die Struktur für eine neue Aktion anzulegen, erstellen Sie eine Inhalt Verzeichnis mit Unterverzeichnissen von Ressourcen und Skripte. Im obersten Verzeichnis a Readme.md Datei muss mit einer Beschreibung der Aktion in erstellt werden Markdown Format.

Als Nächstes wird ein Symbol für die Aktion in der angezeigt Ressourcen Verzeichnis. Verwenden Sie einfach die im Download und platzieren Sie sie dort.

In dem Inhalt Verzeichnis, das Info.plist Datei muss erstellt werden. Diese Datei erzählt Startleiste wie man die Aktion benutzt Fügen Sie in dieser Datei Folgendes ein:

    CFBundleIdentifier com.customct.launchbar.FoldingTextAddToTag CFBundleName FT-AddToTag CFBundleVersion 1,0 CFBundleIconFile Symbol LBDebugLogEnabled   LBTextInputTitle ft: addtag LBScripts  LBDefaultScript  LBLiveFeedbackEnabled  LBRequiresArgument  LBReturnsResult  LBRunInBackground  LBScriptName default.js   LBDescription  LBAuthor Richard Guay LBWebsite http://customct.com LBEmail [email protected] LBTwitter @CustomComputerT  LBSummary Dies ermöglicht das Hinzufügen einer Nachricht zu einem beliebigen Tag im obersten Dokument.  LBArgument Sie müssen einen Tag-Namen und eine Notiz an das Tag anhängen.  LBResult Fügt einem Tag in FoldingText eine Nachricht hinzu.  LBReanforderungen Keiner   

Dies ist ein Text plist das kann mit jedem Texteditor bearbeitet werden. Die verschiedenen Tasten zeigen an Startleiste Was ist mit der Aktion zu tun? Die Mindestschlüssel sind:

CFBundleIdentifier

Dieser Schlüssel gibt eine eindeutige Kennung für die Aktion an. Um die Eindeutigkeit zu gewährleisten, verwende ich ein Reverse-DNS meiner Website mit dem Programmnamen und dem Aktionsnamen.

CFBundleName

Dieser Schlüssel gibt der Aktion einen Namen. Dies wird im Aktionslisten-Dialog zum Aktivieren / Deaktivieren angezeigt.

CFBundleVersion

Dieser Schlüssel gibt die Versionsnummer für die Aktion an. Für diese Aktion wird es sein 1,0.

CFBundleIconFile

Dieser Schlüssel gibt den Namen der Symboldatei in der an Ressourcen Verzeichnis der Aktion. Der Dateityp wird nicht angegeben.

LBDebugLogEnabled

Dieser Schlüssel ist ein boolescher Wert, der den Protokollierungsstatus bestimmt. Dies sollte mit einem falschen Wert deaktiviert werden.

LBTextInputTitle

Dieser Schlüssel ist der Name, unter dem der Benutzer die Aktion aufrufen soll Startleiste. Es ist ft: addtotag. Da beginnt der Benutzer zu tippen, Startleiste listet alle Aktionen und Dateien auf, die damit übereinstimmen. Meistens müssen Sie nur tippen ft: a oder hinzufügen um zu dieser Aktion zu gelangen.

LBScripts

Dieser Schlüssel startet ein weiteres Wörterbuch mit Begriffen für das vorherige LBTextInputTitle Schlüssel. Die nächsten sechs Tasten in diesem Wörterbuch beschreiben, wie die Aktion funktioniert.

LBDefaultScript

Dadurch wird das Aktionsskriptdefinitionswörterbuch gestartet. Die nächsten fünf Schlüssel sind in diesem Wörterbuch.

LBLiveFeedbackEnabled

Dieser boolesche Schlüssel sagt aus Startleiste ob das Skript ein Live-Feedback geben wird oder nicht. Live-Feedback ist eine Liste von Optionen zur Auswahl in Startleiste. Diese Aktion stellt eine Liste mit Markennamen zur Auswahl bereit. Deshalb sollte dies wahr sein.

LBRequiresArgument

Dieser boolesche Schlüssel sagt aus Startleiste wenn diese Aktion ein Argument erfordert. Für diese Aktion muss die Nachricht erneut zum Tag hinzugefügt werden. Deshalb wird es wahr sein.

LBReturnsResult

Dieser boolesche Schlüssel teilt der LaunchBar mit, ob diese Aktion Ergebnisse liefert. Da diese Aktion Live-Feedback hat, muss dies auch wahr sein.

LBRunInBackground

Einige Aktionen starten einfach etwas und können so im Hintergrund ausgeführt werden Startleiste muss nicht darauf warten oder die Ausgabe aufzeichnen. Für diese Aktion ist dieser Schlüssel falsch.

LBScriptName

Dieser Schlüssel sagt aus Startleiste Der Name des auszuführenden Skripts. Das Skript muss im Skripte Unterverzeichnis.

LBDescription

Mit dieser Taste wird das letzte Wörterbuch gestartet, das den Autor der Aktion und verschiedene Informationen zur Aktion beschreibt. Einige davon werden dem Benutzer angezeigt, wenn die Aktion installiert ist. Diese Tasten sind sehr selbsterklärend.

Mit dieser Plist-Datei und dem Symbol in der Ressourcen Verzeichnis kann der Hauptteil der Aktion erstellt werden. Öffne das Skripte Unterverzeichnis und erstellen Sie eine Datei mit dem Namen default.js. Fügen Sie folgendes ein:

// // Funktion: run // // Beschreibung: Diese Funktion wird von LaunchBar aufgerufen, wenn die Aktion ohne Zeichenfolge aufgerufen wird. // Es erstellt ein Menü, das LaunchBar dem Benutzer anzeigt. Die Menüelementliste // tatsächliche Funktionen, die aufgerufen werden sollen, um eine Aktion in FoldingText auszuführen. Rufen Sie einfach // das runWithString ist eine leere Zeichenfolge auf. // Funktion run () runWithString ("");  // // Funktion: runWithString // // Beschreibung: Diese Funktion wird von LaunchBar aufgerufen, wenn die Aktion mit einem String aufgerufen wird. // Es erstellt ein Menü, das LaunchBar dem Benutzer anzeigt. Die Menüelementliste // tatsächliche Funktionen, die aufgerufen werden sollen, um eine Aktion in FoldingText auszuführen. // // Eingaben: // Zeichenfolge Eine vom Benutzer angegebene Zeichenfolge. // function runWithString (string) // // Erzeuge Variablen, die verwendet werden sollen. // var result = []; string = string.trim (); // // Erhalte eine Liste von Tags aus dem aktuellen Dokument. // var tags = getTagsFromDocument (). split (","); // // Diese Funktion sollte aufgerufen werden, um eine neue Liste zu erstellen. Erstelle es. // // // Foreach-Tag, fügen Sie einen Menüeintrag als untergeordnetes Element hinzu. // tags.forEach (function (item) // // Dies fügt den Befehl AddToTag hinzu. // result.push (title: item, Untertitel: "FoldingText: Zu Tag hinzufügen", Symbol: "Icon", Aktion : 'addToTag', actionArgument: item.trim () + "|" + Zeichenfolge, actionRunsInBackground: true, actionReturnsItems: false);); // // Gibt die resultierende Menüliste zurück. // return (Ergebnis);  // // function: getTagsFromDocument // // Beschreibung: Diese Funktion verwendet ein Javascript, um das oberste FoldingText-Dokument // nach einer Liste von Tags abzufragen. Diese Liste wird an die aufrufende Routine zurückgegeben. // function getTagsFromDocument () var result = LaunchBar.execute ("/ usr / bin / osascript", "getListOfTags.scpt"); Rückkehr (Ergebnis);  // // function: addToTag // // Beschreibung: Diese Funktion verwendet ein Javascript, um eine vom Benutzer angegebene Zeichenfolge // zum ersten Tag des Typs hinzuzufügen, der dem Skript übergeben wurde. Die // Informationen, die das Skript erhält, sind "Tag | Text", wobei Tag ein Tag ist und Text der // hinzuzufügende Text ist. // function addToTag (obj) LaunchBar.execute ("/ usr / bin / osascript", "notetag.scpt", obj.toString ());  

Dieses Skript hat vier Funktionen, von denen zwei benötigt werden Startleiste und zwei Hilfsfunktionen. Startleiste erfordert alle Aktionen zur Definition von a Lauf() Funktion, die aufgerufen wird, wenn keine Eingabe vom Benutzer erfolgt, und runWithString () Funktion, die ein Zeichenfolgeargument der vom Benutzer eingegebenen Zeichen übernimmt Das Lauf() Funktion ruft einfach die runWithString () Funktion mit einer leeren Zeichenfolge.

Das runWithString () Funktion holt eine Liste der Tags von den meisten Falttext Dokument mit Hilfe der Hilfsfunktion getTagsFromDocument (). Für jedes Tag wird eine Informationsstruktur erstellt, die die Informationen enthält Startleiste muss die Ergebnisse anzeigen. Die Strukturelemente sind:

Titel

Dies gibt jeder Unteraktion einen eindeutigen Titel. Es ist der Name des Tags, an das die Nachricht angehängt wird.

Untertitel

Dies ist der Untertitel für die Unteraktion. Ich habe es auf den Namen der Aktion festgelegt, die diese Unteraktion erstellt hat.

Symbol

Jede Unteraktion kann ein anderes Symbol haben, aber diese Aktion benötigt es nicht.

Aktion

Das sagt Startleiste Der Name der Funktion, die aufgerufen werden soll, wenn diese Unteraktion ausgewählt ist. Für diese Aktion gehen alle Anrufe an die addToTag () Funktion.

actionArgument

Dies definiert das Argument, das an die Funktion gesendet wird, die in definiert ist Aktion. Der Tag-Name wird mit der Eingabe des Benutzers verkettet. Das addToTag () Die Funktion analysiert diese Zeichenfolge, um den Tag-Namen und die Nachricht zu erhalten, die dem Tag hinzugefügt werden sollen.

actionRunsInBackground

Dieses boolesche Feld stimmt damit Startleiste wartet nicht auf die Rückkehr der Funktion. Dadurch kann der Benutzer schnell zu einer anderen Aufgabe wechseln.

actionReturnsItems

Das ist falsch so Startleiste sammelt die Ausgabe nicht vom Funktionsaufruf.

Die letzten beiden Funktionen aufrufen JavaScript für die Automatisierung Skripte, die im gespeichert sind Skripte Verzeichnis. Diese Funktionen rufen ein Befehlszeilenprogramm mit auf StartleisteSonderbefehl LaunchBar.execute ().

Erstellen Sie eine Datei mit dem Namen getListOfTags.scpt und öffne es in Script Editor. Fügen Sie in dieser Datei den folgenden Code ein:

Funktion run (arg) app = Anwendung ("FoldingText"); doc = Anwendungsdokumente [0]; if (doc! = null) return doc.evaluate (script: "Funktion (Editor) return editor.tree (). tags (true) .sort ();"); 

Wenn ein JavaScript für die Automatisierung Datei wird mit ausgeführt osascript Dolmetscher wird es anrufen Lauf() Funktion mit allem, was der Befehlszeile hinzugefügt wird, die als String übergeben wird.

Dieser Code wird eine Anwendung Objekt für Falttext Programm. Das ist das Gleiche wie Anwendung mitteilen… im AppleScript. Dieses Anwendungsobjekt wird dann zur Abfrage des obersten Dokuments verwendet. Wenn es ein oberstes Dokument gibt, gibt es die Funktion a JavaScript Programm zu bewerten Dadurch werden alle Tags in diesem Dokument zurückgegeben. Diese Tags werden dann an die Befehlszeile zurückgegeben.

Das zweite Skript wird aufgerufen notetag.scpt mit diesem Code:

Funktion run (arg) app = Anwendung ("FoldingText"); doc = Anwendungsdokumente [0]; if (doc! = null) return doc.evaluate (script: "Funktion (Editor, Optionen) var tree = editor.tree (), q = options.toString (). trim (). split ('|') ), result = "; var tag = q [0], q = q [1]; var tnode = editor.tree (). compareNodePath ('// @' + tag) [0]; if (tnode) var message = tree.createNode (q); tnode.appendChild (message); else result = 'No' + tag + 'Found.'; return (result); ", withOptions: arg);

Dies ist das gleiche wie das vorherige Skript, außer für das JavaScript übergeben an bewerten Befehl. Diese JavaScript parst das Eingabeargument zu einem Tag und einer Nachricht. Dann erzählt es Falttext um die Nachricht zu diesem Tag im Dokument hinzuzufügen.

Laden und Ausführen der Aktion

Sobald alle diese Teile installiert sind, doppelklicken Sie einfach auf das Symbol FoldingTextAddToTag.lbaction Datei. OS X lädt es automatisch in Startleiste.

Laden der Aktion

Wenn Sie auswählen Installieren, Die Aktion wird zu den Aktionen hinzugefügt, die von verwendet werden Startleiste.

Ausführen der Aktion

Aktivieren Sie, um die Aktion auszuführen Startleiste und Typ addtotag und die Aktion wird sich zeigen. Wenn Sie es auswählen, wird eine Liste mit Tags ganz oben angezeigt Falttext Dokument und ein Textfeld. Geben Sie eine Nachricht in das Textfeld ein und wählen Sie ein Tag aus. Die angegebene Nachricht wird dem Tag hinzugefügt.

Fazit

Dieses Tutorial zeigt, wie man schreibt Startleiste Aktionen mit JavaScript und JavaScript für die Automatisierung. Nun, da Sie wissen, wie es geht, beginnen Sie mit dem Üben, indem Sie weitere Aktionen ausführen.