MCPcopy Create free account
hub / github.com/bytebase/bytebase / NewStandardCompleter

Function NewStandardCompleter

backend/plugin/parser/pg/completion.go:147–172  ·  view source on GitHub ↗
(ctx context.Context, cCtx base.CompletionContext, statement string, caretLine int, caretOffset int)

Source from the content-addressed store, hash-verified

145}
146
147func NewStandardCompleter(ctx context.Context, cCtx base.CompletionContext, statement string, caretLine int, caretOffset int) *Completer {
148 sql, byteOffset := computeSQLAndByteOffset(statement, caretLine, caretOffset, false /* tricky */)
149 tokens := pgparser.Tokenize(sql)
150 caretTokenIndex := findCaretTokenIndex(tokens, byteOffset)
151 defaultSchema := cCtx.DefaultSchema
152 schemaNotSelected := defaultSchema == ""
153 if defaultSchema == "" {
154 defaultSchema = "public"
155 }
156 return &Completer{
157 ctx: ctx,
158 scene: cCtx.Scene,
159 sql: sql,
160 cursorByteOffset: byteOffset,
161 tokens: tokens,
162 caretTokenIndex: caretTokenIndex,
163 instanceID: cCtx.InstanceID,
164 defaultDatabase: cCtx.DefaultDatabase,
165 defaultSchema: defaultSchema,
166 schemaNotSelected: schemaNotSelected,
167 getMetadata: cCtx.Metadata,
168 listDatabaseNames: cCtx.ListDatabaseNames,
169 metadataCache: make(map[string]*model.DatabaseMetadata),
170 cteCache: make(map[int][]*base.VirtualTableReference),
171 }
172}
173
174// findCaretTokenIndex returns the index of the first token whose start (Loc)
175// is at or past byteOffset. This matches ANTLR Scanner.SeekPosition semantics:

Callers 1

CompletionFunction · 0.70

Calls 2

computeSQLAndByteOffsetFunction · 0.70
findCaretTokenIndexFunction · 0.70

Tested by

no test coverage detected