summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorbscan <10503608+bscan@users.noreply.github.com>2022-11-19 13:51:30 -0500
committerbscan <10503608+bscan@users.noreply.github.com>2022-11-19 13:51:30 -0500
commit6ba380005b103e65cc86a3b4f96e1e391a51c000 (patch)
tree77b14973241a34a49239f21cfd987e6c2e6b2006 /client
parente8432691940a18e29c3b6608e0b2b6c0e188cf06 (diff)
downloadPerlNavigator-6ba380005b103e65cc86a3b4f96e1e391a51c000.zip
Allow working on untitled documents. Fixes #23
Diffstat (limited to 'client')
-rw-r--r--client/src/extension.ts135
1 files changed, 69 insertions, 66 deletions
diff --git a/client/src/extension.ts b/client/src/extension.ts
index 363901e..8a41b8a 100644
--- a/client/src/extension.ts
+++ b/client/src/extension.ts
@@ -1,66 +1,69 @@
-/* --------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- * ------------------------------------------------------------------------------------------ */
-
-import * as path from 'path';
-import { workspace, ExtensionContext } from 'vscode';
-
-import {
- LanguageClient,
- LanguageClientOptions,
- ServerOptions,
- TransportKind
-} from 'vscode-languageclient/node';
-
-let client: LanguageClient;
-
-export function activate(context: ExtensionContext) {
- // The server is implemented in node
- const serverModule = context.asAbsolutePath(
- path.join('server', 'out', 'server.js')
- );
- // The debug options for the server
- // --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging
- const debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] };
-
- // If the extension is launched in debug mode then the debug server options are used
- // Otherwise the run options are used
- const serverOptions: ServerOptions = {
- run: { module: serverModule, transport: TransportKind.ipc },
- debug: {
- module: serverModule,
- transport: TransportKind.ipc,
- options: debugOptions
- }
- };
-
- // Options to control the language client
- const clientOptions: LanguageClientOptions = {
- // Register the server for perl documents
- documentSelector: [{ scheme: 'file', language: 'perl' }],
- synchronize: {
- configurationSection: 'perlnavigator',
- // Notify the server about file changes to '.clientrc files contained in the workspace
- // fileEvents: workspace.createFileSystemWatcher('**/.clientrc')
- }
- };
-
- // Create the language client and start the client.
- client = new LanguageClient(
- 'perlnavigator',
- 'Perl Navigator LSP',
- serverOptions,
- clientOptions
- );
-
- // Start the client. This will also launch the server
- client.start();
-}
-
-export function deactivate(): Thenable<void> | undefined {
- if (!client) {
- return undefined;
- }
- return client.stop();
-}
+/* --------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ * ------------------------------------------------------------------------------------------ */
+
+import * as path from 'path';
+import { workspace, ExtensionContext } from 'vscode';
+
+import {
+ LanguageClient,
+ LanguageClientOptions,
+ ServerOptions,
+ TransportKind
+} from 'vscode-languageclient/node';
+
+let client: LanguageClient;
+
+export function activate(context: ExtensionContext) {
+ // The server is implemented in node
+ const serverModule = context.asAbsolutePath(
+ path.join('server', 'out', 'server.js')
+ );
+ // The debug options for the server
+ // --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging
+ const debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] };
+
+ // If the extension is launched in debug mode then the debug server options are used
+ // Otherwise the run options are used
+ const serverOptions: ServerOptions = {
+ run: { module: serverModule, transport: TransportKind.ipc },
+ debug: {
+ module: serverModule,
+ transport: TransportKind.ipc,
+ options: debugOptions
+ }
+ };
+
+ // Options to control the language client
+ const clientOptions: LanguageClientOptions = {
+ // Register the server for perl documents
+ documentSelector: [
+ { scheme: 'file', language: 'perl' },
+ { scheme: 'untitled', language: 'perl' }
+ ],
+ synchronize: {
+ configurationSection: 'perlnavigator',
+ // Notify the server about file changes to '.clientrc files contained in the workspace
+ // fileEvents: workspace.createFileSystemWatcher('**/.clientrc')
+ }
+ };
+
+ // Create the language client and start the client.
+ client = new LanguageClient(
+ 'perlnavigator',
+ 'Perl Navigator LSP',
+ serverOptions,
+ clientOptions
+ );
+
+ // Start the client. This will also launch the server
+ client.start();
+}
+
+export function deactivate(): Thenable<void> | undefined {
+ if (!client) {
+ return undefined;
+ }
+ return client.stop();
+}