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

Method qualifierParts

backend/plugin/parser/plsql/completion.go:854–879  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

852}
853
854func (c *Completer) qualifierParts() []string {
855 collectOffset := c.cursorByteOffset - len(c.completionPrefix)
856 if collectOffset > len(c.sql) {
857 collectOffset = len(c.sql)
858 }
859 before := strings.TrimRight(c.sql[:collectOffset], " \t\r\n")
860 if !strings.HasSuffix(before, ".") {
861 return nil
862 }
863 before = strings.TrimSuffix(before, ".")
864 var parts []string
865 for {
866 before = strings.TrimRight(before, " \t\r\n")
867 part, start := lastIdentifierSpan(before)
868 if part == "" {
869 break
870 }
871 parts = append([]string{unquote(part)}, parts...)
872 before = strings.TrimRight(before[:start], " \t\r\n")
873 if !strings.HasSuffix(before, ".") {
874 break
875 }
876 before = strings.TrimSuffix(before, ".")
877 }
878 return parts
879}
880
881func lastIdentifierSpan(s string) (string, int) {
882 s = strings.TrimSpace(s)

Callers 4

convertCandidatesMethod · 0.95
columnQualifierMethod · 0.95

Calls 2

lastIdentifierSpanFunction · 0.85
unquoteFunction · 0.70

Tested by

no test coverage detected