@vscode/sync-api-client
TypeScript icon, indicating that this package has built-in type declarations

0.8.1 • Public • Published

VS Code Sync API Client

Build Status

This npm module implements a client that allows accessing VS Code API in sync from from a worker different than the extension host worker. The actually implementation depends on @vscode/syc-api-common.

History

0.8.0

  • replaced terminal/read and terminal/write with characterDevice/read and characterDevice/write to support character devices in general and not only ttys.

Example

Extension host worker that offers access to VS Code extension host API. The setup in the extension host code looks like this:

import { ServiceConnection } from '@vscode/sync-api-common/browser';
import { APIRequests, ApiService } from '@vscode/sync-api-service';

const worker = new Worker(...);
const connection = new ServiceConnection<APIRequests>(worker);
const apiService = new ApiService('Worker Name', connection);

// A terminal in case the worker write to one.
const terminal = window.createTerminal({ name: 'Worker name', pty: apiService.getPty() });
terminal.show();


connection.signalReady();

The worker side looks as follows:

import { ClientConnection } from '@vscode/sync-api-common/browser';
import { ApiClient, APIRequests } from '@vscode/sync-api-client';

const connection = new ClientConnection<APIRequests>(parentPort);
await connection.serviceReady();

const apiClient = new ApiClient(connection);
// Get the current workspace folders.
const workspaceFolders = apiClient.vscode.workspace.workspaceFolders;

// Read a file for a given uri
const content = apiClient.vscode.workspace.filesystem.readFile(uri);

For code executed in the desktop exchange the import @vscode/sync-api-common/browser with @vscode/sync-api-common/node.

Readme

Keywords

Package Sidebar

Install

npm i @vscode/sync-api-client

Weekly Downloads

3,215

Version

0.8.1

License

MIT

Unpacked Size

32.2 kB

Total Files

11

Last publish

Collaborators

  • microsoft1es
  • joaomoreno.ms
  • sbatten
  • alexandrudima
  • lszomoru
  • kaimaetzel
  • vscode-bot