Skip to content

Commit a06b9d3

Browse files
committed
(GH-100) Refactor the Extension for common simple interfaces
The Debug Adapter requires similar object and configuration options from the extension. This commit refactors out the simple interfaces (i.e. cannot include complex types, particularly from the vscode namespace) so that it can be consumed by an out-of-process DebugAdapter.
1 parent ba4a2cd commit a06b9d3

File tree

6 files changed

+36
-28
lines changed

6 files changed

+36
-28
lines changed

client/src/commands/puppet/puppetResourceCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
22

33
import * as vscode from 'vscode';
4-
import { IConnectionManager, ConnectionStatus } from '../../connection';
4+
import { ConnectionStatus } from '../../interfaces';
5+
import { IConnectionManager } from '../../connection';
56
import { ILogger } from '../../logging';
67
import { reporter } from '../../telemetry/telemetry';
78
import * as messages from '../../messages';

client/src/configuration.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
import * as vscode from 'vscode';
44

5-
import { ConnectionManager, IConnectionConfiguration, ConnectionType } from './connection';
5+
import { IConnectionConfiguration, ConnectionType } from './interfaces';
6+
import { ConnectionManager } from './connection';
67

78
export class ConnectionConfiguration implements IConnectionConfiguration {
89
public type: ConnectionType = ConnectionType.Unknown;

client/src/connection.ts

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import path = require('path');
33
import vscode = require('vscode');
44
import cp = require('child_process');
55
import { ILogger } from '../src/logging';
6+
import { IConnectionConfiguration, ConnectionStatus, ConnectionType } from './interfaces'
67
import { LanguageClient, LanguageClientOptions, ServerOptions } from 'vscode-languageclient';
78
import { ConnectionConfiguration } from './configuration';
89
import { setupPuppetCommands } from '../src/commands/puppetcommands';
@@ -13,30 +14,6 @@ import fs = require('fs');
1314

1415
const langID = 'puppet'; // don't change this
1516

16-
export enum ConnectionStatus {
17-
NotStarted,
18-
Starting,
19-
Running,
20-
Stopping,
21-
Failed
22-
}
23-
24-
export enum ConnectionType {
25-
Unknown,
26-
Local,
27-
Remote
28-
}
29-
30-
export interface IConnectionConfiguration {
31-
type: ConnectionType;
32-
host: string;
33-
port: number;
34-
timeout: number;
35-
preLoadPuppet: boolean;
36-
debugFilePath: string;
37-
puppetAgentDir: string;
38-
}
39-
4017
export interface IConnectionManager {
4118
status: ConnectionStatus;
4219
languageClient: LanguageClient;

client/src/extension.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import * as vscode from 'vscode';
44
import * as path from 'path';
55

6-
import { ConnectionManager, IConnectionConfiguration, ConnectionType } from './connection';
6+
import { IConnectionConfiguration, ConnectionType } from './interfaces';
7+
import { ConnectionManager } from './connection';
78
import { ConnectionConfiguration } from './configuration';
89
import { ILogger } from './logging';
910
import { OutputChannelLogger } from './logging/outputchannel';

client/src/interfaces.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'use strict';
2+
3+
// Only add simple interfaces here. No import's allowed
4+
5+
export enum ConnectionStatus {
6+
NotStarted,
7+
Starting,
8+
Running,
9+
Stopping,
10+
Failed
11+
}
12+
13+
export enum ConnectionType {
14+
Unknown,
15+
Local,
16+
Remote
17+
}
18+
19+
export interface IConnectionConfiguration {
20+
type: ConnectionType;
21+
host: string;
22+
port: number;
23+
timeout: number;
24+
preLoadPuppet: boolean;
25+
debugFilePath: string;
26+
puppetAgentDir: string;
27+
}

client/src/providers/previewNodeGraphProvider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import * as vscode from 'vscode';
44
import * as path from 'path';
55
import { CompileNodeGraphRequest } from '../messages';
6-
import { IConnectionManager, ConnectionStatus } from '../connection';
6+
import { ConnectionStatus } from '../interfaces';
7+
import { IConnectionManager } from '../connection';
78
import { reporter } from '../telemetry/telemetry';
89
import * as messages from '../messages';
910
import * as viz from 'viz.js';

0 commit comments

Comments
 (0)