mirror of
https://github.com/golang/go
synced 2024-11-22 01:14:40 -07:00
godoc: proper file path conversion for remote search
R=rsc CC=golang-dev https://golang.org/cl/664041
This commit is contained in:
parent
f9d6af9fb8
commit
b037bfa684
@ -1,4 +1,5 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user