mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-29 19:15:00 +01:00
Removes the separate language server binary; I'm not sure we need to provide it. Instead, `carbon language-server` is added as a subcommand. Moves //language_server to //toolchain/language_server. Splits into a trivial language_server.h, and a substantive server.h. I wasn't sure about a better name, but wanted the split similar to check/check.h, lex/lex.h, etc. At the same time, the class is probably going to be a little big so not a good fit to through into just a cpp file. This fixes some style issues with the language server class, but generally I'm trying to not address things here in order to keep it simpler.
38 lines
898 B
JavaScript
38 lines
898 B
JavaScript
/*
|
|
* Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
* Exceptions. See /LICENSE for license information.
|
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
*/
|
|
|
|
const { LanguageClient } = require('vscode-languageclient/node');
|
|
|
|
function activate(context) {
|
|
const command = './bazel-bin/toolchain/install/run_carbon';
|
|
const args = ['language-server'];
|
|
const serverOptions = {
|
|
run: { command: command, args: args },
|
|
debug: { command: command, args: args },
|
|
};
|
|
|
|
const clientOptions = {
|
|
documentSelector: [{ scheme: 'file', language: 'carbon' }],
|
|
};
|
|
|
|
const client = new LanguageClient(
|
|
'languageServer',
|
|
'Language Server for Carbon',
|
|
serverOptions,
|
|
clientOptions
|
|
);
|
|
|
|
// stop client on shutdown
|
|
context.subscriptions.push(client.start());
|
|
}
|
|
|
|
function deactivate() {}
|
|
|
|
module.exports = {
|
|
activate,
|
|
deactivate,
|
|
};
|