Creazione di azioni LaunchBar 6

LaunchBar 6 è un lanciatore di applicazioni che può essere esteso con azioni. Nelle versioni precedenti di LaunchBar, le azioni sono state scritte in AppleScript. Con LaunchBar 6, qualsiasi linguaggio di scripting può essere usato, ma la lingua preferita è JavaScript.

In questo tutorial, ti mostrerò come creare le tue azioni in JavaScript per estendere la funzionalità di LaunchBar. Pertanto, una conoscenza pratica di JavaScript è prevista. L'articolo Diventa uno sviluppatore JavaScript professionale con Tuts + Corsi può aiutarti a iniziare JavaScript.

Se vuoi conoscere l'interfaccia con LaunchBar 6, puoi leggere il LaunchBar 6 Documentazione di azione.

L'applicazione con cui interagirà questa azione è FoldingText. FoldingText è un grande editor di markdown con molta estensibilità. Dovresti dare un'occhiata al tutorial, Personalizzazione di FoldingText, per vedere come personalizzare FoldingText per soddisfare le tue esigenze.

Per comunicare con FoldingText, Ti mostrerò come utilizzare il nuovo di Apple JavaScript per l'automazione invece di AppleScript. Puoi leggere JavaScript per la documentazione di automazione per aiutarti a iniziare con la lingua.

Fare una azione

Per iniziare a fare un'azione, devi creare una directory con il .lbaction estensione.

Creazione della directory dell'azione

Nel mirino, tasto destro del mouse in una directory e selezionare Nuova cartella nominare la nuova directory FoldingTextAddToTag.lbaction. Non sembrerà più una directory in mirino. LaunchBar registra questa estensione con OS X trattarlo come un tipo di file speciale. È ancora una directory, ma la muovi come un file.

Mostrare i contenuti della directory

Per visualizzare nuovamente il contenuto, tasto destro nella directory e selezionare Mostra i contenuti del pacchetto.

Contenuti di azione

Una volta all'interno del pacchetto azione, tutti i file e le directory che compongono un'azione sono visualizzabili.

Vista ad albero di un'azione

La struttura di base di un'azione può essere vista con il albero comando. Il albero il comando è uno standard Unix comando per visualizzare graficamente una struttura di directory. Puoi installarlo con HomeBrew con il comando:

preparare l'albero di installazione

Quindi si visualizza una directory con albero .

Per creare la struttura per una nuova azione, creare a Contenuto directory con sottodirectory di risorse e Script. Nella directory principale, a Readme.md il file deve essere creato con una descrizione dell'azione in riduione di prezzo formato.

Successivamente, un'icona per l'azione viene posizionata nel risorse directory. Basta usare quello nel download e posizionarlo lì.

Nel Contenuto directory, il Info.plist il file deve essere creato. Questo file dice LaunchBar come usare l'azione. In quel file, posiziona il seguente:

    CFBundleIdentifier com.customct.launchbar.FoldingTextAddToTag CFBundleName FT-AddToTag CFBundleVersion 1.0 CFBundleIconFile icona 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 Ciò consente l'aggiunta di un messaggio a un tag arbitrario nel documento più in alto.  LBArgument Prende un nome di tag e una nota da allegare al tag.  LBResult Aggiunge un messaggio a un tag in FoldingText.  LBRequirements Nessuna   

Questo è un testo plist che è modificabile con qualsiasi editor di testo. I diversi tasti dicono LaunchBar cosa fare con l'azione. Le chiavi minime sono:

CFBundleIdentifier

Questa chiave fornisce un identificatore univoco per l'azione. Per assicurare unicità, utilizzo un DNS inverso del mio sito Web con il nome del programma e il nome dell'azione.

CFBundleName

Questa chiave dà un nome all'azione. Questo è mostrato nella finestra di dialogo delle azioni per abilitare / disabilitare.

CFBundleVersion

Questa chiave fornisce il numero di versione per l'azione. Per questa azione sarà 1.0.

CFBundleIconFile

Questa chiave assegna il nome del file icona nel file risorse directory dell'azione. Il tipo di file non è dato.

LBDebugLogEnabled

Questa chiave è un valore booleano che determina lo stato della registrazione. Questo dovrebbe essere disattivato con un valore falso.

LBTextInputTitle

Questa chiave è il nome che l'utente utilizzerà per chiamare l'azione LaunchBar. È ft: addtotag. Come l'utente inizia a digitare, LaunchBar elencherà tutte le azioni e i file che iniziano ad abbinarlo. Molto spesso, devi solo digitare ft: un o aggiungere a per arrivare a questa azione.

LBScripts

Questa chiave avvia un altro dizionario di termini per il precedente LBTextInputTitle chiave. Le sei chiavi successive sono in questo dizionario per descrivere come funziona l'azione.

LBDefaultScript

Questo avvia il dizionario di definizione dello script di azione. I prossimi cinque tasti sono in questo dizionario.

LBLiveFeedbackEnabled

Questa chiave booleana dice LaunchBar indipendentemente dal fatto che lo script fornirà feedback in tempo reale. Feedback live è un elenco di opzioni da selezionare in LaunchBar. Questa azione fornirà un elenco di nomi di tag tra cui scegliere. Pertanto, questo dovrebbe essere vero.

LBRequiresArgument

Questa chiave booleana dice LaunchBar se questa azione richiede un argomento. Ancora una volta, questa azione ha bisogno del messaggio da aggiungere al tag. Pertanto, sarà vero.

LBReturnsResult

Questa chiave booleana indica a LaunchBar se questa azione restituirà risultati. Poiché questa azione ha feedback dal vivo, anche questo deve essere vero.

LBRunInBackground

Alcune azioni lanciano semplicemente qualcosa e possono essere eseguite in background in questo modo LaunchBar non ha bisogno di aspettare o registrare l'output. Per questa azione, questa chiave sarà falsa.

LBScriptName

Questa chiave dice LaunchBar il nome dello script da eseguire. La sceneggiatura deve essere nel Script sottodirectory.

LBDescription

Questo tasto avvia l'ultimo dizionario che descrive l'autore dell'azione e varie informazioni sull'azione. Alcuni di questi vengono visualizzati all'utente quando l'azione è installata. Queste chiavi sono molto intuitive.

Con questo file plist sul posto e l'icona nel risorse directory, è possibile creare la parte principale dell'azione. Apri il Script sottodirectory e creare un file chiamato Default.js. Inserisci il seguente:

// // Funzione: eseguire // // Descrizione: questa funzione viene richiamata da LaunchBar ogni volta che l'azione viene chiamata senza una stringa. // Crea un menu che LaunchBar darà all'utente. Le voci del menu elencano // le funzioni effettive da chiamare per provocare un'azione in FoldingText. Basta chiamare // il runWithString è una stringa vuota. // function run () runWithString ("");  // // Funzione: runWithString // // Descrizione: questa funzione viene richiamata da LaunchBar ogni volta che l'azione viene chiamata con una stringa. // Crea un menu che LaunchBar darà all'utente. Le voci del menu elencano // le funzioni effettive da chiamare per provocare un'azione in FoldingText. // // Input: // string Una stringa fornita dall'utente. // function runWithString (string) // // Crea variabili che verranno utilizzate. // var result = []; string = string.trim (); // // Ottieni un elenco di tag dal documento corrente. // var tags = getTagsFromDocument (). split (","); // // Questa funzione dovrebbe essere chiamata per produrre una nuova lista. Crealo. // // // Tag Foreach, aggiungi una voce di menu da bambino. // tags.forEach (function (item) // // Aggiunge al comando AddToTag. // result.push (title: item, sottotitolo: "FoldingText: Add to Tag", icona: "icona", azione : 'addToTag', actionArgument: item.trim () + "|" + string, actionRunsInBackground: true, actionReturnsItems: false);); // // Restituisce l'elenco di menu risultante. // return (risultato);  // // function: getTagsFromDocument // // Descrizione: Questa funzione utilizza un osScript per interrogare il documento // FoldingText più in alto per un elenco di tag. Questo elenco viene restituito alla routine // chiamante. // function getTagsFromDocument () var result = LaunchBar.execute ("/ usr / bin / osascript", "getListOfTags.scpt"); ritorno (risultato);  // // function: addToTag // // Descrizione: Questa funzione utilizza un osScript per aggiungere una stringa fornita dall'utente // al primo tag del tipo dato allo script. L'informazione // data allo script è "tag | testo" dove tag è un tag e text è // il testo da aggiungere. // function addToTag (obj) LaunchBar.execute ("/ usr / bin / osascript", "notetag.scpt", obj.toString ());  

Questo script ha quattro funzioni a cui sono richiesti due LaunchBar e due funzioni di supporto. LaunchBar richiede tutte le azioni per definire a correre() funzione che viene chiamata quando non vi è alcun input da parte dell'utente, e runWithString () funzione che accetta un argomento stringa di ciò che l'utente digita. Il correre() la funzione chiama semplicemente il runWithString () funziona con una stringa vuota.

Il runWithString () la funzione ottiene una lista di tag dall'alto in alto FoldingText documento utilizzando la funzione di supporto getTagsFromDocument (). Per ogni tag, viene creata una struttura di informazioni contenente le informazioni LaunchBar ha bisogno di visualizzare i risultati. Gli elementi della struttura sono:

titolo

Questo dà un titolo unico a ciascuna azione secondaria. È il nome del tag per allegare il messaggio.

sottotitolo

Questo è il sottotitolo per l'azione secondaria. L'ho impostato sul nome dell'azione che ha creato questa azione secondaria.

icona

Ogni azione secondaria può avere un'icona diversa, ma questa azione non ne ha bisogno.

azione

Questo dice LaunchBar il nome della funzione da chiamare se questa azione secondaria è selezionata. Per questa azione, tutte le chiamate vanno a addToTag () funzione.

actionArgument

Questo definisce l'argomento inviato alla funzione definita in azione. Il nome del tag è concatenato con l'input dell'utente. Il addToTag () questa funzione analizzerà questa stringa per ottenere il nome del tag e il messaggio da aggiungere al tag.

actionRunsInBackground

Questo campo booleano è vero così LaunchBar non aspetta che la funzione ritorni. Ciò consente all'utente di passare rapidamente a un'altra attività.

actionReturnsItems

Questo è falso così LaunchBar non raccoglierà l'output dalla chiamata di funzione.

Chiamano le ultime due funzioni JavaScript per l'automazione script che sono memorizzati nel Script directory. Quelle funzioni chiamano un programma a riga di comando usando LaunchBarIl comando speciale LaunchBar.execute ().

Crea un file chiamato getListOfTags.scpt e aprilo dentro Script Editor. In questo file, inserisci il seguente codice:

function run (arg) app = Application ("FoldingText"); doc = app.documents [0]; if (doc! = null) return doc.evaluate (script: "function (editor) return editor.tree (). tags (true) .sort ();"); 

Quando un JavaScript per l'automazione il file viene eseguito con osascript interprete, chiamerà il correre() funziona con qualsiasi cosa aggiunta alla riga di comando passata come stringa ad essa.

Questo codice otterrà un Applicazione oggetto per FoldingText programma. Questo è lo stesso di dire all'applicazione ... nel AppleScript. Quindi utilizza quell'oggetto dell'applicazione per interrogare il documento più in alto. Se c'è un documento in cima, la funzione lo dà a JavaScript programma a valutare questo restituirà tutti i tag in quel documento. Quei tag vengono quindi restituiti alla riga di comando.

Il secondo script è chiamato notetag.scpt con questo codice:

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

È lo stesso del precedente script, ad eccezione di JavaScript passato a valutare comando. Questo JavaScript analizzerà l'argomento di input a un tag e un messaggio. Poi dice FoldingText per aggiungere il messaggio a quel tag nel documento.

Caricamento ed esecuzione dell'azione

Una volta che tutti questi pezzi sono a posto, è sufficiente fare doppio clic sul FoldingTextAddToTag.lbaction file. OS X lo caricherà automaticamente in LaunchBar.

Caricamento dell'azione

Quando si seleziona Installare, l'azione verrà aggiunta alle azioni utilizzate da LaunchBar.

Esecuzione dell'azione

Per eseguire l'azione, attivare LaunchBar e scrivi addtotag e l'azione apparirà. Selezionandolo mostra un elenco di tag nella parte superiore FoldingText documento e una casella di testo. Metti un messaggio nella casella di testo e seleziona un tag. Il messaggio dato verrà aggiunto al tag.

Conclusione

Questo tutorial dimostra come scrivere LaunchBar azioni usando JavaScript e JavaScript per l'automazione. Ora che sai come farlo, inizia a praticare facendo più azioni.