diff --git a/client/src/extension.ts b/client/src/extension.ts index 9caacc132b0def5517dcd54bc0d77d7fd0e47773..984be111edf5da084ec2f0f8b572c0a94ee8f49b 100644 --- a/client/src/extension.ts +++ b/client/src/extension.ts @@ -39,7 +39,7 @@ export function activate(context: ExtensionContext) { // Options to control the language client let clientOptions: LanguageClientOptions = { // Register the server for B, EventB documents - documentSelector: [{ scheme: 'file', language: 'plaintext' }], + documentSelector: [{ scheme: 'file', language: 'classicalB' }, { scheme: 'file', language: 'eventB' }], synchronize: { // Notify the server about file changes to '.clientrc files contained in the workspace fileEvents: workspace.createFileSystemWatcher('**/.clientrc') diff --git a/package.json b/package.json index c0af141333aeb5fd907239563b7bc648cc7513a3..9e5fd9717df7eceb9e0498d97d9f842b91cc05b2 100644 --- a/package.json +++ b/package.json @@ -18,13 +18,14 @@ "Programming Languages" ], "keywords": [ - "multi-root ready", + "classical B", "B", - "eventB", - "proB" + "Event-B", + "ProB" ], "activationEvents": [ - "onLanguage:plaintext" + "onLanguage:classicalB", + "onLanguage:eventB" ], "main": "./client/out/extension", "contributes": { @@ -74,7 +75,17 @@ "description": "Option for performance-related Hints" } } - } + }, + "languages": [{ + "id": "classicalB", + "extensions": [".mch", ".def", ".imp", ".ref"], + "aliases": ["B", "classical B"] + }, + { + "id": "eventB", + "extensions": [".sys"], + "aliases": ["Event-B"] + }] }, "scripts": { "vscode:prepublish": "npm run compile", diff --git a/server/src/server.ts b/server/src/server.ts index deaf0cec2b9a418a223f4d64af8434a1e7a2223a..e21538d1a941954aa327f897802c46688c343f57 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -9,6 +9,7 @@ import { TextDocumentPositionParams, TextDocumentSyncKind, InitializeResult, + TextDocumentItem, } from 'vscode-languageserver'; import { @@ -220,6 +221,9 @@ connection.onCompletion( ); + + + //Can be used to enrich completion with more infos connection.onCompletionResolve( (item : CompletionItem) => {return item})