Commit 4e3f3894 authored by Robert Griesemer's avatar Robert Griesemer

godoc: enable qualified identifiers ("math.Sin") as query strings again

A query string of the form ident.ident will be used both as a qualified
identifier for identifier search and as a regular expression.
Qualified identifier lookup got broken accidentally when introducing
regexp full text search. Cleaned up surrounding logic a bit.

R=rsc
CC=golang-dev
https://golang.org/cl/3984042
parent c52ad234
......@@ -1159,36 +1159,33 @@ type SearchResult struct {
func lookup(query string) (result SearchResult) {
result.Query = query
// determine identifier lookup string and full text regexp
lookupStr := ""
lookupRx, err := regexp.Compile(query)
if err != nil {
result.Alert = "Error in query regular expression: " + err.String()
return
}
if prefix, complete := lookupRx.LiteralPrefix(); complete {
// otherwise we lookup "" (with no result) because
// identifier lookup doesn't support regexp search
lookupStr = prefix
}
index, timestamp := searchIndex.get()
if index != nil {
// identifier search
index := index.(*Index)
result.Hit, result.Alt, err = index.Lookup(lookupStr)
// identifier search
var err os.Error
result.Hit, result.Alt, err = index.Lookup(query)
if err != nil && !*fulltextIndex {
// ignore the error if there is full text search
// since it accepts that query regular expression
// ignore the error if full text search is enabled
// since the query may be a valid regular expression
result.Alert = "Error in query string: " + err.String()
return
}
// textual search
// TODO(gri) should max be a flag?
const max = 10000 // show at most this many fulltext results
result.Found, result.Textual = index.LookupRegexp(lookupRx, max+1)
result.Complete = result.Found <= max
// full text search
if *fulltextIndex {
rx, err := regexp.Compile(query)
if err != nil {
result.Alert = "Error in query regular expression: " + err.String()
return
}
// TODO(gri) should max be a flag?
const max = 10000 // show at most this many fulltext results
result.Found, result.Textual = index.LookupRegexp(rx, max+1)
result.Complete = result.Found <= max
}
}
// is the result accurate?
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment