Golang go/token.File.AddLineInfo function example
package go/token
AddLineInfo adds alternative file and line(3rd parameter) number information for a given file offset (1st parameter). The offset must be larger than the offset for the previously added alternative line info and smaller than the file size; otherwise the information is ignored.
AddLineInfo is typically used to register alternative position information for //line filename:line comments in source files.
Golang go/token.File.AddLineInfo function usage example
func (s *Scanner) interpretLineComment(text []byte) {
if bytes.HasPrefix(text, prefix) {
// get filename and line number, if any
if i := bytes.LastIndex(text, []byte{':'}); i > 0 {
if line, err := strconv.Atoi(string(text[i+1:])); err == nil && line > 0 {
// valid //line filename:line comment
filename := string(bytes.TrimSpace(text[len(prefix):i]))
if filename != "" {
filename = filepath.Clean(filename)
if !filepath.IsAbs(filename) {
// make filename relative to current directory
filename = filepath.Join(s.dir, filename)
}
}
// update scanner position
s.file.AddLineInfo(s.lineOffset+len(text)+1, filename, line) // +len(text)+1 since comment applies to next line
}
}
}
}
References :
Advertisement
Something interesting
Tutorials
+13.9k Golang : Get current time
+14.2k Golang : Chunk split or divide a string into smaller chunk example
+6.9k Default cipher that OpenSSL used to encrypt a PEM file
+25.9k Golang : How to read integer value from standard input ?
+9.5k Golang : Accessing content anonymously with Tor
+11.1k Golang : Fix go.exe is not compatible with the version of Windows you're running
+80.7k Golang : How to return HTTP status code?
+20.7k Golang : Read directory content with os.Open
+15.9k Golang : Get current time from the Internet time server(ntp) example
+9.7k Golang : interface - when and where to use examples
+7.8k Golang : Getting Echo framework StartAutoTLS to work