go/godoc
aarzilli c6fca02004 godoc: handle type parameters correctly in LinkifyText
LinkifyText should not generate links to global declarations for
identifiers that are type parameters.

Because the syntactic resolver does not record the declaration for type
parameters declared in the method receiver (see
https://golang.org/issue/50956) a name lookup is used as a workaround.
This is fine here because it is only applied to undeclared indentifiers
and LinkifyText is only ever called on a single declaration at a time,
not on a full AST.

Updates golang/go#50717

Change-Id: I32f2203ce80c060ee18ca8b964a2d5fd80f41957
Reviewed-on: https://go-review.googlesource.com/c/tools/+/382714
Reviewed-by: Robert Findley <rfindley@google.com>
Run-TryBot: Alessandro Arzilli <alessandro.arzilli@gmail.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Trust: Peter Weinberger <pjw@google.com>
2022-02-14 18:01:21 +00:00
..
analysis
redirect godoc/redirect: close HTTP response bodies in TestRedirect 2022-01-28 18:44:56 +00:00
static
util
vfs
README.md
corpus.go
dirtrees.go
dirtrees_test.go
format.go
godoc.go
godoc17_test.go
godoc_test.go godoc: handle type parameters correctly in LinkifyText 2022-02-14 18:01:21 +00:00
index.go
index_test.go
linkify.go godoc: handle type parameters correctly in LinkifyText 2022-02-14 18:01:21 +00:00
markdown.go
meta.go
page.go
parser.go
pres.go
search.go
server.go
server_test.go
snippet.go
spec.go
spec_test.go
spot.go
tab.go
template.go
versions.go
versions_test.go

README.md

godoc

This directory contains most of the code for running a godoc server. The executable lives at golang.org/x/tools/cmd/godoc.

Development mode

In production, CSS/JS/template assets need to be compiled into the godoc binary. It can be tedious to recompile assets every time, but you can pass a flag to load CSS/JS/templates from disk every time a page loads:

godoc -templates=$GOPATH/src/golang.org/x/tools/godoc/static -http=:6060

Recompiling static assets

The files that live at static/style.css, static/jquery.js and so on are not present in the final binary. They are placed into static/static.go by running go generate. So to compile a change and test it in your browser:

  1. Make changes to e.g. static/style.css.

  2. Run go generate golang.org/x/tools/godoc/static so static/static.go picks up the change.

  3. Run go install golang.org/x/tools/cmd/godoc so the compiled godoc binary picks up the change.

  4. Run godoc -http=:6060 and view your changes in the browser. You may need to disable your browser's cache to avoid reloading a stale file.