Class: Yoda::Server::Providers::WorkspaceDidChangeWorkspaceFolders

Inherits:
Base
  • Object
show all
Defined in:
lib/yoda/server/providers/workspace_did_change_workspace_folders.rb

Instance Attribute Summary

Attributes inherited from Base

#notifier, #session

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#initialize, provide?, #timeout

Constructor Details

This class inherits a constructor from Yoda::Server::Providers::Base

Class Method Details

.provider_methodObject



5
6
7
# File 'lib/yoda/server/providers/workspace_did_change_workspace_folders.rb', line 5

def self.provider_method
  :'workspace/didChangeWorkspaceFolders'
end

Instance Method Details

#provide(params) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/yoda/server/providers/workspace_did_change_workspace_folders.rb', line 9

def provide(params)
  added_folders = params[:event][:added].map(&method(:to_folder))
  removed_folders = params[:event][:added].map(&method(:to_folder))

  added_folders.each do
    workspace = Workspace.from_workspace_folder(folder)
    session.add_workspace(workspace)
  end

  removed_folders.each do
    session.remove_workspace(id: folder.id)
  end

  NO_RESPONSE
end