Files
tsl-devkit/lsp-server/src/protocol/text_document/formatting.cppm
T
2025-12-07 23:07:03 +08:00

90 lines
2.3 KiB
C++

module;
export module lsp.protocol.text_document.formatting;
import std;
import lsp.protocol.common.basic_types;
import lsp.protocol.text_document.document_sync;
import lsp.protocol.window.progress;
export namespace lsp::protocol
{
// Document Formatting
struct DocumentFormattingClientCapabilities
{
std::optional<boolean> dynamicRegistration;
};
struct DocumentFormattingOptions : WorkDoneProgressOptions
{
};
struct DocumentFormattingRegistrationOptions : TextDocumentRegistrationOptions, DocumentFormattingOptions
{
};
struct FormattingOptions
{
uinteger tabSize;
boolean insertSpaces;
std::optional<boolean> trimTrailingWhitespace;
std::optional<boolean> insertFinalNewline;
std::optional<boolean> trimFinalNewlines;
std::map<string, std::variant<boolean, integer, string>> key;
};
struct DocumentFormattingParams : WorkDoneProgressParams
{
TextDocumentIdentifier textDocument;
FormattingOptions options;
};
// Document Range Formatting
struct DocumentRangeFormattingClientCapabilities
{
std::optional<boolean> dynamicRegistration;
std::optional<boolean> rangesSupport;
};
struct DocumentRangeFormattingOptions : WorkDoneProgressOptions
{
std::optional<boolean> rangesSupport;
};
struct DocumentRangeFormattingRegistrationOptions : TextDocumentRegistrationOptions, DocumentRangeFormattingOptions
{
};
struct DocumentRangeFormattingParams : WorkDoneProgressParams
{
TextDocumentIdentifier textDocument;
Range range;
FormattingOptions options;
};
// Document On Type Formatting
struct DocumentOnTypeFormattingClientCapabilities
{
std::optional<boolean> dynamicRegistration;
};
struct DocumentOnTypeFormattingOptions : WorkDoneProgressOptions
{
string firstTriggerCharacter;
std::optional<std::vector<string>> moreTriggerCharacter;
};
struct DocumentOnTypeFormattingRegistrationOptions : TextDocumentRegistrationOptions, DocumentOnTypeFormattingOptions
{
};
struct DocumentOnTypeFormattingParams
{
TextDocumentIdentifier textDocument;
Position position;
string ch;
FormattingOptions options;
};
}