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

Safe Haskell | None
Language | GHC2021

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 :: Type -> Type). 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 #