Add package to open links on ctrl-O

This commit is contained in:
Kevin Sawicki
2013-04-22 14:03:00 -07:00
parent a447ab4edc
commit eec6518278
7 changed files with 86 additions and 23 deletions

View File

@@ -0,0 +1,2 @@
'body':
'ctrl-O': 'link:open'

View File

@@ -0,0 +1,16 @@
module.exports =
activate: ->
rootView.command 'link:open', ->
editSession = rootView.getActivePaneItem()
return unless editSession?
token = editSession.tokenForBufferPosition(editSession.getCursorBufferPosition())
return unless token?
unless @selector?
TextMateScopeSelector = require 'text-mate-scope-selector'
@selector = new TextMateScopeSelector('markup.underline.link')
if @selector.matches(token.scopes)
ChildProcess = require 'child_process'
ChildProcess.spawn 'open', [token.value]

View File

@@ -0,0 +1 @@
'main': 'lib/link'

View File

@@ -0,0 +1,28 @@
RootView = require 'root-view'
Editor = require 'editor'
ChildProcess = require 'child_process'
describe "link package", ->
[editor] = []
beforeEach ->
atom.activatePackage('javascript.tmbundle', sync: true)
atom.activatePackage('hyperlink-helper.tmbundle', sync: true)
window.rootView = new RootView
rootView.open('sample.js')
atom.activatePackage('link')
rootView.attachToDom()
editor = rootView.getActiveView()
editor.insertText("// http://github.com\n")
describe "when the cursor is on a link", ->
it "opens the link using the 'open' command", ->
spyOn(ChildProcess, 'spawn')
editor.trigger('link:open')
expect(ChildProcess.spawn).not.toHaveBeenCalled()
editor.setCursorBufferPosition([0,5])
editor.trigger('link:open')
expect(ChildProcess.spawn).toHaveBeenCalled()
expect(ChildProcess.spawn.argsForCall[0][1][0]).toBe "http://github.com"