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
+41k Golang : How to check if a string contains another sub-string?
+10.4k Golang : Generate random integer or float number
+16.6k Golang : Merge video(OpenCV) and audio(PortAudio) into a mp4 file
+20.5k nginx: [emerg] unknown directive "passenger_enabled"
+11k Golang : Replace a parameter's value inside a configuration file example
+7k Golang : Takes a plural word and makes it singular
+13.7k Golang : Image to ASCII art example
+5.6k Golang : Configure crontab to poll every two minutes 8am to 6pm Monday to Friday
+6.1k nginx : force all pages to be SSL
+18.6k Golang : Find IP address from string
+25.8k Golang : Daemonizing a simple web server process example