Skip to content

Commit 093a8d5

Browse files
committed
Use the extension path
1 parent a94c31f commit 093a8d5

File tree

8 files changed

+26
-26
lines changed

8 files changed

+26
-26
lines changed

src/CSharpExtDownloader.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ export class CSharpExtDownloader {
2020
private networkSettingsProvider: NetworkSettingsProvider,
2121
private eventStream: EventStream,
2222
private packageJSON: any,
23-
private platformInfo: PlatformInformation) {
23+
private platformInfo: PlatformInformation,
24+
private extensionPath: string) {
2425
}
2526

2627
public async installRuntimeDependencies(): Promise<boolean> {
@@ -33,7 +34,7 @@ export class CSharpExtDownloader {
3334
this.eventStream.post(new LogPlatformInfo(this.platformInfo));
3435
let runTimeDependencies = GetRunTimeDependenciesPackages(this.packageJSON);
3536
installationStage = 'downloadAndInstallPackages';
36-
await DownloadAndInstallPackages(runTimeDependencies, this.networkSettingsProvider, this.platformInfo, this.eventStream);
37+
await DownloadAndInstallPackages(runTimeDependencies, this.networkSettingsProvider, this.platformInfo, this.eventStream, this.extensionPath);
3738
installationStage = 'touchLockFile';
3839
await util.touchInstallFile(util.InstallFileType.Lock);
3940
this.eventStream.post(new InstallationSuccess());

src/main.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<CSharp
112112
let runtimeDependenciesExist = await ensureRuntimeDependencies(extension, eventStream, platformInfo, networkSettingsProvider);
113113

114114
// activate language services
115-
let omniSharpPromise = OmniSharp.activate(context, extension.packageJSON, platformInfo, networkSettingsProvider, eventStream, optionProvider);
115+
let omniSharpPromise = OmniSharp.activate(context, extension.packageJSON, platformInfo, networkSettingsProvider, eventStream, optionProvider, extension.extensionPath);
116116

117117
// register JSON completion & hover providers for project.json
118118
context.subscriptions.push(addJSONProviders());
@@ -142,7 +142,7 @@ async function ensureRuntimeDependencies(extension: vscode.Extension<CSharpExten
142142
return util.installFileExists(util.InstallFileType.Lock)
143143
.then(exists => {
144144
if (!exists) {
145-
const downloader = new CSharpExtDownloader(networkSettingsProvider, eventStream, extension.packageJSON, platformInfo);
145+
const downloader = new CSharpExtDownloader(networkSettingsProvider, eventStream, extension.packageJSON, platformInfo, extension.extensionPath);
146146
return downloader.installRuntimeDependencies();
147147
} else {
148148
return true;

src/omnisharp/OmnisharpDownloader.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ export class OmnisharpDownloader {
1717
private networkSettingsProvider: NetworkSettingsProvider,
1818
private eventStream: EventStream,
1919
private packageJSON: any,
20-
private platformInfo: PlatformInformation) {
20+
private platformInfo: PlatformInformation,
21+
private extensionPath: string) {
2122
}
2223

2324
public async DownloadAndInstallOmnisharp(version: string, serverUrl: string, installPath: string) {
@@ -29,7 +30,7 @@ export class OmnisharpDownloader {
2930
installationStage = 'getPackageInfo';
3031
let packages = GetPackagesFromVersion(version, this.packageJSON.runtimeDependencies, serverUrl, installPath);
3132
installationStage = 'downloadAndInstallPackages';
32-
await DownloadAndInstallPackages(packages, this.networkSettingsProvider, this.platformInfo, this.eventStream);
33+
await DownloadAndInstallPackages(packages, this.networkSettingsProvider, this.platformInfo, this.eventStream, this.extensionPath);
3334
this.eventStream.post(new InstallationSuccess());
3435
}
3536
catch (error) {

src/omnisharp/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ import { StructureProvider } from '../features/structureProvider';
3838

3939
export let omnisharp: OmniSharpServer;
4040

41-
export async function activate(context: vscode.ExtensionContext, packageJSON: any, platformInfo: PlatformInformation, provider: NetworkSettingsProvider, eventStream: EventStream, optionProvider: OptionProvider) {
41+
export async function activate(context: vscode.ExtensionContext, packageJSON: any, platformInfo: PlatformInformation, provider: NetworkSettingsProvider, eventStream: EventStream, optionProvider: OptionProvider, extensionPath: string) {
4242
const documentSelector: vscode.DocumentSelector = {
4343
language: 'csharp',
4444
scheme: 'file' // only files from disk
4545
};
4646

4747
const options = optionProvider.GetLatestOptions();
48-
const server = new OmniSharpServer(vscode, provider, packageJSON, platformInfo, eventStream, optionProvider);
48+
const server = new OmniSharpServer(vscode, provider, packageJSON, platformInfo, eventStream, optionProvider, extensionPath);
4949
omnisharp = server;
5050
const advisor = new Advisor(server); // create before server is started
5151
const disposables = new CompositeDisposable();

src/omnisharp/server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ export class OmniSharpServer {
9191
private updateProjectDebouncer = new Subject<ObservableEvents.ProjectModified>();
9292
private firstUpdateProject: boolean;
9393

94-
constructor(private vscode: vscode, networkSettingsProvider: NetworkSettingsProvider, private packageJSON: any, private platformInfo: PlatformInformation, private eventStream: EventStream, private optionProvider: OptionProvider) {
94+
constructor(private vscode: vscode, networkSettingsProvider: NetworkSettingsProvider, private packageJSON: any, private platformInfo: PlatformInformation, private eventStream: EventStream, private optionProvider: OptionProvider, extensionPath: string) {
9595
this._requestQueue = new RequestQueueCollection(this.eventStream, 8, request => this._makeRequest(request));
96-
let downloader = new OmnisharpDownloader(networkSettingsProvider, this.eventStream, this.packageJSON, platformInfo);
96+
let downloader = new OmnisharpDownloader(networkSettingsProvider, this.eventStream, this.packageJSON, platformInfo, extensionPath);
9797
this._omnisharpManager = new OmnisharpManager(downloader, platformInfo);
9898
this.updateProjectDebouncer.debounceTime(1500).subscribe((event) => { this.updateProjectInfo(); });
9999
this.firstUpdateProject = true;

src/packageManager/InstallablePackage.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import { IPackage, Package } from "./Package";
77
import { AbsolutePath } from "./AbsolutePath";
8-
import { getExtensionPath } from "../common";
98

109
export class InstallablePackage implements IPackage{
1110
constructor(public description: string,
@@ -19,43 +18,42 @@ export class InstallablePackage implements IPackage{
1918
public platformId?: string) {
2019
}
2120

22-
public static getInstallablePackage(pkg: Package) {
21+
public static getInstallablePackage(pkg: Package, extensionPath: string) {
2322
return new InstallablePackage(
2423
pkg.description,
2524
pkg.url,
2625
pkg.platforms,
2726
pkg.architectures,
28-
getAbsoluteBinaries(pkg),
29-
getAbsoluteInstallPath(pkg),
30-
getAbsoluteInstallTestPath(pkg),
27+
getAbsoluteBinaries(pkg, extensionPath),
28+
getAbsoluteInstallPath(pkg, extensionPath),
29+
getAbsoluteInstallTestPath(pkg, extensionPath),
3130
pkg.fallbackUrl,
3231
pkg.platformId
3332
);
3433
}
3534
}
3635

37-
function getAbsoluteInstallTestPath(pkg: Package): AbsolutePath {
36+
function getAbsoluteInstallTestPath(pkg: Package, extensionPath: string): AbsolutePath {
3837
if (pkg.installTestPath) {
39-
return AbsolutePath.getAbsolutePath(getExtensionPath(), pkg.installTestPath);
38+
return AbsolutePath.getAbsolutePath(extensionPath, pkg.installTestPath);
4039
}
4140

4241
return null;
4342
}
4443

45-
function getAbsoluteBinaries(pkg: Package): AbsolutePath[] {
46-
let basePath = getAbsoluteInstallPath(pkg).path;
44+
function getAbsoluteBinaries(pkg: Package, extensionPath: string): AbsolutePath[] {
45+
let basePath = getAbsoluteInstallPath(pkg, extensionPath).path;
4746
if (pkg.binaries) {
4847
return pkg.binaries.map(value => AbsolutePath.getAbsolutePath(basePath, value));
4948
}
5049

5150
return null;
5251
}
5352

54-
function getAbsoluteInstallPath(pkg: Package): AbsolutePath {
55-
let basePath = getExtensionPath();
53+
function getAbsoluteInstallPath(pkg: Package, extensionPath: string): AbsolutePath {
5654
if (pkg.installPath) {
57-
return AbsolutePath.getAbsolutePath(basePath, pkg.installPath);
55+
return AbsolutePath.getAbsolutePath(extensionPath, pkg.installPath);
5856
}
5957

60-
return new AbsolutePath(basePath);
58+
return new AbsolutePath(extensionPath);
6159
}

test/unitTests/OmnisharpPackageCreator.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { assert, should, expect } from "chai";
77
import { SetBinaryAndGetPackage, GetPackagesFromVersion } from "../../src/omnisharp/OmnisharpPackageCreator";
8-
import { IPackage, Package } from "../../src/packageManager/Package";
8+
import { Package } from "../../src/packageManager/Package";
99
import { testPackageJSON } from "./testAssets/testAssets";
1010

1111
suite("GetOmnisharpPackage : Output package depends on the input package and other input parameters like serverUrl", () => {

test/unitTests/logging/TelemetryObserver.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { TelemetryObserver } from '../../../src/observers/TelemetryObserver';
77
import { PlatformInformation } from '../../../src/platform';
88
import { PackageInstallation, InstallationFailure, InstallationSuccess, TestExecutionCountReport, TelemetryEventWithMeasures, OmnisharpDelayTrackerEventMeasures, OmnisharpStart } from '../../../src/omnisharp/loggingEvents';
99
import { getNullTelemetryReporter } from '../testAssets/Fakes';
10-
import { IPackage } from '../../../src/packageManager/Package';
10+
import { Package } from '../../../src/packageManager/Package';
1111
import { PackageError } from '../../../src/packageManager/PackageError';
1212

1313
const chai = require('chai');
@@ -71,7 +71,7 @@ suite('TelemetryReporterObserver', () => {
7171
});
7272

7373
test(`Telemetry Props contains message and packageUrl if error is package error`, () => {
74-
let error = new PackageError("someError", <IPackage>{ "description": "foo", "url": "someurl" });
74+
let error = new PackageError("someError", <Package>{ "description": "foo", "url": "someurl" });
7575
let event = new InstallationFailure("someStage", error);
7676
observer.post(event);
7777
expect(property).to.have.property("error.message", error.message);

0 commit comments

Comments
 (0)