Description
gopls version
Build info
golang.org/x/tools/gopls v0.16.1
golang.org/x/tools/gopls@v0.16.1 h1:1hO/dCeUvjEYx3V0rVvCtOkwnpEpqS29paE+Jw4dcAc=
github.com/BurntSushi/toml@v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
github.com/google/go-cmp@v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
golang.org/x/exp/typeparams@v0.0.0-20221212164502-fae10dda9338 h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y=
golang.org/x/mod@v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
golang.org/x/sync@v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/telemetry@v0.0.0-20240607193123-221703e18637 h1:3Wt8mZlbFwG8llny+t18kh7AXxyWePFycXMuVdHxnyM=
golang.org/x/text@v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/tools@v0.22.1-0.20240628205440-9c895dd76b34 h1:Kd+Z5Pm6uwYx3T2KEkeHMHUMZxDPb/q6b1m+zEcy62c=
golang.org/x/vuln@v1.0.4 h1:SP0mPeg2PmGCu03V+61EcQiOjmpri2XijexKdzv8Z1I=
honnef.co/go/tools@v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs=
mvdan.cc/gofumpt@v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo=
mvdan.cc/xurls/v2@v2.5.0 h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8=
go: go1.21.0
go env
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/zx/.cache/go-build'
GOENV='/home/zx/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/zx/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/zx/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.0'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/zx/workspace/go/tools/gopls/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2830052148=/tmp/go-build -gno-record-gcc-switches'
What did you do?
I cannot get function signatures without the parentheses when use lsp."textDocument/signatureHelp" when I make a code snippet plugin for neovim.
What did you see happen?
Get nil by exec lua vim.lsp.buf.signature_help()
in the neovim when cursor over the function name.


What did you expect to see?
We prefere to use "." to trigger a code complete menu, we also need the ability to retrieve function signatures when cursor over the function name.


I have made a pull request to fix this.
Editor and settings
nvim, it works well.
Logs
No response
Activity
gabyhelp commentedon Aug 17, 2024
Related Issues and Documentation
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)
gopls/internal/golang: get sign over func name
[-]x/tools/gopls: get signature when cusor is over the function name[/-][+]x/tools/gopls: get signature when cursor is over the function name[/+]findleyr commentedon Aug 21, 2024
Thanks, it seems reasonable to support this, and agree that it is a good help-wanted issue. Thanks for the contribution, we'll review your CL.
gopls/internal/golang: get sign over func name
adonovan commentedon Aug 22, 2024
I agree that the feature seems like a reasonable interpretation of SignatureHelp and its SignatureInformation result type, which represents "the signature of something callable".
crazyhulk commentedon Aug 23, 2024
/**
*/
Callable, not calling?
" Signature help represents the signature of something callable." which refers to the entire set of method, sel, function, etc.
Gopls provides tremendous help while we write code, consider the following situation:
I want a complete menu here, and I must call foo.
In this situation, if signature help is provided only after I’ve completed writing the function, it’s no longer useful.
In other words, we should provide function signatures for everything that is callable, not just for functions that are already being called.
adonovan commentedon Aug 23, 2024
We agree. :-)
gopherbot commentedon Aug 24, 2024
Change https://go.dev/cl/605983 mentions this issue:
SignatureHelp: report signature of Ident if no enclosing CallExpr
gopls/internal/golang: get sign over func name
gopls/internal/golang: get sign over func name