var errNoMatch … var errLowScore … // item formats a candidate to a CompletionItem. func (c *completer) item(ctx context.Context, cand candidate) (CompletionItem, error) { … } // importEdits produces the text edits necessary to add the given import to the current file. func (c *completer) importEdits(imp *importInfo) ([]protocol.TextEdit, error) { … } func (c *completer) formatBuiltin(ctx context.Context, cand candidate) (CompletionItem, error) { … } // decide if the type params (if any) should be part of the completion // which only possible for types.Named and types.Signature // (so far, only in receivers, e.g.; func (s *GENERIC[K, V])..., which is a types.Named) func (c *completer) wantTypeParams() bool { … } // inferableTypeParams returns the set of type parameters // of sig that are constrained by (inferred from) the argument types. func inferableTypeParams(sig *types.Signature) map[*types.TypeParam]bool { … }