我正在使用vscode并尝试重命名变量名。
失败说:
Rename failed: gorename: cannot rename identifiers in generated file containing DO NOT EDIT marker: /home/adam/go/src/hello/hello.go
那么什么是“请勿编辑”标记?为什么在那儿?如何删除它,以便gorename可以完成它的工作?
这是我的文件开始的方式:
package main
// #cgo CFLAGS: -g -Wall
// #include <stdlib.h>
// #include "c/greet.h"
import "C"
import (
"encoding/json"
"log"
"net/http"
"github.com/gorilla/mux"
)
答案 0 :(得分:1)
根据the source code for gorename
,检查很简单:它在包含短语“请勿编辑”的行的开头查找注释:
<ion-input placeholder="{{mediaDetails.title}}" value="{{mediaDetails.title}}" [(ngModel)]="mediaData.title" [ngClass]="mediaData.title ? '' : 'required'"></ion-input>
读取elsewhere in the source code时,错误消息本身就产生了,看起来错误消息可能只是令人误解:
// Matches cgo generated comment as well as the proposed standard:
// https://golang.org/s/generatedcode
var generatedRx = regexp.MustCompile(`// .*DO NOT EDIT\.?`)
// generated reports whether ast.File is a generated file.
func generated(f *ast.File, tokenFile *token.File) bool {
// Iterate over the comments in the file
for _, commentGroup := range f.Comments {
for _, comment := range commentGroup.List {
if matched := generatedRx.MatchString(comment.Text); matched {
// Check if comment is at the beginning of the line in source
if pos := tokenFile.Position(comment.Slash); pos.Column == 1 {
return true
}
}
}
}
return false
}
我看到您正在使用CGO。看来这也会触发“生成的文件”标记。