show newt failure in vscode

This commit is contained in:
2024-09-14 21:55:27 -07:00
parent ac7a61e1fd
commit b65a76ccd3
4 changed files with 12 additions and 3 deletions

View File

@@ -17,6 +17,7 @@ export function activate(context: vscode.ExtensionContext) {
const cmd = config.get<string>("path", "build/exec/newt");
const command = `${cmd} ${fileName}`;
exec(command, { cwd }, (err, stdout, _stderr) => {
// I think I ignored 1 here because I wanted failure to launch
if (err && err.code !== 1) {
vscode.window.showErrorMessage(`newt error: ${err}`);
}
@@ -25,6 +26,14 @@ export function activate(context: vscode.ExtensionContext) {
const lines = stdout.split("\n");
const diagnostics: vscode.Diagnostic[] = [];
if (err) {
let start = new vscode.Position(0,0)
let end = new vscode.Position(0,1)
let range = document.getWordRangeAtPosition(start) ?? new vscode.Range(start,end)
const diag = new vscode.Diagnostic(range, "newt execution failed", vscode.DiagnosticSeverity.Error)
diagnostics.push(diag)
}
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
const match = line.match(/(INFO|ERROR) at \((\d+), (\d+)\): (.*)/);

View File

@@ -16,7 +16,7 @@
},
{
"name": "keyword.newt",
"match": "\\b(data|where|case|of|let|in|U|module|ptype|pfunc)\\b"
"match": "\\b(data|where|case|of|let|in|U|module|ptype|pfunc|infix|infixl|infixr)\\b"
}
]
}