From: Brad Fitzpatrick Date: Tue, 31 May 2011 20:16:51 +0000 (-0700) Subject: gophertool: also permit typing "go [whatever]" in omnibox X-Git-Tag: weekly.2011-06-02~41 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f4349f7368ae46cf7aa34119a6c930ae7be113a2;p=gostls13.git gophertool: also permit typing "go [whatever]" in omnibox R=rsc CC=golang-dev https://golang.org/cl/4560056 --- diff --git a/misc/chrome/gophertool/background.html b/misc/chrome/gophertool/background.html new file mode 100644 index 0000000000..058c18142b --- /dev/null +++ b/misc/chrome/gophertool/background.html @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/misc/chrome/gophertool/gopher.js b/misc/chrome/gophertool/gopher.js new file mode 100644 index 0000000000..847c1c70d6 --- /dev/null +++ b/misc/chrome/gophertool/gopher.js @@ -0,0 +1,34 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +var numericRE = /^\d+$/; +var commitRE = /^(?:\d+:)?([0-9a-f]{6,20})$/; // e.g "8486:ab29d2698a47" or "ab29d2698a47" +var pkgRE = /^[a-z0-9_\/]+$/; + +function urlForInput(t) { + if (!t) { + return null; + } + + if (numericRE.test(t)) { + if (t < 1000000) { + return "http://code.google.com/p/go/issues/detail?id=" + t; + } + return "http://codereview.appspot.com/" + t + "/"; + } + + var match = commitRE.exec(t); + if (match) { + return "http://code.google.com/p/go/source/detail?r=" + match[1]; + } + + if (pkgRE.test(t)) { + // TODO: make this smarter, using a list of packages + substring matches. + // Get the list from godoc itself in JSON format? + // TODO: prefer localhost:6060 to golang.org if localhost:6060 is responding. + return "http://golang.org/pkg/" + t; + } + + return null; +} diff --git a/misc/chrome/gophertool/manifest.json b/misc/chrome/gophertool/manifest.json index a8de8dfd25..9a936ca8bf 100644 --- a/misc/chrome/gophertool/manifest.json +++ b/misc/chrome/gophertool/manifest.json @@ -2,10 +2,15 @@ "name": "Hacking Gopher", "version": "1.0", "description": "Go Hacking utility", + "background_page": "background.html", "browser_action": { "default_icon": "gopher.png", "popup": "popup.html" }, + "omnibox": { "keyword": "go" }, + "icons": { + "16": "gopher.png" + }, "permissions": [ "tabs" ] diff --git a/misc/chrome/gophertool/popup.html b/misc/chrome/gophertool/popup.html index 4e30ced86c..ebbc71f3aa 100644 --- a/misc/chrome/gophertool/popup.html +++ b/misc/chrome/gophertool/popup.html @@ -5,52 +5,36 @@ license that can be found in the LICENSE file. --> - +