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

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 Source #

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

Instances

Instances details
FromJSON MessageDirection Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON MessageDirection Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show MessageDirection Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq MessageDirection Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Ord MessageDirection Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift MessageDirection Source # 
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 Source #

The "base types" in the metamodel.

Instances

Instances details
FromJSON BaseTypeName Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON BaseTypeName Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show BaseTypeName Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq BaseTypeName Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Ord BaseTypeName Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift BaseTypeName Source # 
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 Source #

A property of a structure.

data StructureLiteral Source #

An anonymous structure type.

Instances

Instances details
FromJSON StructureLiteral Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON StructureLiteral Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show StructureLiteral Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq StructureLiteral Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Ord StructureLiteral Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift StructureLiteral Source # 
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 Source #

The various kinds of type in the metamodel.

Instances

Instances details
FromJSON Type Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Type Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show Type Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Methods

showsPrec :: Int -> Type -> ShowS #

show :: Type -> String #

showList :: [Type] -> ShowS #

Eq Type Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Methods

(==) :: Type -> Type -> Bool #

(/=) :: Type -> Type -> Bool #

Ord Type Source # 
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 Source # 
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 Source #

A request message.

Instances

Instances details
FromJSON Request Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Request Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show Request Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq Request Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Methods

(==) :: Request -> Request -> Bool #

(/=) :: Request -> Request -> Bool #

Ord Request Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift Request Source # 
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 Source #

A notification message.

Instances

Instances details
FromJSON Notification Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Notification Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show Notification Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq Notification Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Ord Notification Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift Notification Source # 
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 Source #

A structure type.

data TypeAlias Source #

A type alias.

data TextOrInteger Source #

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 Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON TextOrInteger Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show TextOrInteger Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq TextOrInteger Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Ord TextOrInteger Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift TextOrInteger Source # 
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 Source #

An entry in an enumeration.

Instances

Instances details
FromJSON EnumerationEntry Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON EnumerationEntry Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show EnumerationEntry Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq EnumerationEntry Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Ord EnumerationEntry Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift EnumerationEntry Source # 
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 Source #

An enumeration type.

Instances

Instances details
FromJSON Enumeration Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

ToJSON Enumeration Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Show Enumeration Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Eq Enumeration Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Ord Enumeration Source # 
Instance details

Defined in Language.LSP.MetaModel.Types

Lift Enumeration Source # 
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 Source #

Metadata about the metamodel iteslf.

Constructors

MetaData 

Fields

data MetaModel Source #

The entire metamodel.