Files
tsl-devkit/lsp-server/src/protocol/detail/rename.hpp
T
2025-07-03 18:52:04 +08:00

65 lines
1.6 KiB
C++

#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<boolean> dynamicRegistration;
std::optional<boolean> prepareSupport;
std::optional<PrepareSupportDefaultBehavior> prepareSupportDefaultBehavior;
std::optional<boolean> honorsChangeAnnotations;
};
struct RenameOptions : WorkDoneProgressOptions
{
std::optional<boolean> prepareProvider;
};
struct RenameRegistrationOptions : TextDocumentRegistrationOptions, RenameOptions
{
};
struct RenameParams : TextDocumentPositionParams, WorkDoneProgressParams
{
string newName;
};
struct PrepareRenameParams : TextDocumentPositionParams, WorkDoneProgressParams
{
};
// Linked Editing Range
struct LinkedEditingRangeClientCapabilities
{
std::optional<boolean> dynamicRegistration;
};
struct LinkedEditingRangeOptions : WorkDoneProgressOptions
{
};
struct LinkedEditingRangeRegistrationOptions : TextDocumentRegistrationOptions, LinkedEditingRangeOptions, StaticRegistrationOptions
{
};
struct LinkedEditingRangeParams : TextDocumentPositionParams, WorkDoneProgressParams, PartialResultParams
{
};
struct LinkedEditingRanges
{
std::vector<Range> ranges;
std::optional<string> wordPattern;
};
}