# The RustOwl LSP specification `rustowl`, is an LSP server which provides RustOwl information. To display various types of decorations, RustOwl supports some custom methods from the client. Here, we describe the specifications of those custom methods. ## Types Here, we describe the types we will use in this document. ### `OprType` ```typescript "lifetime" | "imm_borrow" | "mut_borrow" | "move" | "call" | "outlive" | "shared_mut" ``` ### `Decoration`
{
"type": OprType,
"range": Range,
"hover_text": Option<String>,
"overlapped": bool
}
`overlapped` field indicates that the decoration is overlapped and should be hidden.
## Methods
We describe the custom methods used in RustOwl.
### `rustowl/cursor`
#### Request payload
{
"position": Position,
"document": {
"uri": DocumentUri
}
}
#### Response payload
{
"is_analyzed": bool,
"decorations": [Decoration]
}