lsp-types-2.0.2.0: Haskell library for the Microsoft Language Server Protocol, data types

Safe Haskell | Safe-Inferred
Language | Haskell2010

Language.LSP.MetaModel.Types

Description

This defines the types of the LSP "metamodel", which is a machine-readable format specifying the types used in the LSP protocol.

The type system is quite typescript-y, which isn't surprising given that the whole protocol is very typescript-y.

A typescript version of the metamodel types can be found here, which is useful for constructing this Haskell model of them: https:/github.commicrosoftvscode-languageserver-nodeblobmaintoolssrcmetaModel.ts

Synopsis

- data MessageDirection
  - = ServerToClient
  - | ClientToServer
  - | Both
- data BaseTypeName
  - = URI
  - | DocumentUri
  - | Integer
  - | UInteger
  - | Decimal
  - | RegExp
  - | String
  - | Boolean
  - | Null
- data Property = Property {
  - name :: Text
  - type_ :: Type
  - optional :: Maybe Bool
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data StructureLiteral = StructureLiteral {
  - properties :: [Property]
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data Type
  - = BaseType {
    - btName :: BaseTypeName
    }
  - | ReferenceType {
    - rtName :: Text
    }
  - | ArrayType {
    - atElement :: Type
    }
  - | MapType {
    - mKey :: Type
    - mValue :: Type
    }
  - | AndType {
    - aItems :: NonEmpty Type
    }
  - | OrType {
    - oItems :: NonEmpty Type
    }
  - | TupleType {
    - tItems :: [Type]
    }
  - | StructureLiteralType {
    - stlValue :: StructureLiteral
    }
  - | StringLiteralType {
    - slValue :: Text
    }
  - | IntegerLiteralType {
    - ilValue :: Integer
    }
  - | BooleanLiteralType {
    - blValue :: Bool
    }
- data Request = Request {
  - method :: Text
  - params :: Maybe Type
  - result :: Type
  - partialResult :: Maybe Type
  - errorData :: Maybe Type
  - registrationOptions :: Maybe Type
  - messageDirection :: MessageDirection
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data Notification = Notification {
  - method :: Text
  - params :: Maybe Type
  - registrationOptions :: Maybe Type
  - messageDirection :: MessageDirection
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data Structure = Structure {
  - name :: Text
  - extends :: Maybe [Type]
  - mixins :: Maybe [Type]
  - properties :: [Property]
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data TypeAlias = TypeAlias {
  - name :: Text
  - type_ :: Type
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data TextOrInteger
  - = T Text
  - | I Integer
- data EnumerationEntry = EnumerationEntry {
  - name :: Text
  - value :: TextOrInteger
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data Enumeration = Enumeration {
  - name :: Text
  - type_ :: Type
  - values :: [EnumerationEntry]
  - supportsCustomValues :: Maybe Bool
  - documentation :: Maybe Text
  - since :: Maybe Text
  - proposed :: Maybe Bool
  - deprecated :: Maybe Text
  }
- data MetaData = MetaData {
  - version :: Text
  }
- data MetaModel = MetaModel {
  - metaData :: MetaData
  - requests :: [Request]
  - notifications :: [Notification]
  - structures :: [Structure]
  - enumerations :: [Enumeration]
  - typeAliases :: [TypeAlias]
  }
- loadMetaModelFromFile :: FilePath -> Q Exp

# Documentation

data MessageDirection #

What direction is this message sent in: server to client, client to server, or both?

Constructors

ServerToClient |
ClientToServer |
Both |

#### Instances

Instances details

FromJSON MessageDirection # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser MessageDirection # parseJSONList :: Value -> Parser [MessageDirection] # omittedField :: Maybe MessageDirection #
ToJSON MessageDirection # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: MessageDirection -> Value # toEncoding :: MessageDirection -> Encoding # toJSONList :: [MessageDirection] -> Value # toEncodingList :: [MessageDirection] -> Encoding # omitField :: MessageDirection -> Bool #
Show MessageDirection # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> MessageDirection -> ShowS show :: MessageDirection -> String showList :: [MessageDirection] -> ShowS
Eq MessageDirection # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: MessageDirection -> MessageDirection -> Bool (/=) :: MessageDirection -> MessageDirection -> Bool
Ord MessageDirection # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: MessageDirection -> MessageDirection -> Ordering (<) :: MessageDirection -> MessageDirection -> Bool (<=) :: MessageDirection -> MessageDirection -> Bool (>) :: MessageDirection -> MessageDirection -> Bool (>=) :: MessageDirection -> MessageDirection -> Bool max :: MessageDirection -> MessageDirection -> MessageDirection min :: MessageDirection -> MessageDirection -> MessageDirection
Lift MessageDirection # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => MessageDirection -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => MessageDirection -> Code m MessageDirection

data BaseTypeName #

The "base types" in the metamodel.

Constructors

URI |
DocumentUri |
Integer |
UInteger |
Decimal |
RegExp |
String |
Boolean |
Null |

#### Instances

Instances details

FromJSON BaseTypeName # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser BaseTypeName # parseJSONList :: Value -> Parser [BaseTypeName] # omittedField :: Maybe BaseTypeName #
ToJSON BaseTypeName # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: BaseTypeName -> Value # toEncoding :: BaseTypeName -> Encoding # toJSONList :: [BaseTypeName] -> Value # toEncodingList :: [BaseTypeName] -> Encoding # omitField :: BaseTypeName -> Bool #
Show BaseTypeName # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> BaseTypeName -> ShowS show :: BaseTypeName -> String showList :: [BaseTypeName] -> ShowS
Eq BaseTypeName # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: BaseTypeName -> BaseTypeName -> Bool (/=) :: BaseTypeName -> BaseTypeName -> Bool
Ord BaseTypeName # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: BaseTypeName -> BaseTypeName -> Ordering (<) :: BaseTypeName -> BaseTypeName -> Bool (<=) :: BaseTypeName -> BaseTypeName -> Bool (>) :: BaseTypeName -> BaseTypeName -> Bool (>=) :: BaseTypeName -> BaseTypeName -> Bool max :: BaseTypeName -> BaseTypeName -> BaseTypeName min :: BaseTypeName -> BaseTypeName -> BaseTypeName
Lift BaseTypeName # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => BaseTypeName -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => BaseTypeName -> Code m BaseTypeName

data Property #

A property of a structure.

Constructors

Property |
Fields name :: Text type_ :: Type optional :: Maybe Bool documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON Property # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser Property # parseJSONList :: Value -> Parser [Property] # omittedField :: Maybe Property #
ToJSON Property # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: Property -> Value # toEncoding :: Property -> Encoding # toJSONList :: [Property] -> Value # toEncodingList :: [Property] -> Encoding # omitField :: Property -> Bool #
Show Property # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> Property -> ShowS show :: Property -> String showList :: [Property] -> ShowS
Eq Property # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: Property -> Property -> Bool (/=) :: Property -> Property -> Bool
Ord Property # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: Property -> Property -> Ordering (<) :: Property -> Property -> Bool (<=) :: Property -> Property -> Bool (>) :: Property -> Property -> Bool (>=) :: Property -> Property -> Bool max :: Property -> Property -> Property min :: Property -> Property -> Property
Lift Property # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => Property -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => Property -> Code m Property

data StructureLiteral #

An anonymous structure type.

Constructors

StructureLiteral |
Fields properties :: [Property] documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON StructureLiteral # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser StructureLiteral # parseJSONList :: Value -> Parser [StructureLiteral] # omittedField :: Maybe StructureLiteral #
ToJSON StructureLiteral # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: StructureLiteral -> Value # toEncoding :: StructureLiteral -> Encoding # toJSONList :: [StructureLiteral] -> Value # toEncodingList :: [StructureLiteral] -> Encoding # omitField :: StructureLiteral -> Bool #
Show StructureLiteral # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> StructureLiteral -> ShowS show :: StructureLiteral -> String showList :: [StructureLiteral] -> ShowS
Eq StructureLiteral # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: StructureLiteral -> StructureLiteral -> Bool (/=) :: StructureLiteral -> StructureLiteral -> Bool
Ord StructureLiteral # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: StructureLiteral -> StructureLiteral -> Ordering (<) :: StructureLiteral -> StructureLiteral -> Bool (<=) :: StructureLiteral -> StructureLiteral -> Bool (>) :: StructureLiteral -> StructureLiteral -> Bool (>=) :: StructureLiteral -> StructureLiteral -> Bool max :: StructureLiteral -> StructureLiteral -> StructureLiteral min :: StructureLiteral -> StructureLiteral -> StructureLiteral
Lift StructureLiteral # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => StructureLiteral -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => StructureLiteral -> Code m StructureLiteral

data Type #

The various kinds of type in the metamodel.

Constructors

BaseType |
Fields btName :: BaseTypeName
ReferenceType |
Fields rtName :: Text
ArrayType |
Fields atElement :: Type
MapType |
Fields mKey :: Type mValue :: Type
AndType |
Fields aItems :: NonEmpty Type
OrType |
Fields oItems :: NonEmpty Type
TupleType |
Fields tItems :: [Type]
StructureLiteralType |
Fields stlValue :: StructureLiteral
StringLiteralType |
Fields slValue :: Text
IntegerLiteralType |
Fields ilValue :: Integer
BooleanLiteralType |
Fields blValue :: Bool

#### Instances

Instances details

FromJSON Type # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser Type # parseJSONList :: Value -> Parser [Type] # omittedField :: Maybe Type #
ToJSON Type # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: Type -> Value # toEncoding :: Type -> Encoding # toJSONList :: [Type] -> Value # toEncodingList :: [Type] -> Encoding # omitField :: Type -> Bool #
Show Type # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> Type -> ShowS show :: Type -> String showList :: [Type] -> ShowS
Eq Type # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: Type -> Type -> Bool (/=) :: Type -> Type -> Bool
Ord Type # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: Type -> Type -> Ordering (<) :: Type -> Type -> Bool (<=) :: Type -> Type -> Bool (>) :: Type -> Type -> Bool (>=) :: Type -> Type -> Bool max :: Type -> Type -> Type min :: Type -> Type -> Type
Lift Type # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => Type -> m Exp liftTyped :: forall (m :: Type0 -> Type0). Quote m => Type -> Code m Type

data Request #

A request message.

Constructors

Request |
Fields method :: Text params :: Maybe Type result :: Type partialResult :: Maybe Type errorData :: Maybe Type registrationOptions :: Maybe Type messageDirection :: MessageDirection documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON Request # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser Request # parseJSONList :: Value -> Parser [Request] # omittedField :: Maybe Request #
ToJSON Request # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: Request -> Value # toEncoding :: Request -> Encoding # toJSONList :: [Request] -> Value # toEncodingList :: [Request] -> Encoding # omitField :: Request -> Bool #
Show Request # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> Request -> ShowS show :: Request -> String showList :: [Request] -> ShowS
Eq Request # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: Request -> Request -> Bool (/=) :: Request -> Request -> Bool
Ord Request # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: Request -> Request -> Ordering (<) :: Request -> Request -> Bool (<=) :: Request -> Request -> Bool (>) :: Request -> Request -> Bool (>=) :: Request -> Request -> Bool max :: Request -> Request -> Request min :: Request -> Request -> Request
Lift Request # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => Request -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => Request -> Code m Request

data Notification #

A notification message.

Constructors

Notification |
Fields method :: Text params :: Maybe Type registrationOptions :: Maybe Type messageDirection :: MessageDirection documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON Notification # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser Notification # parseJSONList :: Value -> Parser [Notification] # omittedField :: Maybe Notification #
ToJSON Notification # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: Notification -> Value # toEncoding :: Notification -> Encoding # toJSONList :: [Notification] -> Value # toEncodingList :: [Notification] -> Encoding # omitField :: Notification -> Bool #
Show Notification # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> Notification -> ShowS show :: Notification -> String showList :: [Notification] -> ShowS
Eq Notification # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: Notification -> Notification -> Bool (/=) :: Notification -> Notification -> Bool
Ord Notification # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: Notification -> Notification -> Ordering (<) :: Notification -> Notification -> Bool (<=) :: Notification -> Notification -> Bool (>) :: Notification -> Notification -> Bool (>=) :: Notification -> Notification -> Bool max :: Notification -> Notification -> Notification min :: Notification -> Notification -> Notification
Lift Notification # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => Notification -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => Notification -> Code m Notification

data Structure #

A structure type.

Constructors

Structure |
Fields name :: Text extends :: Maybe [Type] mixins :: Maybe [Type] properties :: [Property] documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON Structure # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser Structure # parseJSONList :: Value -> Parser [Structure] # omittedField :: Maybe Structure #
ToJSON Structure # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: Structure -> Value # toEncoding :: Structure -> Encoding # toJSONList :: [Structure] -> Value # toEncodingList :: [Structure] -> Encoding # omitField :: Structure -> Bool #
Show Structure # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> Structure -> ShowS show :: Structure -> String showList :: [Structure] -> ShowS
Eq Structure # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: Structure -> Structure -> Bool (/=) :: Structure -> Structure -> Bool
Ord Structure # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: Structure -> Structure -> Ordering (<) :: Structure -> Structure -> Bool (<=) :: Structure -> Structure -> Bool (>) :: Structure -> Structure -> Bool (>=) :: Structure -> Structure -> Bool max :: Structure -> Structure -> Structure min :: Structure -> Structure -> Structure
Lift Structure # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => Structure -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => Structure -> Code m Structure

data TypeAlias #

A type alias.

Constructors

TypeAlias |
Fields name :: Text type_ :: Type documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON TypeAlias # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser TypeAlias # parseJSONList :: Value -> Parser [TypeAlias] # omittedField :: Maybe TypeAlias #
ToJSON TypeAlias # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: TypeAlias -> Value # toEncoding :: TypeAlias -> Encoding # toJSONList :: [TypeAlias] -> Value # toEncodingList :: [TypeAlias] -> Encoding # omitField :: TypeAlias -> Bool #
Show TypeAlias # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> TypeAlias -> ShowS show :: TypeAlias -> String showList :: [TypeAlias] -> ShowS
Eq TypeAlias # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: TypeAlias -> TypeAlias -> Bool (/=) :: TypeAlias -> TypeAlias -> Bool
Ord TypeAlias # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: TypeAlias -> TypeAlias -> Ordering (<) :: TypeAlias -> TypeAlias -> Bool (<=) :: TypeAlias -> TypeAlias -> Bool (>) :: TypeAlias -> TypeAlias -> Bool (>=) :: TypeAlias -> TypeAlias -> Bool max :: TypeAlias -> TypeAlias -> TypeAlias min :: TypeAlias -> TypeAlias -> TypeAlias
Lift TypeAlias # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => TypeAlias -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => TypeAlias -> Code m TypeAlias

data TextOrInteger #

This is just 'string | int' on the typescript side, but it's convenient to have a proper type here.

Constructors

T Text |
I Integer |

#### Instances

Instances details

FromJSON TextOrInteger # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser TextOrInteger # parseJSONList :: Value -> Parser [TextOrInteger] # omittedField :: Maybe TextOrInteger #
ToJSON TextOrInteger # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: TextOrInteger -> Value # toEncoding :: TextOrInteger -> Encoding # toJSONList :: [TextOrInteger] -> Value # toEncodingList :: [TextOrInteger] -> Encoding # omitField :: TextOrInteger -> Bool #
Show TextOrInteger # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> TextOrInteger -> ShowS show :: TextOrInteger -> String showList :: [TextOrInteger] -> ShowS
Eq TextOrInteger # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: TextOrInteger -> TextOrInteger -> Bool (/=) :: TextOrInteger -> TextOrInteger -> Bool
Ord TextOrInteger # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: TextOrInteger -> TextOrInteger -> Ordering (<) :: TextOrInteger -> TextOrInteger -> Bool (<=) :: TextOrInteger -> TextOrInteger -> Bool (>) :: TextOrInteger -> TextOrInteger -> Bool (>=) :: TextOrInteger -> TextOrInteger -> Bool max :: TextOrInteger -> TextOrInteger -> TextOrInteger min :: TextOrInteger -> TextOrInteger -> TextOrInteger
Lift TextOrInteger # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => TextOrInteger -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => TextOrInteger -> Code m TextOrInteger

data EnumerationEntry #

An entry in an enumeration.

Constructors

EnumerationEntry |
Fields name :: Text value :: TextOrInteger documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON EnumerationEntry # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser EnumerationEntry # parseJSONList :: Value -> Parser [EnumerationEntry] # omittedField :: Maybe EnumerationEntry #
ToJSON EnumerationEntry # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: EnumerationEntry -> Value # toEncoding :: EnumerationEntry -> Encoding # toJSONList :: [EnumerationEntry] -> Value # toEncodingList :: [EnumerationEntry] -> Encoding # omitField :: EnumerationEntry -> Bool #
Show EnumerationEntry # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> EnumerationEntry -> ShowS show :: EnumerationEntry -> String showList :: [EnumerationEntry] -> ShowS
Eq EnumerationEntry # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: EnumerationEntry -> EnumerationEntry -> Bool (/=) :: EnumerationEntry -> EnumerationEntry -> Bool
Ord EnumerationEntry # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: EnumerationEntry -> EnumerationEntry -> Ordering (<) :: EnumerationEntry -> EnumerationEntry -> Bool (<=) :: EnumerationEntry -> EnumerationEntry -> Bool (>) :: EnumerationEntry -> EnumerationEntry -> Bool (>=) :: EnumerationEntry -> EnumerationEntry -> Bool max :: EnumerationEntry -> EnumerationEntry -> EnumerationEntry min :: EnumerationEntry -> EnumerationEntry -> EnumerationEntry
Lift EnumerationEntry # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => EnumerationEntry -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => EnumerationEntry -> Code m EnumerationEntry

data Enumeration #

An enumeration type.

Constructors

Enumeration |
Fields name :: Text type_ :: Type values :: [EnumerationEntry] supportsCustomValues :: Maybe Bool documentation :: Maybe Text since :: Maybe Text proposed :: Maybe Bool deprecated :: Maybe Text

#### Instances

Instances details

FromJSON Enumeration # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser Enumeration # parseJSONList :: Value -> Parser [Enumeration] # omittedField :: Maybe Enumeration #
ToJSON Enumeration # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: Enumeration -> Value # toEncoding :: Enumeration -> Encoding # toJSONList :: [Enumeration] -> Value # toEncodingList :: [Enumeration] -> Encoding # omitField :: Enumeration -> Bool #
Show Enumeration # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> Enumeration -> ShowS show :: Enumeration -> String showList :: [Enumeration] -> ShowS
Eq Enumeration # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: Enumeration -> Enumeration -> Bool (/=) :: Enumeration -> Enumeration -> Bool
Ord Enumeration # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: Enumeration -> Enumeration -> Ordering (<) :: Enumeration -> Enumeration -> Bool (<=) :: Enumeration -> Enumeration -> Bool (>) :: Enumeration -> Enumeration -> Bool (>=) :: Enumeration -> Enumeration -> Bool max :: Enumeration -> Enumeration -> Enumeration min :: Enumeration -> Enumeration -> Enumeration
Lift Enumeration # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => Enumeration -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => Enumeration -> Code m Enumeration

data MetaData #

Metadata about the metamodel iteslf.

Constructors

MetaData |
Fields version :: Text

#### Instances

Instances details

FromJSON MetaData # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser MetaData # parseJSONList :: Value -> Parser [MetaData] # omittedField :: Maybe MetaData #
ToJSON MetaData # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: MetaData -> Value # toEncoding :: MetaData -> Encoding # toJSONList :: [MetaData] -> Value # toEncodingList :: [MetaData] -> Encoding # omitField :: MetaData -> Bool #
Show MetaData # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> MetaData -> ShowS show :: MetaData -> String showList :: [MetaData] -> ShowS
Eq MetaData # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: MetaData -> MetaData -> Bool (/=) :: MetaData -> MetaData -> Bool
Ord MetaData # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: MetaData -> MetaData -> Ordering (<) :: MetaData -> MetaData -> Bool (<=) :: MetaData -> MetaData -> Bool (>) :: MetaData -> MetaData -> Bool (>=) :: MetaData -> MetaData -> Bool max :: MetaData -> MetaData -> MetaData min :: MetaData -> MetaData -> MetaData
Lift MetaData # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => MetaData -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => MetaData -> Code m MetaData

data MetaModel #

The entire metamodel.

Constructors

MetaModel |
Fields metaData :: MetaData requests :: [Request] notifications :: [Notification] structures :: [Structure] enumerations :: [Enumeration] typeAliases :: [TypeAlias]

#### Instances

Instances details

FromJSON MetaModel # |
Instance details Defined in Language.LSP.MetaModel.Types Methods parseJSON :: Value -> Parser MetaModel # parseJSONList :: Value -> Parser [MetaModel] # omittedField :: Maybe MetaModel #
ToJSON MetaModel # |
Instance details Defined in Language.LSP.MetaModel.Types Methods toJSON :: MetaModel -> Value # toEncoding :: MetaModel -> Encoding # toJSONList :: [MetaModel] -> Value # toEncodingList :: [MetaModel] -> Encoding # omitField :: MetaModel -> Bool #
Show MetaModel # |
Instance details Defined in Language.LSP.MetaModel.Types Methods showsPrec :: Int -> MetaModel -> ShowS show :: MetaModel -> String showList :: [MetaModel] -> ShowS
Eq MetaModel # |
Instance details Defined in Language.LSP.MetaModel.Types Methods (==) :: MetaModel -> MetaModel -> Bool (/=) :: MetaModel -> MetaModel -> Bool
Ord MetaModel # |
Instance details Defined in Language.LSP.MetaModel.Types Methods compare :: MetaModel -> MetaModel -> Ordering (<) :: MetaModel -> MetaModel -> Bool (<=) :: MetaModel -> MetaModel -> Bool (>) :: MetaModel -> MetaModel -> Bool (>=) :: MetaModel -> MetaModel -> Bool max :: MetaModel -> MetaModel -> MetaModel min :: MetaModel -> MetaModel -> MetaModel
Lift MetaModel # |
Instance details Defined in Language.LSP.MetaModel.Types Methods lift :: Quote m => MetaModel -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => MetaModel -> Code m MetaModel

loadMetaModelFromFile :: FilePath -> Q Exp #