Skip to content

Commit 439e439

Browse files
authored
Merge pull request #2243 from akshita31/update_offline_packaging
Update offline packaging for release
2 parents 819247d + 903f526 commit 439e439

21 files changed

+185
-151
lines changed

package.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
"keywords": [
2525
"multi-root ready"
2626
],
27+
"defaults":{
28+
"omniSharp" : "1.30.0"
29+
},
2730
"main": "./out/src/main",
2831
"scripts": {
2932
"vscode:prepublish": "tsc -p ./",
@@ -143,7 +146,7 @@
143146
"description": "OmniSharp for Windows (.NET 4.6 / x86)",
144147
"url": "https://download.visualstudio.microsoft.com/download/pr/12168336/be303385c06ad88bc3e33fa38cc09760/omnisharp-win-x86-1.30.0.zip",
145148
"fallbackUrl": "https://omnisharpdownload.blob.core.windows.net/ext/omnisharp-win-x86-1.30.0.zip",
146-
"installPath": ".omnisharp",
149+
"installPath": ".omnisharp/1.30.0",
147150
"platforms": [
148151
"win32"
149152
],
@@ -157,7 +160,7 @@
157160
"description": "OmniSharp for Windows (.NET 4.6 / x64)",
158161
"url": "https://download.visualstudio.microsoft.com/download/pr/12168337/159fcd61baf209a6b10d371fa5b2817d/omnisharp-win-x64-1.30.0.zip",
159162
"fallbackUrl": "https://omnisharpdownload.blob.core.windows.net/ext/omnisharp-win-x64-1.30.0.zip",
160-
"installPath": ".omnisharp",
163+
"installPath": ".omnisharp/1.30.0",
161164
"platforms": [
162165
"win32"
163166
],
@@ -171,7 +174,7 @@
171174
"description": "OmniSharp for OSX",
172175
"url": "https://download.visualstudio.microsoft.com/download/pr/12168334/94b1fbb0c67cb3320c8eaaa75fa49c5d/omnisharp-osx-1.30.0.zip",
173176
"fallbackUrl": "https://omnisharpdownload.blob.core.windows.net/ext/omnisharp-osx-1.30.0.zip",
174-
"installPath": ".omnisharp",
177+
"installPath": ".omnisharp/1.30.0",
175178
"platforms": [
176179
"darwin"
177180
],
@@ -186,7 +189,7 @@
186189
"description": "OmniSharp for Linux (x86)",
187190
"url": "https://download.visualstudio.microsoft.com/download/pr/12168335/c8f77432262698d7012ce1105588f974/omnisharp-linux-x86-1.30.0.zip",
188191
"fallbackUrl": "https://omnisharpdownload.blob.core.windows.net/ext/omnisharp-linux-x86-1.30.0.zip",
189-
"installPath": ".omnisharp",
192+
"installPath": ".omnisharp/1.30.0",
190193
"platforms": [
191194
"linux"
192195
],
@@ -205,7 +208,7 @@
205208
"description": "OmniSharp for Linux (x64)",
206209
"url": "https://download.visualstudio.microsoft.com/download/pr/12168333/63644667dd9c8a6320d3aef3ac2fb901/omnisharp-linux-x64-1.30.0.zip",
207210
"fallbackUrl": "https://omnisharpdownload.blob.core.windows.net/ext/omnisharp-linux-x64-1.30.0.zip",
208-
"installPath": ".omnisharp",
211+
"installPath": ".omnisharp/1.30.0",
209212
"platforms": [
210213
"linux"
211214
],

src/CompositeDisposable.ts

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,32 @@
11
/*---------------------------------------------------------------------------------------------
22
* Copyright (c) Microsoft Corporation. All rights reserved.
33
* Licensed under the MIT License. See License.txt in the project root for license information.
4-
*--------------------------------------------------------------------------------------------*/
5-
6-
import { Subscription } from "rxjs/Subscription";
7-
import Disposable from "./Disposable";
8-
9-
export default class CompositeDisposable extends Disposable {
10-
private disposables = new Subscription();
11-
12-
constructor (...disposables: Disposable[]){
13-
super(() => this.disposables.unsubscribe());
14-
15-
for (const disposable of disposables) {
16-
if (disposable) {
17-
this.disposables.add(disposable.dispose);
18-
}
19-
else {
20-
throw new Error("null disposables are not supported");
21-
}
22-
}
23-
}
24-
25-
public add(disposable: Disposable | {(): void}) {
26-
if (!disposable) {
27-
throw new Error("disposable cannot be null");
28-
}
29-
30-
const actualDisposable =
31-
disposable.constructor.name === Disposable.name
32-
? <Disposable>disposable
33-
: new Disposable(<{(): void}>disposable);
34-
35-
this.disposables.add(actualDisposable.dispose);
36-
}
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { Subscription } from "rxjs/Subscription";
7+
import Disposable, { IDisposable } from "./Disposable";
8+
9+
export default class CompositeDisposable extends Disposable {
10+
private disposables = new Subscription();
11+
12+
constructor(...disposables: IDisposable[]) {
13+
super(() => this.disposables.unsubscribe());
14+
15+
for (const disposable of disposables) {
16+
if (disposable) {
17+
this.add(disposable);
18+
}
19+
else {
20+
throw new Error("null disposables are not supported");
21+
}
22+
}
23+
}
24+
25+
public add(disposable: IDisposable) {
26+
if (!disposable) {
27+
throw new Error("disposable cannot be null");
28+
}
29+
30+
this.disposables.add(() => disposable.dispose());
31+
}
3732
}

src/Disposable.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,29 @@
22
* Copyright (c) Microsoft Corporation. All rights reserved.
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
5+
import { Subscription } from "rxjs/Subscription";
56

6-
export default class Disposable {
7+
export default class Disposable implements IDisposable {
78
private onDispose: { (): void };
89

9-
constructor(onDispose: { (): void }) {
10+
constructor(onDispose: { (): void } | Subscription) {
1011
if (!onDispose) {
1112
throw new Error("onDispose cannot be null or empty.");
1213
}
13-
14-
this.onDispose = onDispose;
14+
15+
if (onDispose instanceof Subscription) {
16+
this.onDispose = () => onDispose.unsubscribe();
17+
}
18+
else {
19+
this.onDispose = onDispose;
20+
}
1521
}
1622

1723
public dispose = (): void => {
1824
this.onDispose();
1925
}
2026
}
27+
28+
export interface IDisposable {
29+
dispose: () => void;
30+
}

src/features/abstractProvider.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,24 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { Disposable } from 'vscode';
76
import { OmniSharpServer } from '../omnisharp/server';
7+
import CompositeDisposable from '../CompositeDisposable';
88

99
export default abstract class AbstractProvider {
1010

1111
protected _server: OmniSharpServer;
12-
private _disposables: Disposable[];
12+
private _disposables: CompositeDisposable;
1313

1414
constructor(server: OmniSharpServer) {
1515
this._server = server;
16-
this._disposables = [];
16+
this._disposables = new CompositeDisposable();
1717
}
1818

19-
protected addDisposables(...disposables: Disposable[]) {
20-
this._disposables.push(...disposables);
19+
protected addDisposables(disposables: CompositeDisposable) {
20+
this._disposables.add(disposables);
2121
}
2222

23-
dispose() {
24-
while (this._disposables.length) {
25-
this._disposables.pop().dispose();
26-
}
23+
dispose = () => {
24+
this._disposables.dispose();
2725
}
2826
}

src/features/changeForwarding.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import {Disposable, Uri, workspace} from 'vscode';
6+
import {Uri, workspace} from 'vscode';
77
import {OmniSharpServer} from '../omnisharp/server';
88
import * as serverUtils from '../omnisharp/utils';
99
import { FileChangeType } from '../omnisharp/protocol';
10+
import { IDisposable } from '../Disposable';
11+
import CompositeDisposable from '../CompositeDisposable';
1012

11-
function forwardDocumentChanges(server: OmniSharpServer): Disposable {
13+
function forwardDocumentChanges(server: OmniSharpServer): IDisposable {
1214

1315
return workspace.onDidChangeTextDocument(event => {
1416

@@ -28,7 +30,7 @@ function forwardDocumentChanges(server: OmniSharpServer): Disposable {
2830
});
2931
}
3032

31-
function forwardFileChanges(server: OmniSharpServer): Disposable {
33+
function forwardFileChanges(server: OmniSharpServer): IDisposable {
3234

3335
function onFileSystemEvent(changeType: FileChangeType): (uri: Uri) => void {
3436
return function(uri: Uri)
@@ -51,13 +53,13 @@ function forwardFileChanges(server: OmniSharpServer): Disposable {
5153
let d2 = watcher.onDidDelete(onFileSystemEvent(FileChangeType.Delete));
5254
let d3 = watcher.onDidChange(onFileSystemEvent(FileChangeType.Change));
5355

54-
return Disposable.from(watcher, d1, d2, d3);
56+
return new CompositeDisposable(watcher, d1, d2, d3);
5557
}
5658

57-
export default function forwardChanges(server: OmniSharpServer): Disposable {
59+
export default function forwardChanges(server: OmniSharpServer): IDisposable {
5860

5961
// combine file watching and text document watching
60-
return Disposable.from(
62+
return new CompositeDisposable(
6163
forwardDocumentChanges(server),
6264
forwardFileChanges(server));
6365
}

src/features/codeActionProvider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import * as serverUtils from '../omnisharp/utils';
1212
import { Options } from '../omnisharp/options';
1313
import { FileModificationType } from '../omnisharp/protocol';
1414
import { Uri } from 'vscode';
15+
import CompositeDisposable from '../CompositeDisposable';
1516

1617
export default class CodeActionProvider extends AbstractProvider implements vscode.CodeActionProvider {
1718

@@ -27,7 +28,7 @@ export default class CodeActionProvider extends AbstractProvider implements vsco
2728

2829
let d1 = vscode.workspace.onDidChangeConfiguration(this._resetCachedOptions, this);
2930
let d2 = vscode.commands.registerCommand(this._commandId, this._runCodeAction, this);
30-
this.addDisposables(d1, d2);
31+
this.addDisposables(new CompositeDisposable(d1, d2));
3132
}
3233

3334
private _resetCachedOptions(): void {

src/features/codeLensProvider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import AbstractProvider from './abstractProvider';
1313
import { OmniSharpServer } from '../omnisharp/server';
1414
import { Options } from '../omnisharp/options';
1515
import TestManager from './dotnetTest';
16+
import CompositeDisposable from '../CompositeDisposable';
1617

1718
class OmniSharpCodeLens extends vscode.CodeLens {
1819

@@ -34,7 +35,7 @@ export default class OmniSharpCodeLensProvider extends AbstractProvider implemen
3435
this._resetCachedOptions();
3536

3637
let configChangedDisposable = vscode.workspace.onDidChangeConfiguration(this._resetCachedOptions, this);
37-
this.addDisposables(configChangedDisposable);
38+
this.addDisposables(new CompositeDisposable(configChangedDisposable));
3839
}
3940

4041
private _resetCachedOptions(): void {

src/features/commands.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ import { getAdapterExecutionCommand } from '../coreclr-debug/activate';
1717
import { CommandShowOutput, CommandDotNetRestoreStart, CommandDotNetRestoreProgress, CommandDotNetRestoreSucceeded, CommandDotNetRestoreFailed } from '../omnisharp/loggingEvents';
1818
import { EventStream } from '../EventStream';
1919
import { PlatformInformation } from '../platform';
20+
import CompositeDisposable from '../CompositeDisposable';
2021

21-
export default function registerCommands(server: OmniSharpServer, eventStream: EventStream, platformInfo: PlatformInformation) {
22+
export default function registerCommands(server: OmniSharpServer, eventStream: EventStream, platformInfo: PlatformInformation): CompositeDisposable {
2223
let d1 = vscode.commands.registerCommand('o.restart', () => restartOmniSharp(server));
2324
let d2 = vscode.commands.registerCommand('o.pickProjectAndStart', () => pickProjectAndStart(server));
2425
let d3 = vscode.commands.registerCommand('o.showOutput', () => eventStream.post(new CommandShowOutput()));
@@ -50,7 +51,7 @@ export default function registerCommands(server: OmniSharpServer, eventStream: E
5051
let d9 = vscode.commands.registerCommand('csharp.coreclrAdapterExecutableCommand', async (args) => getAdapterExecutionCommand(platformInfo, eventStream));
5152
let d10 = vscode.commands.registerCommand('csharp.clrAdapterExecutableCommand', async (args) => getAdapterExecutionCommand(platformInfo, eventStream));
5253

53-
return vscode.Disposable.from(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10);
54+
return new CompositeDisposable(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10);
5455
}
5556

5657
function restartOmniSharp(server: OmniSharpServer) {

src/features/definitionMetadataDocumentProvider.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { Disposable, TextDocument, TextDocumentContentProvider, Uri, workspace } from 'vscode';
7-
6+
import { TextDocument, TextDocumentContentProvider, Uri, workspace } from 'vscode';
87
import { MetadataResponse } from '../omnisharp/protocol';
8+
import { IDisposable } from '../Disposable';
99

10-
export default class DefinitionMetadataDocumentProvider implements TextDocumentContentProvider, Disposable {
10+
export default class DefinitionMetadataDocumentProvider implements TextDocumentContentProvider, IDisposable {
1111
readonly scheme = "omnisharp-metadata";
12-
private _registration : Disposable;
12+
private _registration : IDisposable;
1313
private _documents: Map<string, MetadataResponse>;
14-
private _documentClosedSubscription: Disposable;
14+
private _documentClosedSubscription: IDisposable;
1515

1616
constructor() {
1717
this._documents = new Map<string, MetadataResponse>();

src/features/diagnosticsProvider.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ import * as protocol from '../omnisharp/protocol';
99
import * as serverUtils from '../omnisharp/utils';
1010
import { toRange } from '../omnisharp/typeConvertion';
1111
import * as vscode from 'vscode';
12+
import CompositeDisposable from '../CompositeDisposable';
13+
import { IDisposable } from '../Disposable';
1214

1315
export class Advisor {
1416

15-
private _disposable: vscode.Disposable;
17+
private _disposable: CompositeDisposable;
1618
private _server: OmniSharpServer;
1719
private _packageRestoreCounter: number = 0;
1820
private _projectSourceFileCounts: { [path: string]: number } = Object.create(null);
@@ -25,7 +27,7 @@ export class Advisor {
2527
let d3 = server.onProjectRemoved(this._onProjectRemoved, this);
2628
let d4 = server.onBeforePackageRestore(this._onBeforePackageRestore, this);
2729
let d5 = server.onPackageRestore(this._onPackageRestore, this);
28-
this._disposable = vscode.Disposable.from(d1, d2, d3, d4, d5);
30+
this._disposable = new CompositeDisposable(d1, d2, d3, d4, d5);
2931
}
3032

3133
public dispose() {
@@ -108,14 +110,14 @@ export class Advisor {
108110
}
109111
}
110112

111-
export default function reportDiagnostics(server: OmniSharpServer, advisor: Advisor): vscode.Disposable {
113+
export default function reportDiagnostics(server: OmniSharpServer, advisor: Advisor): IDisposable {
112114
return new DiagnosticsProvider(server, advisor);
113115
}
114116

115117
class DiagnosticsProvider extends AbstractSupport {
116118

117119
private _validationAdvisor: Advisor;
118-
private _disposable: vscode.Disposable;
120+
private _disposable: CompositeDisposable;
119121
private _documentValidations: { [uri: string]: vscode.CancellationTokenSource } = Object.create(null);
120122
private _projectValidation: vscode.CancellationTokenSource;
121123
private _diagnostics: vscode.DiagnosticCollection;
@@ -131,7 +133,7 @@ class DiagnosticsProvider extends AbstractSupport {
131133
let d4 = vscode.workspace.onDidOpenTextDocument(event => this._onDocumentAddOrChange(event), this);
132134
let d3 = vscode.workspace.onDidChangeTextDocument(event => this._onDocumentAddOrChange(event.document), this);
133135
let d5 = vscode.workspace.onDidCloseTextDocument(this._onDocumentRemove, this);
134-
this._disposable = vscode.Disposable.from(this._diagnostics, d1, d2, d3, d4, d5);
136+
this._disposable = new CompositeDisposable(this._diagnostics, d1, d2, d3, d4, d5);
135137

136138
// Go ahead and check for diagnostics in the currently visible editors.
137139
for (let editor of vscode.window.visibleTextEditors) {
@@ -142,7 +144,7 @@ class DiagnosticsProvider extends AbstractSupport {
142144
}
143145
}
144146

145-
public dispose(): void {
147+
public dispose = () => {
146148
if (this._projectValidation) {
147149
this._projectValidation.dispose();
148150
}

0 commit comments

Comments
 (0)