{-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE TemplateHaskell #-} module Language.LSP.Types.WorkspaceFolders where import Data.Aeson.TH import Data.Text ( Text ) import Language.LSP.Types.Common import Language.LSP.Types.Utils data WorkspaceFolder = WorkspaceFolder { -- | The name of the workspace folder. Defaults to the uri's basename. _uri :: Text -- | The name of the workspace folder. Defaults to the uri's basename. , _name :: Text } deriving (Read, Show, Eq) deriveJSON lspOptions ''WorkspaceFolder -- | The workspace folder change event. data WorkspaceFoldersChangeEvent = WorkspaceFoldersChangeEvent { _added :: List WorkspaceFolder -- ^ The array of added workspace folders , _removed :: List WorkspaceFolder -- ^ The array of the removed workspace folders } deriving (Read, Show, Eq) deriveJSON lspOptions ''WorkspaceFoldersChangeEvent data DidChangeWorkspaceFoldersParams = DidChangeWorkspaceFoldersParams { _event :: WorkspaceFoldersChangeEvent -- ^ The actual workspace folder change event. } deriving (Read, Show, Eq) deriveJSON lspOptions ''DidChangeWorkspaceFoldersParams