| 457 | } |
| 458 | |
| 459 | func Completion(ctx context.Context, cCtx base.CompletionContext, statement string, caretLine int, caretOffset int) ([]base.Candidate, error) { |
| 460 | completer := NewStandardCompleter(ctx, cCtx, statement, caretLine, caretOffset) |
| 461 | result, err := completer.complete() |
| 462 | |
| 463 | if err != nil { |
| 464 | return nil, err |
| 465 | } |
| 466 | if len(result) > 0 { |
| 467 | return result, nil |
| 468 | } |
| 469 | |
| 470 | trickyCompleter := NewTrickyCompleter(ctx, cCtx, statement, caretLine, caretOffset) |
| 471 | return trickyCompleter.complete() |
| 472 | } |
| 473 | |
| 474 | func NewStandardCompleter(ctx context.Context, cCtx base.CompletionContext, statement string, caretLine int, caretOffset int) *Completer { |
| 475 | sql, byteOffset := computeSQLAndByteOffset(statement, caretLine, caretOffset, false /* tricky */) |