forked from microsoft/vscode-cpptools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcppTools1.ts
More file actions
97 lines (76 loc) · 2.86 KB
/
Copy pathcppTools1.ts
File metadata and controls
97 lines (76 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
'use strict';
import { CustomConfigurationProvider, Version, CppToolsApi, CppToolsExtension } from 'vscode-cpptools';
import { CppToolsTestApi, CppToolsTestHook, CppToolsTestExtension } from 'vscode-cpptools/out/testApi';
import { CppTools } from './cppTools';
/**
* This class implements both interfaces since the extension returned CppToolsApi for v0,
* but returns CppToolsTestExtension for v1 and later.
*/
export class CppTools1 implements CppToolsTestApi, CppToolsTestExtension {
private backupApi?: CppTools;
private get BackupApi(): CppToolsTestApi {
if (!this.backupApi) {
this.backupApi = new CppTools(Version.v0);
}
return this.backupApi;
}
getApi(version: Version): CppToolsApi {
switch (version) {
case Version.v0:
return this.BackupApi;
default:
return new CppTools(version);
}
}
getTestApi(version: Version): CppToolsTestApi {
return <CppToolsTestApi>this.getApi(version);
}
getVersion(): Version {
return this.BackupApi.getVersion();
}
registerCustomConfigurationProvider(provider: CustomConfigurationProvider): void {
this.BackupApi.registerCustomConfigurationProvider(provider);
}
notifyReady(provider: CustomConfigurationProvider): void {
this.BackupApi.notifyReady(provider);
}
didChangeCustomConfiguration(provider: CustomConfigurationProvider): void {
this.BackupApi.didChangeCustomConfiguration(provider);
}
didChangeCustomBrowseConfiguration(provider: CustomConfigurationProvider): void {
this.BackupApi.didChangeCustomBrowseConfiguration(provider);
}
dispose(): void {
}
getTestHook(): CppToolsTestHook {
return this.BackupApi.getTestHook();
}
}
/**
* This is an empty implementation of the API. Used when the extension is activated on
* an unsupported platform.
*/
export class NullCppTools implements CppToolsApi, CppToolsExtension {
private version: Version = Version.v0;
getApi(version: Version): CppToolsApi {
this.version = version;
return this;
}
getVersion(): Version {
return this.version;
}
registerCustomConfigurationProvider(provider: CustomConfigurationProvider): void {
}
notifyReady(provider: CustomConfigurationProvider): void {
}
didChangeCustomConfiguration(provider: CustomConfigurationProvider): void {
}
didChangeCustomBrowseConfiguration(provider: CustomConfigurationProvider): void {
}
dispose(): void {
}
}