77
88import { illegalArgument , onUnexpectedExternalError } from 'vs/base/common/errors' ;
99import { URI } from 'vs/base/common/uri' ;
10- import { TPromise } from 'vs/base/common/winjs.base' ;
1110import { Range } from 'vs/editor/common/core/range' ;
1211import { ITextModel } from 'vs/editor/common/model' ;
1312import { registerLanguageCommand } from 'vs/editor/browser/editorExtensions' ;
1413import { DocumentSymbol , DocumentSymbolProviderRegistry } from 'vs/editor/common/modes' ;
1514import { IModelService } from 'vs/editor/common/services/modelService' ;
16- import { asWinJsPromise } from 'vs/base/common/async ' ;
15+ import { CancellationToken } from 'vs/base/common/cancellation ' ;
1716
18- export function getDocumentSymbols ( model : ITextModel ) : TPromise < DocumentSymbol [ ] > {
17+ export function getDocumentSymbols ( model : ITextModel , token : CancellationToken ) : Thenable < DocumentSymbol [ ] > {
1918
2019 let roots : DocumentSymbol [ ] = [ ] ;
2120
2221 let promises = DocumentSymbolProviderRegistry . all ( model ) . map ( support => {
2322
24- return asWinJsPromise ( token => support . provideDocumentSymbols ( model , token ) ) . then ( result => {
23+ return Promise . resolve ( support . provideDocumentSymbols ( model , token ) ) . then ( result => {
2524 if ( Array . isArray ( result ) ) {
2625 roots . push ( ...result ) ;
2726 }
@@ -30,7 +29,7 @@ export function getDocumentSymbols(model: ITextModel): TPromise<DocumentSymbol[]
3029 } ) ;
3130 } ) ;
3231
33- return TPromise . join ( promises ) . then ( ( ) => {
32+ return Promise . all ( promises ) . then ( ( ) => {
3433 let flatEntries : DocumentSymbol [ ] = [ ] ;
3534 flatten ( flatEntries , roots , '' ) ;
3635 flatEntries . sort ( compareEntriesUsingStart ) ;
@@ -69,5 +68,5 @@ registerLanguageCommand('_executeDocumentSymbolProvider', function (accessor, ar
6968 if ( ! model ) {
7069 throw illegalArgument ( 'resource' ) ;
7170 }
72- return getDocumentSymbols ( model ) ;
71+ return getDocumentSymbols ( model , CancellationToken . None ) ;
7372} ) ;
0 commit comments