lsp-types-2.0.2.0: Haskell library for the Microsoft Language Server Protocol, data types
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Documentation

data MessageDirection #

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

Instances

Instances details
FromJSON MessageDirection # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON MessageDirection # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Ord MessageDirection # 
Instance details

Defined in Language.LSP.MetaModel.Types

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.

Instances

Instances details
FromJSON BaseTypeName # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON BaseTypeName # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

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

Instances

Instances details
FromJSON Property # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Property # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Instances

Instances details
FromJSON StructureLiteral # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON StructureLiteral # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Ord StructureLiteral # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

ReferenceType 

Fields

ArrayType 

Fields

MapType 

Fields

AndType 

Fields

OrType 

Fields

TupleType 

Fields

StructureLiteralType 
StringLiteralType 

Fields

IntegerLiteralType 

Fields

BooleanLiteralType 

Fields

Instances

Instances details
FromJSON Type # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Type # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Instances

Instances details
FromJSON Request # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Request # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Instances

Instances details
FromJSON Notification # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Notification # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

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

Instances

Instances details
FromJSON Structure # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Structure # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Instances

Instances details
FromJSON TypeAlias # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON TypeAlias # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

ToJSON TextOrInteger # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Ord TextOrInteger # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Instances

Instances details
FromJSON EnumerationEntry # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON EnumerationEntry # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Ord EnumerationEntry # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

Instances

Instances details
FromJSON Enumeration # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Enumeration # 
Instance details

Defined in Language.LSP.MetaModel.Types

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

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

Instances

Instances details
FromJSON MetaData # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON MetaData # 
Instance details

Defined in Language.LSP.MetaModel.Types

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.

Instances

Instances details
FromJSON MetaModel # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON MetaModel # 
Instance details

Defined in Language.LSP.MetaModel.Types

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 #