Skip to content

Nil pointer error when triggering code completion before the first top level node #314

@rcjsuen

Description

@rcjsuen

If we trigger code completion one space after the front of the line, a nil pointer will be triggered.

 
services:
{
    "textDocument": {
        "uri": "file:///tmp/compose.yaml"
    },
    "position": {
        "line": 0,
        "character": 1
    },
    "context": {
        "triggerKind": 1
    }
}
runtime.errorString runtime error: invalid memory address or nil pointer dereference 
    /home/runner/work/docker-language-server/docker-language-server/internal/pkg/server/server.go:218 (*Server).handleRecovered
    /home/runner/work/docker-language-server/docker-language-server/internal/pkg/server/server.go:131 NewServer.func1
    /home/runner/work/docker-language-server/docker-language-server/internal/tliron/glsp/protocol/handler.go:100 (*Handler).Handle.func1
    runtime/panic.go:792 gopanic
    runtime/signal_windows.go:401 sigpanic
    /home/runner/work/docker-language-server/docker-language-server/internal/compose/completion.go:585 walkNodes
    /home/runner/work/docker-language-server/docker-language-server/internal/compose/completion.go:578 NodeStructure
    /home/runner/work/docker-language-server/docker-language-server/internal/compose/completion.go:547 constructCompletionNodePath
    /home/runner/work/docker-language-server/docker-language-server/internal/compose/completion.go:207 Completion
    /home/runner/work/docker-language-server/docker-language-server/internal/pkg/server/completion.go:22 (*Server).TextDocumentCompletion
    /home/runner/work/docker-language-server/docker-language-server/internal/tliron/glsp/protocol/handler.go:388 (*Handler).Handle
    /home/runner/work/docker-language-server/docker-language-server/internal/tliron/glsp/server/handler.go:48 (*Server).handle
    github.com/sourcegraph/jsonrpc2@v0.2.0/handler_with_error.go:21 (*HandlerWithErrorConfigurer).Handle
    github.com/sourcegraph/jsonrpc2@v0.2.0/conn.go:205 (*Conn).readMessages

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions