MCPcopy Create free account
hub / github.com/nsf/gocode / new_token_iterator

Function new_token_iterator

cursorcontext.go:42–64  ·  view source on GitHub ↗
(src []byte, cursor int)

Source from the content-addressed store, hash-verified

40}
41
42func new_token_iterator(src []byte, cursor int) token_iterator {
43 tokens := make([]token_item, 0, 1000)
44 var s scanner.Scanner
45 fset := token.NewFileSet()
46 file := fset.AddFile("", fset.Base(), len(src))
47 s.Init(file, src, nil, 0)
48 for {
49 pos, tok, lit := s.Scan()
50 off := fset.Position(pos).Offset
51 if tok == token.EOF || cursor <= off {
52 break
53 }
54 tokens = append(tokens, token_item{
55 off: off,
56 tok: tok,
57 lit: lit,
58 })
59 }
60 return token_iterator{
61 tokens: tokens,
62 token_index: len(tokens) - 1,
63 }
64}
65
66func (this *token_iterator) token() token_item {
67 return this.tokens[this.token_index]

Callers 1

deduce_cursor_contextMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected