(candidates *oracleparser.CandidateSet)
| 333 | } |
| 334 | |
| 335 | func (c *Completer) convertCandidates(candidates *oracleparser.CandidateSet) []base.Candidate { |
| 336 | keywordEntries := make(CompletionMap) |
| 337 | functionEntries := make(CompletionMap) |
| 338 | schemaEntries := make(CompletionMap) |
| 339 | tableEntries := make(CompletionMap) |
| 340 | columnEntries := make(CompletionMap) |
| 341 | viewEntries := make(CompletionMap) |
| 342 | sequenceEntries := make(CompletionMap) |
| 343 | |
| 344 | if candidates != nil { |
| 345 | for _, tok := range candidates.Tokens { |
| 346 | if tok > 0 && tok < 256 { |
| 347 | continue |
| 348 | } |
| 349 | name := oracleparser.TokenName(tok) |
| 350 | if name == "" { |
| 351 | continue |
| 352 | } |
| 353 | keywordEntries.Insert(base.Candidate{ |
| 354 | Type: base.CandidateTypeKeyword, |
| 355 | Text: name, |
| 356 | }) |
| 357 | } |
| 358 | |
| 359 | for _, rule := range candidates.Rules { |
| 360 | switch rule.Rule { |
| 361 | case "func_name": |
| 362 | for _, tok := range candidates.Tokens { |
| 363 | name := oracleparser.TokenName(tok) |
| 364 | if name == "" { |
| 365 | continue |
| 366 | } |
| 367 | functionEntries.Insert(base.Candidate{ |
| 368 | Type: base.CandidateTypeFunction, |
| 369 | Text: name + "()", |
| 370 | }) |
| 371 | } |
| 372 | case "schema_ref": |
| 373 | schemaEntries.insertDatabases(c) |
| 374 | case "table_ref": |
| 375 | c.insertTableReferenceCandidates(schemaEntries, tableEntries, viewEntries, sequenceEntries) |
| 376 | case "sequence_ref": |
| 377 | sequenceEntries.insertSequences(c, c.sequenceCompletionSchemas()) |
| 378 | case "columnref": |
| 379 | c.insertColumnContextCandidates(schemaEntries, tableEntries, columnEntries, viewEntries, sequenceEntries) |
| 380 | default: |
| 381 | } |
| 382 | } |
| 383 | } |
| 384 | |
| 385 | c.insertCompletionIntentCandidates(keywordEntries, functionEntries, schemaEntries, tableEntries, columnEntries, viewEntries, sequenceEntries) |
| 386 | if len(c.qualifierParts()) > 0 && len(columnEntries) == 0 { |
| 387 | c.insertColumnContextCandidates(schemaEntries, tableEntries, columnEntries, viewEntries, sequenceEntries) |
| 388 | } |
| 389 | |
| 390 | var result []base.Candidate |
| 391 | result = append(result, keywordEntries.toSlice()...) |
| 392 | result = append(result, functionEntries.toSlice()...) |
no test coverage detected