2014-07-13 1 views
4

J'ai installé le atom-runner package. Je veux créer une commande personnalisée à exécuter à partir de la palette pour enregistrer le fichier en cours et ensuite exécuter le coureur. Obtenir l'éditeur et enregistrer le fichier fonctionne.Comment appeler un paquet atom?

runner:run échoue tout comme AtomRunner.run()

atom.workspaceView.command 'MyEntry:runner', -> editor = atom.workspace.getActiveEditor() editor.save() runner:run

+0

Peut-être que vous avez besoin d'une déclaration comme dans https://github.com/lsegal/atom-runner/blob/170f2291e31c364441c55308155e64b744fbb0c2/spec/atom-runner-spec.coffee#L1 'AtomRunner = nécessite '../ lib/runner''? Quel est le message d'erreur lors de l'exécution de la partie 'runner: run'? – VonC

+0

Merci, cela m'a poussé plus loin. Je suis nouveau au scénario du café. J'ai essayé plusieurs façons de "remonter" l'AtomRunner et d'appeler .run mais pas de chance. On dirait que quelqu'un a fait un PR dans le coureur et a ajouté 'editor.save()' directement –

Répondre

5

Pour appeler une commande palette de commandes à partir du code, vous pouvez utiliser atom.workspaceView.trigger et lui donner le nom de la commande comme une chaîne. Par exemple:

atom.workspaceView.command 'custom:runner', -> 
    editor = atom.workspace.getActiveEditor() 
    editor.save() 
    atom.workspaceView.trigger 'runner:run' 

J'ai changé le nom de votre commande personnalisée à custom:runner pour tenir dans les conventions de nommage de commande dans Atom et les conventions que nous utilisons dans la communauté Atom pour les commandes simples dans son init.coffee. Si vous souhaitez conserver l'utilisation de "mon entrée" comme nom de paquet (ou toute autre chose qui contient deux mots), je vous recommande de la formater en my-entry:runner.

2

Je trouve que la version 1.9.x la dernière ligne de la réponse acceptée ne fonctionne pas:

atom.workspaceView.trigger 'runner:run' 

Après quelques searching, a constaté que ce fait:

editorView = atom.views.getView(editor) 
atom.commands.dispatch(editorView, 'runner:run') 
+0

Aussi 'getActiveEditor()' ne semble plus fonctionner. Pour obtenir le 'éditeur' CofeeScript:' editor = atom.workspace.getActivePaneItem()? atom.workspace' Javascript: 'éditeur = atom.workspace.getActivePaneItem()? atom.workspace.getActivePaneItem(): atom.workspace' –

Questions connexes