text: /* --------------------------------------------------------------------------------------------
   * Copyright (c) Microsoft Corporation. All rights reserved.
   * Licensed under the MIT License. See License.txt in the project root for license information.
   * ------------------------------------------------------------------------------------------ */
  'use strict';
  Object.defineProperty(exports, "__esModule", { value: true });
  const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
  exports.WorkspaceFoldersFeature = (Base) => {
      return class extends Base {
          initialize(capabilities) {
              let workspaceCapabilities = capabilities.workspace;
              if (workspaceCapabilities && workspaceCapabilities.workspaceFolders) {
                  this._onDidChangeWorkspaceFolders = new vscode_languageserver_protocol_1.Emitter();
                  this.connection.onNotification(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type, (params) => {
                      this._onDidChangeWorkspaceFolders.fire(params.event);
                  });
              }
          }
          getWorkspaceFolders() {
              return this.connection.sendRequest(vscode_languageserver_protocol_1.WorkspaceFoldersRequest.type);
          }
          get onDidChangeWorkspaceFolders() {
              if (!this._onDidChangeWorkspaceFolders) {
                  throw new Error('Client doesn\'t support sending workspace folder change events.');
              }
              if (!this._unregistration) {
                  this._unregistration = this.connection.client.register(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type);
              }
              return this._onDidChangeWorkspaceFolders.event;
          }
      };
  };
  //# sourceMappingURL=workspaceFolders.js.map