MCPcopy Index your code
hub / github.com/bytebase/bytebase / convertCandidates

Method convertCandidates

backend/plugin/parser/plsql/completion.go:335–399  ·  view source on GitHub ↗
(candidates *oracleparser.CandidateSet)

Source from the content-addressed store, hash-verified

333}
334
335func (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()...)

Callers 1

completionMethod · 0.95

Calls 10

qualifierPartsMethod · 0.95
insertSequencesMethod · 0.80
InsertMethod · 0.45
insertDatabasesMethod · 0.45
toSliceMethod · 0.45

Tested by

no test coverage detected