Skip to content
This repository has been archived by the owner on Jan 29, 2025. It is now read-only.

Commit

Permalink
Use node server in extension server factory
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonpaulos committed Nov 27, 2023
1 parent 5390e66 commit 1eca330
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions extension/src/serverDescriptorFactory.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,35 @@
import * as Net from 'net';
import * as vscode from 'vscode';
import { ProviderResult } from 'vscode';
import { AvmDebugSession } from '../../src/common';
import { Server as DebugAdapterServer } from '../../src/node';
import { workspaceFileAccessor } from './fileAccessor';

export class ServerDebugAdapterFactory
implements vscode.DebugAdapterDescriptorFactory
{
private server?: Net.Server;
private server?: DebugAdapterServer;

createDebugAdapterDescriptor(
_session: vscode.DebugSession,
_executable: vscode.DebugAdapterExecutable | undefined,
): ProviderResult<vscode.DebugAdapterDescriptor> {
if (!this.server) {
this.server = Net.createServer((socket) => {
const session = new AvmDebugSession(workspaceFileAccessor);
session.setRunAsServer(true);
session.start(socket as NodeJS.ReadableStream, socket);
}).listen(0);
this.server = new DebugAdapterServer({
fileAccessor: workspaceFileAccessor,
port: 0,
onSocketError: (err) => {
vscode.window.showErrorMessage(
`Debugger adapter socket error: ${err.message}`,
);
},
onServerError: (err) => {
vscode.window.showErrorMessage(
`Debugger adapter server error: ${err.message}`,
);
},
});
}

return new vscode.DebugAdapterServer(
(this.server.address() as Net.AddressInfo).port,
);
return new vscode.DebugAdapterServer(this.server.port());
}

dispose() {
Expand Down

0 comments on commit 1eca330

Please sign in to comment.