Sha256: 3ee7424689020152e7840147f93f1ddd5d3b7ddffad5e2b62661812895591dc6

Contents?: true

Size: 846 Bytes

Versions: 4

Compression:

Stored size: 846 Bytes

Contents

module Yoda
  class Server
    module Providers
      class WorkspaceDidChangeWorkspaceFolders < Base
        def self.provider_method
          :'workspace/didChangeWorkspaceFolders'
        end

        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

        private

        def to_folder(folder_params)
          LanguageServer::Protocol::Interface::WorkspaceFolder.new(**folder_params)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/server/providers/workspace_did_change_workspace_folders.rb
yoda-language-server-0.10.0 lib/yoda/server/providers/workspace_did_change_workspace_folders.rb
yoda-language-server-0.9.0 lib/yoda/server/providers/workspace_did_change_workspace_folders.rb
yoda-language-server-0.8.0 lib/yoda/server/providers/workspace_did_change_workspace_folders.rb