#pragma once #include "./basic_types.hpp" #include "./document_sync.hpp" #include "./progress.hpp" namespace lsp::protocol { enum class PrepareSupportDefaultBehavior { kIdentifier = 1 }; // Rename struct RenameClientCapabilities { std::optional dynamicRegistration; std::optional prepareSupport; std::optional prepareSupportDefaultBehavior; std::optional honorsChangeAnnotations; }; struct RenameOptions : WorkDoneProgressOptions { std::optional prepareProvider; }; struct RenameRegistrationOptions : TextDocumentRegistrationOptions, RenameOptions { }; struct RenameParams : TextDocumentPositionParams, WorkDoneProgressParams { string newName; }; struct PrepareRenameParams : TextDocumentPositionParams, WorkDoneProgressParams { }; // Linked Editing Range struct LinkedEditingRangeClientCapabilities { std::optional dynamicRegistration; }; struct LinkedEditingRangeOptions : WorkDoneProgressOptions { }; struct LinkedEditingRangeRegistrationOptions : TextDocumentRegistrationOptions, LinkedEditingRangeOptions, StaticRegistrationOptions { }; struct LinkedEditingRangeParams : TextDocumentPositionParams, WorkDoneProgressParams, PartialResultParams { }; struct LinkedEditingRanges { std::vector ranges; std::optional wordPattern; }; }