Crearea acțiunilor LaunchBar 6

LaunchBar 6 este un lansator de aplicații care poate fi extins cu acțiuni. În versiunile anterioare de Launchbar, au fost scrise acțiunile AppleScript. Cu LaunchBar 6, orice limbaj de scripting poate fi folosit, dar limba preferată este JavaScript.

În acest tutorial, vă voi arăta cum să vă creați propriile acțiuni JavaScript pentru a extinde funcționalitatea Launchbar. Prin urmare, o cunoaștere de lucru JavaScript Este de așteptat. Articolul Deveniți un dezvoltator profesionist de JavaScript cu cursuri Tuts + vă poate ajuta să începeți JavaScript.

Dacă doriți să aflați despre interfața cu LaunchBar 6, puteți citi textul LaunchBar 6 Documentație de acțiune.

Aplicația la care va interacționa această acțiune este FoldingText. FoldingText este un editor grozav cu multă extensibilitate. Ar trebui să verificați tutorialul, Personalizarea textului FoldingText, pentru a vedea cum să personalizați FoldingText pentru a se potrivi nevoilor dvs..

Pentru a comunica cu FoldingText, Vă voi arăta cum să utilizați noul Apple JavaScript pentru automatizare in loc de AppleScript. Poți citi JavaScript pentru documentația de automatizare pentru a vă ajuta să începeți cu limba.

Efectuarea unei acțiuni

Pentru a începe o acțiune, trebuie să creați un director cu .lbaction extensie.

Crearea Directorului de acțiuni

În căutător, faceți clic dreapta într-un director și selectați Dosar nou numele directorului nou FoldingTextAddToTag.lbaction. Nu va mai arăta ca un director în căutător. Launchbar înregistrează extensia cu OS X să o tratezi ca pe un tip de fișier special. Este încă un director, dar îl mutați în jurul unui fișier.

Afișarea conținutului directorului

Pentru a vizualiza conținutul din nou, Click dreapta din director și selectați Afișați conținutul pachetului.

Conținutul acțiunii

Odată ce ați intrat în pachetul de acțiuni, toate fișierele și directoarele care alcătuiesc o acțiune sunt vizibile.

Afișare copac a unei acțiuni

Structura de bază a unei acțiuni poate fi văzută în copac comanda. copac comanda este un standard Unix comandă pentru afișarea grafică a unei structuri de directoare. Aveți posibilitatea să-l instalați cu homebrew cu comanda:

instalați arborele de instalare

Apoi, vizualizați un director cu copac .

Pentru a crea structura pentru o acțiune nouă, creați o Cuprins director cu sub-directoare din Resurse și Scripturi. În directorul superior, a Readme.md fișierul trebuie să fie creat cu o descriere a acțiunii în Markdown format.

Apoi, o pictogramă pentru acțiune este plasată în Resurse director. Folosiți-o pe cea din descărcare și plasați-o acolo.

În Cuprins directorul, Info.plist fișierul trebuie să fie creat. Acest fișier spune Launchbar cum să utilizați acțiunea. În fișierul respectiv, plasați următoarele:

    CFBundleIdentifier com.customct.launchbar.FoldingTextAddToTag CFBundleName FT-AddToTag CFBundleVersion 1.0 CFBundleIconFile icoană 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 Aceasta permite adăugarea unui mesaj la o etichetă arbitrară în documentul de sus.  LBArgument Este nevoie de un nume de etichetă și de o notă care să fie atașată etichetei.  LBResult Adaugă un mesaj la o etichetă în FoldingText.  LBRequirements Nici unul   

Acesta este un text plist care poate fi editabil cu orice editor de text. Diferitele chei spun Launchbar ce să faci cu acțiunea. Cheile minime sunt:

CFBundleIdentifier

Această cheie oferă un identificator unic pentru acțiune. Pentru a asigura unicitatea, folosesc un DNS invers al site-ului meu cu numele programului și numele acțiunii.

CFBundleName

Această cheie oferă un nume pentru acțiune. Acest lucru este afișat în dialogul listei de acțiuni pentru activare / dezactivare.

CFBundleVersion

Această tastă indică numărul versiunii pentru acțiune. Pentru această acțiune va fi 1.0.

CFBundleIconFile

Această cheie dă numele fișierului cu pictograme din Resurse directorul acțiunii. Tipul de fișier nu este dat.

LBDebugLogEnabled

Această cheie este un boolean care determină starea de logare. Aceasta ar trebui oprită cu o valoare falsă.

LBTextInputTitle

Această cheie este numele pe care utilizatorul îl va folosi pentru a apela acțiunea Launchbar. Este ft: addtotag. În timp ce utilizatorul începe să scrie, Launchbar va lista toate acțiunile și fișierele care încep să se potrivească. Cel mai adesea, trebuie doar să tastați ft: un sau adauga la pentru a ajunge la această acțiune.

LBScripts

Această cheie deschide un alt dicționar de termeni pentru cel precedent LBTextInputTitle cheie. Următoarele șase chei sunt în acest dicționar pentru a descrie modul în care acțiunea funcționează.

LBDefaultScript

Aceasta pornește dicționarul de definire a scriptului de acțiune. Următoarele cinci taste sunt în acest dicționar.

LBLiveFeedbackEnabled

Această cheie booleană spune Launchbar dacă scriptul va oferi sau nu feedback live. Feedback live este o listă de opțiuni de selectat din Launchbar. Această acțiune va furniza o listă cu numele tagurilor de selectat. Prin urmare, acest lucru ar trebui să fie adevărat.

LBRequiresArgument

Această cheie booleană spune Launchbar dacă această acțiune necesită un argument. Din nou, această acțiune are nevoie de mesajul de adăugat la etichetă. Prin urmare, va fi adevărat.

LBReturnsResult

Această cheie booleană îi spune lui LaunchBar dacă această acțiune va reveni la rezultate. Deoarece această acțiune are un feedback live, acest lucru trebuie să fie adevărat.

LBRunInBackground

Unele acțiuni vor pur și simplu lansa ceva și se poate face în fundal, astfel încât Launchbar nu trebuie să așteptați sau să înregistrați rezultatele. Pentru această acțiune, această cheie va fi falsă.

LBScriptName

Această cheie spune Launchbar numele scriptului de executat. Scenariul trebuie să fie în Scripturi subdirector.

LBDescription

Această cheie deschide ultimul dicționar care descrie autorul acțiunii și diferitele informații despre acțiune. Unele dintre acestea sunt afișate utilizatorului când acțiunea este instalată. Aceste chei sunt foarte explicite.

Cu acest fișier plist în loc și pictograma în Resurse director, partea principală a acțiunii poate fi creată. Deschide Scripturi sub-director și a crea un fișier numit default.js. Introduceți următoarele în el:

// // Funcție: rulați // // Descriere: Această funcție este apelată de LaunchBar ori de câte ori acțiunea este chemată fără un șir. // Creează un meniu pe care LaunchBar îl va da utilizatorului. Elementele de meniu afișează // funcțiile reale pentru a apela pentru a provoca o acțiune în FoldingText. Pur și simplu apelați // runWithString este un șir gol. // function run () runWithString ("");  // // Funcție: runWithString // // Descriere: Această funcție este apelată de LaunchBar ori de câte ori acțiunea este apelată cu un șir. // Creează un meniu pe care LaunchBar îl va da utilizatorului. Elementele de meniu afișează // funcțiile reale pentru a apela pentru a provoca o acțiune în FoldingText. // // Inputs: // string Un șir dat de utilizator. // function runWithString (șir) // // Crearea variabilelor care vor fi folosite. // var rezultat = []; string = string.trim (); // // Obțineți o listă de etichete din documentul curent. // var tag = getTagsFromDocument () împărțit (","); Această funcție trebuie apelată pentru a produce o nouă listă. Creaza-l. // // // Eticheta Foreach, adăugați o intrare în meniu ca un copil. // tags.forEach (functie (element) // // Aceasta adauga la comanda AddToTag. / / result.push (title: item, subtitle: "FoldingText: Add to Tag" : 'addToTag', actionArgument: item.trim () + "|" + string, actionRunsInBackground: true, actionReturnsItems: false);); // // Returul listei de meniuri care rezultă. // return (rezultat);  // // function: getTagsFromDocument // // Descriere: Aceasta functie va folosi un osascript pentru interogarea documentului FoldingText // de top pentru o lista de etichete. Această listă este returnată la rutina de asteptare //. // funcția getTagsFromDocument () var rezultat = LaunchBar.execut ("/ usr / bin / osascript", "getListOfTags.scpt"); întoarce (rezultat);  // // function: addToTag // // Descriere: Această funcție va folosi un osascript pentru a adăuga un șir introdus de utilizator // la prima etichetă de tipul dat de script. Informația // dată scriptului este "tag | text" unde tag-ul este o etichetă, iar textul este // textul care urmează să fie adăugat. // funcția addToTag (obj) LaunchBar.execută ("/ usr / bin / osascript", "notetag.scpt", obj.toString ());  

Acest script are patru funcții două sunt necesare de către Launchbar și două funcții de ajutor. Launchbar necesită toate acțiunile pentru a defini a alerga() funcția apelată atunci când nu există nicio intrare de la utilizator și runWithString () funcția care ia un argument de tip string al tipului de utilizator. alerga() funcția apeluri simplu runWithString () funcția cu un șir gol.

runWithString () funcția obține o listă de etichete din partea de sus FoldingText document utilizând funcția de ajutor getTagsFromDocument (). Pentru fiecare etichetă, se creează o structură de informații care conține informațiile Launchbar trebuie să afișeze rezultatele. Elementele structurii sunt:

titlu

Aceasta oferă un titlu unic pentru fiecare sub-acțiune. Este numele etichetei pentru atașarea mesajului.

subtitlu

Aceasta este subtitrarea subacțiunii. Am pus-o la numele acțiunii care a creat această sub-acțiune.

icoană

Fiecare subacțiune poate avea o altă pictogramă, dar această acțiune nu are nevoie de ea.

acțiune

Acest lucru spune Launchbar numele funcției de apel dacă această subacțiune este selectată. Pentru această acțiune, toate apelurile merg la addToTag () funcţie.

actionArgument

Aceasta definește argumentul trimis la funcția definită în acțiune. Numele etichetei este concatenat cu intrarea de la utilizator. addToTag () funcția va analiza acest șir pentru a obține numele etichetei și mesajul de adăugat la etichetă.

actionRunsInBackground

Acest câmp boolean este adevărat astfel încât Launchbar nu așteaptă revenirea funcției. Acest lucru permite utilizatorului să meargă rapid la o altă sarcină.

actionReturnsItems

Acest lucru este fals, așa că Launchbar nu va colecta ieșirea din apelul pentru funcții.

Ultimele două funcții apel JavaScript pentru automatizare scripturi care sunt stocate în Scripturi director. Aceste funcții numesc un program de linie de comandă prin utilizarea Launchbarcomandă specială LaunchBar.execute ().

Creați un fișier numit getListOfTags.scpt și deschideți-l Script Editor. În acest fișier, plasați următorul cod:

funcția execută (arg) app = Aplicație ("FoldingText"); doc = app.documents [0]; dacă doc! = null) retur doc.evaluate (script: "function (editor) retur editor.tree () tags (true) .sort ();"); 

Când un JavaScript pentru automatizare fișierul este rulat cu osascript interpret, va apela alerga() funcția cu orice element care este adăugat la linia de comandă trecută ca un șir de caractere.

Acest cod va primi o cerere obiect pentru FoldingText program. Acest lucru este la fel ca spuneți aplicația ... în AppleScript. Se utilizează apoi obiectul aplicației pentru a interoga despre documentul de sus. Dacă există un document de vârf, funcția o dă a JavaScript program la a evalua care va returna toate etichetele din acel document. Aceste etichete sunt apoi returnate la linia de comandă.

Al doilea script este numit notetag.scpt cu acest cod:

funcția execută (arg) app = Aplicație ("FoldingText"); doc = app.documents [0]; dacă doc! = null) retur doc.evaluate (script: "funcție (editor, opțiuni) var tree = editor.tree (), q = options.toString () ), var = 0, q = q [1]; var tnode = editor.tree (); evaluateNodePath ('// @' + Mesaj:   Încărcarea acțiunii 

Când selectați Instalare, acțiunea va fi adăugată la acțiunile utilizate Launchbar.

Rularea acțiunii

Pentru a executa acțiunea, activați Launchbar și tip addtotag iar acțiunea va apărea. Selectarea acestuia afișează o listă de etichete din partea de sus FoldingText document și o casetă de text. Puneți un mesaj în caseta de text și selectați o etichetă. Mesajul dat va fi adăugat la etichetă.

Concluzie

Acest tutorial demonstrează cum să scrieți Launchbar acțiuni care utilizează JavaScript și JavaScript pentru automatizare. Acum, că știți cum să faceți acest lucru, începeți să faceți practicând mai multe acțiuni.