diff --git a/package-lock.json b/package-lock.json index d52f0278d37d41f56fce3ea37ed417f258ef78fa..97be1ab6cac6097101a624706d224c9d9fba7932 100644 --- a/package-lock.json +++ b/package-lock.json @@ -264,11 +264,18 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "caller-callsite": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-4.1.0.tgz", + "integrity": "sha512-99nnnGlJexTc41xwQTr+mWl15OI5PPczUJzM4YRE7QjkefMKCXGa5gfQjCOuVrD+1TjI/fevIDHg2nz3iYN5Ig==", + "requires": { + "callsites": "^3.1.0" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camelcase": { "version": "5.3.1", @@ -1331,7 +1338,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -1348,8 +1354,7 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "parent-module": { "version": "1.0.1", @@ -1774,6 +1779,47 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==" }, + "vscode-read-manifest": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/vscode-read-manifest/-/vscode-read-manifest-0.5.1.tgz", + "integrity": "sha512-TcBEHN8zDKi7VB1JEoBBUhJVEBoNiqrPWuGNmelJzygXTezCCyTqCAhqx516y/cE1Q0D9FHO5694ht0ykFoICQ==", + "requires": { + "caller-callsite": "^4.1.0", + "find-up": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + } + } + }, "vscode-test": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.4.0.tgz", diff --git a/package.json b/package.json index 101419bc6e972afb358f347be165b47ab09a9239..8b6a2aa1ce40345cb6ecebd1ab31e0f113a39df3 100644 --- a/package.json +++ b/package.json @@ -31,54 +31,55 @@ "type": "object", "title": "Configuration", "properties": { - "languageServer.maxNumberOfProblems": { - "id" : "6", - "title": "max. number of problems", - "scope": "resource", - "type": "number", - "default": 100, - "description": "Controls the maximum number of problems produced by the server." - }, "languageServer.probHome": { - "id" : "1", + "id": "1", "title": "ProBHome", - "scope": "resource", + "scope": "window", "type": "string", "default": "~/prob_prolog/probcli.sh", "description": "Path to ProB executable" }, "languageServer.wdChecks": { - "id" : "2", + "id": "2", "title": "WD Checks", - "scope": "machine", + "scope": "window", "type": "boolean", "default": true, "description": "Option for WD Checks" }, "languageServer.strictChecks": { - "id" : "3", + "id": "3", "title": "Strict Checks", - "scope": "machine", + "scope": "window", "type": "boolean", "default": false, "description": "Option for stricter Checks" }, "languageServer.performanceHints": { - "id" : "4", + "id": "4", "title": "Performance Hints", - "scope": "machine", + "scope": "window", "type": "boolean", "default": true, "description": "Option for performance-related Hints" }, "languageServer.debugMode": { - "id" : "5", + "id": "5", "title": "Debug Mode", - "scope": "machine", + "scope": "window", "type": "boolean", "default": true, "description": "Option for enabeling (extensiv) debug messages" - } } + }, + "languageServer.maxNumberOfProblems": { + "id": "6", + "title": "max. number of problems", + "scope": "window", + "type": "number", + "default": 100, + "description": "Controls the maximum number of problems produced by the server." + } + } }, "languages": [ { @@ -137,6 +138,7 @@ "ts-xor": "^1.0.8", "vscode-api": "0.0.0", "vscode-languageclient": "^6.1.3", + "vscode-read-manifest": "^0.5.1", "vscode-test": "^1.4.0", "vscode-uri": "^2.1.2", "without": "^1.2.3" diff --git a/src/extension.ts b/src/extension.ts index cf30bf3f49363ffc2e2ca47dfd34e14b0691ca55..9ffcad7bf56ba8ff42443b272b7efc28eafcb578 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -2,18 +2,19 @@ import { workspace, ExtensionContext, window, - WorkspaceConfiguration, TextEditor, - StatusBarAlignment } from 'vscode'; + StatusBarAlignment, + OutputChannel} from 'vscode'; import { LanguageClient, LanguageClientOptions, ServerOptions, - NotificationType, } from 'vscode-languageclient'; + + let client: LanguageClient; export function activate(context: ExtensionContext) { @@ -23,6 +24,9 @@ export function activate(context: ExtensionContext) { args: [ "-jar", "/home/sebastian/IdeaProjects/b-language-server/build/libs/b-language-server-all.jar"] }; + + let debugChannle = window.createOutputChannel("ProB language server") + // Options to control the language client let clientOptions: LanguageClientOptions = { // Register the server for B files @@ -30,8 +34,10 @@ export function activate(context: ExtensionContext) { synchronize: { // Notify the server about file changes to '.clientrc files contained in the workspace fileEvents: workspace.createFileSystemWatcher('**/.clientrc') - } - }; + }, + outputChannel : debugChannle, + + } // Create the language client and start the client. client = new LanguageClient('languageServer', 'Language Server', serverOptions, clientOptions) @@ -44,7 +50,31 @@ export function activate(context: ExtensionContext) { // Start the client. This will also launch the server let disposable = client.start(); context.subscriptions.push(disposable); + + + + + workspace.onDidChangeConfiguration(() => { + + showDebugMessages(debugChannle) + }) + + client.onDidChangeState(() => { + showDebugMessages(debugChannle) + + }) + + +} + +function showDebugMessages(debugChannle : OutputChannel){ + const debugMode : Boolean = workspace.getConfiguration("languageServer").get("debugMode") + console.log(debugMode) + if(debugMode) + { + debugChannle.show() + } }