@@ -7,10 +7,10 @@ import * as UUID from './utils/uuid';
77
88import { workspace , Disposable , WorkspaceFolder as VWorkspaceFolder , WorkspaceFoldersChangeEvent as VWorkspaceFoldersChangeEvent } from 'vscode' ;
99
10- import { DynamicFeature , RegistrationData , FeatureClient , NextSignature , FeatureState } from './features' ;
10+ import { DynamicFeature , RegistrationData , FeatureClient , NextSignature , FeatureState , ensure } from './features' ;
1111import {
12- ClientCapabilities , InitializeParams , CancellationToken , ServerCapabilities , WorkspaceFoldersRequest , WorkspaceFolder ,
13- DidChangeWorkspaceFoldersNotification , DidChangeWorkspaceFoldersParams , RegistrationType
12+ ClientCapabilities , WorkspaceFoldersClientCapabilities , InitializeParams , CancellationToken , ServerCapabilities , WorkspaceFoldersRequest , WorkspaceFolder ,
13+ DidChangeWorkspaceFoldersNotification , DidChangeWorkspaceFoldersParams , RegistrationType ,
1414} from 'vscode-languageserver-protocol' ;
1515
1616function access < T , K extends keyof T > ( target : T | undefined , key : K ) : T [ K ] | undefined {
@@ -68,8 +68,8 @@ export class WorkspaceFoldersFeature implements DynamicFeature<void> {
6868 }
6969
7070 public fillClientCapabilities ( capabilities : ClientCapabilities ) : void {
71- capabilities . workspace = capabilities . workspace || { } ;
72- capabilities . workspace . workspaceFolders = true ;
71+ const workspaceFoldersSupport = ensure ( ensure ( ensure ( capabilities , ' workspace' ) ! , 'workspaceFolders' ) ! as WorkspaceFoldersClientCapabilities , 'changeNotifications' ) ! ;
72+ workspaceFoldersSupport . dynamicRegistration = true ;
7373 }
7474
7575 public initialize ( capabilities : ServerCapabilities ) : void {
0 commit comments