Commit b037bfa6 authored by Robert Griesemer's avatar Robert Griesemer

godoc: proper file path conversion for remote search

R=rsc
CC=golang-dev
https://golang.org/cl/664041
parent f9d6af9f
QUERY = {Query}
QUERY
{Query}
{.section Accurate}
{.or}
......@@ -21,7 +22,7 @@ package {Pak.Name}
{.repeated section Files}
{.repeated section Groups}
{.repeated section Infos}
{File.Path|url-src}:{@|infoLine}
{File.Path}:{@|infoLine}
{.end}
{.end}
{.end}
......@@ -36,7 +37,7 @@ package {Pak.Name}
{.repeated section Files}
{.repeated section Groups}
{.repeated section Infos}
{File.Path|url-src}:{@|infoLine}
{File.Path}:{@|infoLine}
{.end}
{.end}
{.end}
......
......@@ -1394,5 +1394,29 @@ type IndexServer struct{}
func (s *IndexServer) Lookup(query *Query, result *SearchResult) os.Error {
*result = lookup(query.Query)
if hit := result.Hit; hit != nil {
// the hitlists contain absolute server file paths;
// convert them into relative paths on the server
// because the client usually has a different file
// mapping
mapHitList(hit.Decls)
mapHitList(hit.Others)
}
return nil
}
func mapHitList(list HitList) {
for _, prun := range list {
for _, frun := range prun.Files {
// convert absolute file paths to relative paths
f := frun.File
if f != nil && len(f.Path) > 0 && f.Path[0] == '/' {
f.Path = relativePath(f.Path)
}
// TODO(gri) convert SpotInfos containing snippets
// so that the line number is available
// on the client side
}
}
}
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