diff --git a/src/goCheck.ts b/src/goCheck.ts index 306a5e44e..54fb30d3e 100644 --- a/src/goCheck.ts +++ b/src/goCheck.ts @@ -28,6 +28,16 @@ export function removeTestStatus(e: vscode.TextDocumentChangeEvent) { statusBarItem.text = ''; } +export function notifyIfGeneratedFile(e: vscode.TextDocumentChangeEvent) { + if (e.document.isUntitled || e.document.languageId !== 'go') { + return; + } + + if (e.document.lineAt(0).text.match(/^\/\/ Code generated .* DO NOT EDIT\.$/)) { + vscode.window.showWarningMessage('This file seems to be generated. DO NOT EDIT.'); + } +} + export function check(fileUri: vscode.Uri, goConfig: vscode.WorkspaceConfiguration): Promise { outputChannel.clear(); let runningToolsPromises = []; diff --git a/src/goMain.ts b/src/goMain.ts index 94ba5a804..c44834d21 100644 --- a/src/goMain.ts +++ b/src/goMain.ts @@ -18,7 +18,7 @@ import { GoRunTestCodeLensProvider } from './goRunTestCodelens'; import { GoSignatureHelpProvider } from './goSignature'; import { GoWorkspaceSymbolProvider } from './goSymbol'; import { GoCodeActionProvider } from './goCodeAction'; -import { check, removeTestStatus } from './goCheck'; +import { check, removeTestStatus, notifyIfGeneratedFile } from './goCheck'; import { updateGoPathGoRootFromConfig, offerToInstallTools } from './goInstallTools'; import { GO_MODE } from './goMode'; import { showHideStatus } from './goStatus'; @@ -154,6 +154,7 @@ export function activate(ctx: vscode.ExtensionContext): void { vscode.window.onDidChangeActiveTextEditor(showHideStatus, null, ctx.subscriptions); vscode.window.onDidChangeActiveTextEditor(getCodeCoverage, null, ctx.subscriptions); vscode.workspace.onDidChangeTextDocument(parseLiveFile, null, ctx.subscriptions); + vscode.workspace.onDidChangeTextDocument(notifyIfGeneratedFile, null, ctx.subscriptions); startBuildOnSaveWatcher(ctx.subscriptions);