64 lines
2.5 KiB
TypeScript
64 lines
2.5 KiB
TypeScript
import { RequestHandler } from 'vscode-jsonrpc';
|
|
import { TextDocumentIdentifier, uinteger, FoldingRange } from 'vscode-languageserver-types';
|
|
import { ProtocolRequestType } from './messages';
|
|
import { TextDocumentRegistrationOptions, StaticRegistrationOptions, PartialResultParams, WorkDoneProgressParams, WorkDoneProgressOptions } from './protocol';
|
|
export interface FoldingRangeClientCapabilities {
|
|
/**
|
|
* Whether implementation supports dynamic registration for folding range providers. If this is set to `true`
|
|
* the client supports the new `FoldingRangeRegistrationOptions` return value for the corresponding server
|
|
* capability as well.
|
|
*/
|
|
dynamicRegistration?: boolean;
|
|
/**
|
|
* The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
|
|
* hint, servers are free to follow the limit.
|
|
*/
|
|
rangeLimit?: uinteger;
|
|
/**
|
|
* If set, the client signals that it only supports folding complete lines. If set, client will
|
|
* ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
|
|
*/
|
|
lineFoldingOnly?: boolean;
|
|
}
|
|
export interface FoldingRangeOptions extends WorkDoneProgressOptions {
|
|
}
|
|
export interface FoldingRangeRegistrationOptions extends TextDocumentRegistrationOptions, FoldingRangeOptions, StaticRegistrationOptions {
|
|
}
|
|
/**
|
|
* Enum of known range kinds
|
|
*/
|
|
export declare enum FoldingRangeKind {
|
|
/**
|
|
* Folding range for a comment
|
|
*/
|
|
Comment = "comment",
|
|
/**
|
|
* Folding range for a imports or includes
|
|
*/
|
|
Imports = "imports",
|
|
/**
|
|
* Folding range for a region (e.g. `#region`)
|
|
*/
|
|
Region = "region"
|
|
}
|
|
/**
|
|
* Parameters for a [FoldingRangeRequest](#FoldingRangeRequest).
|
|
*/
|
|
export interface FoldingRangeParams extends WorkDoneProgressParams, PartialResultParams {
|
|
/**
|
|
* The text document.
|
|
*/
|
|
textDocument: TextDocumentIdentifier;
|
|
}
|
|
/**
|
|
* A request to provide folding ranges in a document. The request's
|
|
* parameter is of type [FoldingRangeParams](#FoldingRangeParams), the
|
|
* response is of type [FoldingRangeList](#FoldingRangeList) or a Thenable
|
|
* that resolves to such.
|
|
*/
|
|
export declare namespace FoldingRangeRequest {
|
|
const method: 'textDocument/foldingRange';
|
|
const type: ProtocolRequestType<FoldingRangeParams, FoldingRange[] | null, FoldingRange[], any, FoldingRangeRegistrationOptions>;
|
|
type HandlerSignature = RequestHandler<FoldingRangeParams, FoldingRange[] | null, void>;
|
|
}
|