diff --git a/.vscode/settings.json b/.vscode/settings.json index 3fc0fa60242927e742bf86bd80aee39babd6870c..436b91041ec3748fa819e6ce48219f02cdb42c84 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,5 @@ "source.fixAll.eslint": true }, "languageServer.wdChecks": false, - "languageServer.probHome": "/home/sebastian/prob_prolog/probcli.sh" + "languageServer.probHome": "/home/sebastian/prb_prolog/probcli.sh" } \ No newline at end of file diff --git a/README.md b/README.md index 9e71085762c7788466df672bf88be7e413d21b19..d28a06ab515f5fbd5489e0b7705b6b51c93b3768 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,8 @@ Please note that user settings overwrite workspace settings. ## Future plans - Linter Support (via Server, is still in development by Mircosoft https://microsoft.github.io/language-server-protocol/specifications/specification-3-16/) - Quickfix support aká Code Completion -- Add feedback of failing prob cli to output +- Add snipptest +- Make startup time faster - Switch to Java Server ## Release Notes diff --git a/client/src/extension.ts b/client/src/extension.ts index d098da8e5e50318abce52e90583aa1354ea6b07e..121c863a110ea6e3fed9e0f148f586a2b3b7a32e 100644 --- a/client/src/extension.ts +++ b/client/src/extension.ts @@ -59,7 +59,7 @@ export function activate(context: ExtensionContext) { client.onReady().then(() => { let bla = window.createOutputChannel("internal_error") client.onNotification("path_error_prob", (message:string) => { - window.showErrorMessage('a problem occured :' + message) + window.showErrorMessage('a problem occured: ' + message) }); client.onNotification("parse_error_prob", (message:string) => { window.showErrorMessage('a error occured :' + message) diff --git a/server/src/errorHandler.ts b/server/src/errorHandler.ts index 7e4d0fb708ecc17e6acba2b0472377373b23027b..1abc44dce6112fe29821fe2f8536b791b2a8eb8c 100644 --- a/server/src/errorHandler.ts +++ b/server/src/errorHandler.ts @@ -24,10 +24,9 @@ export async function readErrors(errorPath: string): Promise<Map<string, Set<NDJ for await (const line of rl) { let obj: NDJSON - + try{ - console.log(line) - obj = JSON.parse(line) + obj = JSON.parse(line) }catch(e){ throw Error(e.message + " at line " + line) } diff --git a/server/src/server.ts b/server/src/server.ts index 946a8ef519e2215071ec837712fe914705f96c30..0c3b7f41af34ca91c7879754275de74879104ddc 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -179,8 +179,7 @@ async function validateTextDocument(textDocument: TextDocument): Promise<void> { fs.writeFile(errorPath, "", () => { }) //Insure a clean error file let command: string = getCommand(URI.parse(textDocument.uri).path, errorPath, settings) - - //console.log(command) +// console.log(command) if (correctPath(settings.probHome)) { exec(command, (err: string, stdout: string, stderr: string) => { let errorMap: Promise<Map<string, Set<NDJSON>>> = readErrors(errorPath) @@ -194,13 +193,20 @@ async function validateTextDocument(textDocument: TextDocument): Promise<void> { } else { diagnostics = matchErrors(entry[1]) } - console.log("sending to " + entry[0]) connection.sendDiagnostics({ uri: entry[0], diagnostics }); } }, function (err) { connection.sendNotification("parse_error_prob", "there are things wrong with the parse results " + err) }); + + + if(!stdout.includes('Running ProB Command-line Interface')) + { + connection.sendNotification("path_error_prob", "could not call/reach probcli "+ command) + } + + }) } }