diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..0e191b5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +// A launch configuration that launches the extension inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ] + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index f3577b2..7879060 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "activationEvents": [ "onLanguage:ros1" ], - "main": "out/extension", + "main": "out/extension.js", "contributes": { "languages": [ { diff --git a/src/extension.ts b/src/extension.ts index d737218..6f3b6a4 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,28 +1,44 @@ 'use strict'; -import * as net from 'net'; +// import * as net from 'net'; +import { spawn } from 'child_process'; +import * as path from 'path'; //import {Trace} from 'vscode-jsonrpc'; //import { window, workspace, commands, ExtensionContext, Uri } from 'vscode'; import { workspace, ExtensionContext } from 'vscode'; -import { LanguageClient, LanguageClientOptions, StreamInfo } from 'vscode-languageclient/node'; +import { LanguageClient, LanguageClientOptions } from 'vscode-languageclient/node'; let lc: LanguageClient; export function activate(context: ExtensionContext) { - // The server is a started as a separate app and listens on port 5007 - let connectionInfo = { - host: "localhost", - port: 5008 - }; - let serverOptions = () => { - // Connect to language server via socket - let socket = net.connect(connectionInfo); - let result: StreamInfo = { - writer: socket, - reader: socket - }; - return Promise.resolve(result); + // // The server is a started as a separate app and listens on port 5007 + // let connectionInfo = { + // host: "localhost", + // port: 5008 + // }; + // let serverOptions = () => { + // // Connect to language server via socket + // let socket = net.connect(connectionInfo); + // let result: StreamInfo = { + // writer: socket, + // reader: socket + // }; + // return Promise.resolve(result); + // }; + + var serverOptions = function () { + // Connect to the language server via a io channel + var jar = context.asAbsolutePath(path.join('resources', 'de.fraunhofer.ipa.ros.xtext.ide-3.0.0-SNAPSHOT-ls.jar')); + var child = spawn('java', ['-Xdebug', '-Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n,quiet=y', '-jar', jar, '-log debug']); + console.log(child.stdout.toString()); + child.stdout.on('data', function (chunk) { + console.log(chunk.toString()); + }); + child.stderr.on('data', function (chunk) { + console.error(chunk.toString()); + }); + return Promise.resolve(child); }; let clientOptions: LanguageClientOptions = { @@ -31,7 +47,7 @@ export function activate(context: ExtensionContext) { fileEvents: workspace.createFileSystemWatcher('**/*.*') } }; - + // Create the language client and start the client. lc = new LanguageClient('Xtext Server', serverOptions, clientOptions); diff --git a/syntaxes/ros.tmLanguage.json b/syntaxes/ros.tmLanguage.json index ad07845..4db0392 100644 --- a/syntaxes/ros.tmLanguage.json +++ b/syntaxes/ros.tmLanguage.json @@ -31,7 +31,6 @@ } ] } - }, - "scopeName": "source.ros1" + } }