// literal generates composite literal, function literal, and make() // completion items. func (c *completer) literal(ctx context.Context, literalType types.Type, imp *importInfo) { … } const literalCandidateScore … // functionLiteral adds a function literal completion item for the // given signature. func (c *completer) functionLiteral(ctx context.Context, sig *types.Signature, matchScore float64) { … } var conventionalAcronyms … // abbreviateTypeName abbreviates type names into acronyms. For // example, "fooBar" is abbreviated "fb". Care is taken to ignore // non-identifier runes. For example, "[]int" becomes "i", and // "struct { i int }" becomes "s". func abbreviateTypeName(s string) string { … } // compositeLiteral adds a composite literal completion item for the given typeName. // T is an (unnamed, unaliased) struct, array, slice, or map type. func (c *completer) compositeLiteral(T types.Type, snip *snippet.Builder, typeName string, matchScore float64, edits []protocol.TextEdit) { … } // basicLiteral adds a literal completion item for the given basic // type name typeName. func (c *completer) basicLiteral(T types.Type, snip *snippet.Builder, typeName string, matchScore float64, edits []protocol.TextEdit) { … } // makeCall adds a completion item for a "make()" call given a specific type. func (c *completer) makeCall(snip *snippet.Builder, typeName string, secondArg string, matchScore float64, edits []protocol.TextEdit) { … } // Create a snippet for a type name where type params become placeholders. func (c *completer) typeNameSnippet(literalType types.Type, qf types.Qualifier) (*snippet.Builder, string) { … } // fullyInstantiated reports whether all of t's type params have // specified type args. func (c *completer) fullyInstantiated(t *types.Named) bool { … } // typeParamInScope returns whether tp's object is in scope at c.pos. // This tells you whether you are in a generic definition and can // assume tp has been specified. func (c *completer) typeParamInScope(tp *types.TypeParam) bool { … }