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
+5.2k Golang : Convert lines of string into list for delete and insert operation
+17.7k Golang : Read data from config file and assign to variables
+13k Golang : Get terminal width and height example
+7.8k Golang : Regular Expression find string example
+21.3k Golang : Create and resolve(read) symbolic links
+8k Golang : What fmt.Println() can do and println() cannot do
+6.5k Golang : Calculate diameter, circumference, area, sphere surface and volume
+11.3k Golang : Fix fmt.Scanf() on Windows will scan input twice problem
+6.3k Golang : Calculate US Dollar Index (DXY)
+16.5k Golang : File path independent of Operating System
+30.9k error: trying to remove "yum", which is protected
+11.7k How to tell if a binary(executable) file or web application is built with Golang?