(ctx context.Context, cCtx base.CompletionContext, sql string, byteOffset int)
| 482 | } |
| 483 | |
| 484 | func newCompleter(ctx context.Context, cCtx base.CompletionContext, sql string, byteOffset int) *Completer { |
| 485 | tokens := mssqlparser.Tokenize(sql) |
| 486 | |
| 487 | return &Completer{ |
| 488 | ctx: ctx, |
| 489 | scene: cCtx.Scene, |
| 490 | sql: sql, |
| 491 | cursorByteOffset: byteOffset, |
| 492 | tokens: tokens, |
| 493 | caretTokenIndex: findCaretTokenIndex(tokens, byteOffset), |
| 494 | instanceID: cCtx.InstanceID, |
| 495 | defaultDatabase: cCtx.DefaultDatabase, |
| 496 | defaultSchema: "dbo", |
| 497 | metadataGetter: cCtx.Metadata, |
| 498 | databaseNamesLister: cCtx.ListDatabaseNames, |
| 499 | } |
| 500 | } |
| 501 | |
| 502 | func computeSQLAndByteOffset(statement string, caretLine int, caretOffset int, tricky bool) (string, int) { |
| 503 | sql, newLine, newOffset := skipHeadingSQLs(statement, caretLine, caretOffset) |
no test coverage detected