aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2010-03-19 22:48:08 -0700
committerRobert Griesemer <gri@golang.org>2010-03-19 22:48:08 -0700
commit6c8fdbe8c700cd5cda51bad47c5729a966897595 (patch)
tree99ea7204db7cf9c227aa31e2de80586fce8588a9
parente8fb0b014ca37ffd34b99f2f83c477bca8ad13ff (diff)
downloadgo-6c8fdbe8c700cd5cda51bad47c5729a966897595.tar.gz
go-6c8fdbe8c700cd5cda51bad47c5729a966897595.zip
godoc: line numbers for all remote search results
Instead of returning the index lookup result via RPC which has to be corrected for the client, simply render it on the server and return the final output. R=rsc, r CC=golang-dev https://golang.org/cl/669041
-rw-r--r--lib/godoc/search.txt3
-rw-r--r--src/cmd/godoc/godoc.go14
-rw-r--r--src/cmd/godoc/main.go8
3 files changed, 15 insertions, 10 deletions
diff --git a/lib/godoc/search.txt b/lib/godoc/search.txt
index 46f7ae478e..90266292c4 100644
--- a/lib/godoc/search.txt
+++ b/lib/godoc/search.txt
@@ -1,4 +1,5 @@
-QUERY = {Query}
+QUERY
+{Query}
{.section Accurate}
{.or}
diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go
index 7d40000d55..861c2fa760 100644
--- a/src/cmd/godoc/godoc.go
+++ b/src/cmd/godoc/godoc.go
@@ -746,8 +746,9 @@ func infoLineFmt(w io.Writer, x interface{}, format string) {
line = index.(*Index).Snippet(line).Line
} else {
// no line information available because
- // we don't have an index
- // TODO(gri) Fix this for remote search
+ // we don't have an index - this should
+ // never happen; be conservative and don't
+ // crash
line = 0
}
}
@@ -1392,10 +1393,15 @@ type Query struct {
}
+type Result struct {
+ Result []byte
+}
+
+
type IndexServer struct{}
-func (s *IndexServer) Lookup(query *Query, result *SearchResult) os.Error {
- *result = lookup(query.Query)
+func (s *IndexServer) Lookup(query *Query, result *Result) os.Error {
+ result.Result = applyTemplate(searchText, "searchText", lookup(query.Query))
return nil
}
diff --git a/src/cmd/godoc/main.go b/src/cmd/godoc/main.go
index 189f45c3cf..f90316dc45 100644
--- a/src/cmd/godoc/main.go
+++ b/src/cmd/godoc/main.go
@@ -158,7 +158,7 @@ func loggingHandler(h http.Handler) http.Handler {
}
-func remoteLookup(query string) (result *SearchResult, err os.Error) {
+func remoteLookup(query string) (result *Result, err os.Error) {
var client *rpc.Client
if *serverAddr != "" {
// try server only
@@ -178,7 +178,7 @@ func remoteLookup(query string) (result *SearchResult, err os.Error) {
}
}
- result = new(SearchResult)
+ result = new(Result)
err = client.Call("IndexServer.Lookup", &Query{query}, result)
if err != nil {
return nil, err
@@ -281,9 +281,7 @@ func main() {
if err != nil {
log.Exitf("remoteLookup: %s", err)
}
- if err := searchText.Execute(result, os.Stdout); err != nil {
- log.Exitf("searchText.Execute: %s", err)
- }
+ os.Stdout.Write(result.Result)
}
return
}