diff --git a/assets/javascripts/app/shortcuts.coffee b/assets/javascripts/app/shortcuts.coffee
index 71db458d..133ad819 100644
--- a/assets/javascripts/app/shortcuts.coffee
+++ b/assets/javascripts/app/shortcuts.coffee
@@ -123,6 +123,9 @@ class app.Shortcuts
when 82
@trigger 'altR'
false
+ when 83
+ @trigger 'altS'
+ false
handleKeypressEvent: (event) ->
if event.which is 63 and not event.target.value
diff --git a/assets/javascripts/templates/pages/help_tmpl.coffee b/assets/javascripts/templates/pages/help_tmpl.coffee
index fa6a5181..552643a5 100644
--- a/assets/javascripts/templates/pages/help_tmpl.coffee
+++ b/assets/javascripts/templates/pages/help_tmpl.coffee
@@ -87,6 +87,9 @@ app.templates.helpPage = """
alt + g
Search on Google
+
+ alt + s
+ Search on Stack Overflow
escape
Reset
(press twice in single doc mode)
diff --git a/assets/javascripts/views/search/search.coffee b/assets/javascripts/views/search/search.coffee
index e6ef6715..39d7887c 100644
--- a/assets/javascripts/views/search/search.coffee
+++ b/assets/javascripts/views/search/search.coffee
@@ -16,6 +16,7 @@ class app.views.Search extends app.View
@shortcuts:
typing: 'autoFocus'
altG: 'google'
+ altS: 'stackoverflow'
@routes:
root: 'onRoot'
@@ -86,12 +87,21 @@ class app.views.Search extends app.View
@removeClass @constructor.activeClass
@trigger 'clear'
- google: =>
- if @value
- $.popup "https://www.google.com/search?q=#{encodeURIComponent @value}"
+ externalSearch: (url) ->
+ if value = @value
+ value = "#{@scope.name()} #{value}" if @scope.name()
+ $.popup "#{url}#{encodeURIComponent value}"
@reset()
return
+ google: =>
+ @externalSearch "https://www.google.com/search?q="
+ return
+
+ stackoverflow: =>
+ @externalSearch "https://stackoverflow.com/search?q="
+ return
+
onResults: (results) =>
@hasResults = true if results.length
@trigger 'results', results, @flags
diff --git a/assets/javascripts/views/search/search_scope.coffee b/assets/javascripts/views/search/search_scope.coffee
index a9735257..014122b0 100644
--- a/assets/javascripts/views/search/search_scope.coffee
+++ b/assets/javascripts/views/search/search_scope.coffee
@@ -26,6 +26,9 @@ class app.views.SearchScope extends app.View
getScope: ->
@doc or app
+ name: ->
+ @doc?.name
+
search: (value) ->
unless @doc
@searcher.find app.docs.all(), 'text', value