diff options
Diffstat (limited to 'Build/source/utils/asymptote/LspCpp/LibLsp/lsp/lsp.cpp')
-rw-r--r-- | Build/source/utils/asymptote/LspCpp/LibLsp/lsp/lsp.cpp | 1087 |
1 files changed, 0 insertions, 1087 deletions
diff --git a/Build/source/utils/asymptote/LspCpp/LibLsp/lsp/lsp.cpp b/Build/source/utils/asymptote/LspCpp/LibLsp/lsp/lsp.cpp deleted file mode 100644 index 81bf34ba3a4..00000000000 --- a/Build/source/utils/asymptote/LspCpp/LibLsp/lsp/lsp.cpp +++ /dev/null @@ -1,1087 +0,0 @@ - - -#include "lru_cache.h" - - -#include <rapidjson/writer.h> - - -#include <stdio.h> -#include <iostream> -#include "location_type.h" -#include "out_list.h" -#include "lsTextDocumentIdentifier.h" -#include "lsVersionedTextDocumentIdentifier.h" -#include "lsResponseError.h" -#include "lsPosition.h" -#include "lsTextEdit.h" -#include "lsMarkedString.h" -#include "lsWorkspaceEdit.h" -#include "textDocument/code_action.h" -#include "textDocument/document_symbol.h" -#include "extention/jdtls/codeActionResult.h" - -#include "textDocument/selectionRange.h" -#include "AbsolutePath.h" - -#ifdef _WIN32 -#include <Windows.h> -#else -#include <climits> -#include <cstdlib> -#endif - -#include "Directory.h" -#include "lsFormattingOptions.h" -#include "LibLsp/JsonRpc/json.h" -#include "language/language.h" -#include "network/uri/uri_builder.hpp" -#include "lsp_completion.h" -#include "utils.h" -#include "client/registerCapability.h" -#include <boost/uuid/uuid.hpp> -#include <boost/uuid/uuid_io.hpp> -#include <boost/uuid/uuid_generators.hpp> -// namespace - - - -lsTextDocumentIdentifier -lsVersionedTextDocumentIdentifier::AsTextDocumentIdentifier() const { - lsTextDocumentIdentifier result; - result.uri = uri; - return result; -} - - -lsPosition::lsPosition() {} -lsPosition::lsPosition(int line, int character) - : line(line), character(character) {} - -bool lsPosition::operator==(const lsPosition& other) const { - return line == other.line && character == other.character; -} - -bool lsPosition::operator<(const lsPosition& other) const { - return line != other.line ? line < other.line : character < other.character; -} - -std::string lsPosition::ToString() const { - return std::to_string(line) + ":" + std::to_string(character); -} -const lsPosition lsPosition::kZeroPosition = lsPosition(); - -lsRange::lsRange() {} -lsRange::lsRange(lsPosition start, lsPosition end) : start(start), end(end) {} - -bool lsRange::operator==(const lsRange& o) const { - return start == o.start && end == o.end; -} - -bool lsRange::operator<(const lsRange& o) const { - return !(start == o.start) ? start < o.start : end < o.end; -} - -std::string lsRange::ToString() const -{ - std::stringstream ss; - ss << "start:" << start.ToString() << std::endl; - ss << "end" << end.ToString() << std::endl; - return ss.str(); -} - -lsLocation::lsLocation() {} -lsLocation::lsLocation(lsDocumentUri uri, lsRange range) - : uri(uri), range(range) {} - -bool lsLocation::operator==(const lsLocation& o) const { - return uri == o.uri && range == o.range; -} - -bool lsLocation::operator<(const lsLocation& o) const { - return std::make_tuple(uri.raw_uri_, range) < - std::make_tuple(o.uri.raw_uri_, o.range); -} - -bool lsTextEdit::operator==(const lsTextEdit& that) { - return range == that.range && newText == that.newText; -} - -std::string lsTextEdit::ToString() const -{ - std::stringstream ss; - ss << "Range:" << range.ToString() << std::endl; - ss << "newText:" << newText << std::endl; - return ss.str(); -} - -void Reflect(Writer& visitor, lsMarkedString& value) { - // If there is a language, emit a `{language:string, value:string}` object. If - // not, emit a string. - if (value.language) { - REFLECT_MEMBER_START(); - REFLECT_MEMBER(language); - REFLECT_MEMBER(value); - REFLECT_MEMBER_END(); - } else { - Reflect(visitor, value.value); - } -} - -void Reflect(Reader& visitor, lsMarkedString& value) -{ - REFLECT_MEMBER_START(); - REFLECT_MEMBER(language); - REFLECT_MEMBER(value); - REFLECT_MEMBER_END(); -} - - void Reflect(Reader& visitor, LocationListEither::Either& value) -{ - if(!visitor.IsArray()) - { - throw std::invalid_argument("Rsp_LocationListEither::Either& value is not array"); - } - auto data = ((JsonReader&)visitor).m_->GetArray(); - if (data.Size() && data[0].HasMember("originSelectionRange")) - { - Reflect(visitor, value.second); - } - else { - Reflect(visitor, value.first); - } - -} - - void Reflect(Writer& visitor, LocationListEither::Either& value) -{ - if (value.first) - { - Reflect(visitor, value.first.value()); - } - else if (value.second) - { - Reflect(visitor, value.second.value()); - } -} - - -void Reflect(Reader& visitor, TextDocumentCodeAction::Either& value) -{ - - - if(visitor.HasMember("command")) - { - if(visitor["command"]->IsString()) - { - Reflect(visitor, value.first); - } - else - { - Reflect(visitor, value.second); - } - } - else - { - if (visitor.HasMember("diagnostics") || visitor.HasMember("edit")) - { - Reflect(visitor, value.second); - } - else - { - Reflect(visitor, value.first); - } - } - -} - - -void Reflect(Reader& visitor, lsWorkspaceEdit::Either& value) -{ - - - if(visitor.HasMember("textDocument")) - { - Reflect(visitor, value.first); - } - else - { - Reflect(visitor, value.second); - } -} -ResourceOperation* GetResourceOperation(lsp::Any& lspAny) -{ - rapidjson::Document document; - auto& data = lspAny.Data(); - document.Parse(data.c_str(), data.length()); - if (document.HasParseError()) { - // ��ʾ - return nullptr; - } - auto find = document.FindMember("kind"); - - JsonReader visitor{ &document }; - try - { - if (find->value == "create") - { - auto ptr = std::make_unique<lsCreateFile>(); - auto temp = ptr.get(); - Reflect(visitor, *temp); - return ptr.release(); - } - else if (find->value == "rename") - { - auto ptr = std::make_unique<lsRenameFile>(); - auto temp = ptr.get(); - Reflect(visitor, *temp); - return ptr.release(); - } - else if (find->value == "delete") - { - - auto ptr = std::make_unique<lsDeleteFile>(); - auto temp = ptr.get(); - Reflect(visitor, *temp); - return ptr.release(); - } - } - catch (std::exception&) - { - - } - return nullptr; -} - - void Reflect(Writer& visitor, ResourceOperation* value) -{ - - if(!value) - { - throw std::invalid_argument("ResourceOperation value is nullptr"); - } - if (value->kind == "create") - { - auto temp = (lsCreateFile*)value; - Reflect(visitor, *temp); - } - else if (value->kind == "rename") - { - auto temp = (lsRenameFile*)value; - Reflect(visitor, *temp); - } - else if (value->kind == "delete") - { - - auto temp = (lsDeleteFile*)value; - Reflect(visitor, *temp); - } - -} - -int lsp::Any::GuessType() -{ - if (!data.empty()) - { - if (data == "null") - { - jsonType = rapidjson::kNullType; - } - else if (data == "true") - { - jsonType = rapidjson::kTrueType; - } - else if(data == "false") - { - jsonType = rapidjson::kFalseType; - } - else if (data[0] == '{') - { - jsonType = rapidjson::kObjectType; - } - else if (data[0] == '[') - { - if (data.size() >= 2 && data[1] == '{') - jsonType = rapidjson::kStringType; - else - jsonType = rapidjson::kArrayType; - } - else if (data[0] == '"') - { - jsonType = rapidjson::kStringType; - } - else - { - jsonType = rapidjson::kNumberType; - } - } - else - { - if (jsonType != kUnKnown) - return jsonType; - jsonType = rapidjson::kNullType; - } - return jsonType; -} - -int lsp::Any::GetType() -{ - if (jsonType == Type::kUnKnown) - { - if (data.empty()) - { - jsonType = rapidjson::kNullType; - return jsonType; - } - rapidjson::Document document; - document.Parse(data.c_str(), data.length()); - if (document.HasParseError()) - { - // ��ʾ - return jsonType; - } - jsonType = document.GetType(); - } - return jsonType; -} - -void lsp::Any::Set(std::unique_ptr<LspMessage> value) -{ - if (value) - { - jsonType = rapidjson::Type::kObjectType; - data = value->ToJson(); - } - else - { - assert(false); - } -} - -void lsp::Any::SetJsonString(std::string&& _data, Type _type) -{ - jsonType = _type; - data.swap(_data); - GetType(); -} - -void lsp::Any::SetJsonString(const std::string& _data, Type _type) -{ - jsonType = _type; - data = (_data); - GetType(); -} - -void lsp::Any::swap(Any& arg) noexcept -{ - data.swap(arg.data); - const int temp = jsonType; - jsonType = arg.jsonType; - arg.jsonType = temp; -} - -class JsonReaderForAny : public JsonReader -{ -public: - JsonReaderForAny() - : JsonReader(&document) - { - } - rapidjson::Document document; -}; - -bool lsp::Any::GetForMapHelper(std::string& value) -{ - return Get(value); -} - -bool lsp::Any::GetForMapHelper(boost::optional<std::string>& value) -{ - return Get(value); -} - -std::unique_ptr<Reader> lsp::Any::GetReader() -{ - auto reader = new JsonReaderForAny(); - std::unique_ptr<Reader> ret(reader); - reader->document.Parse(data.c_str(), data.length()); - if (reader->document.HasParseError()) - { - return {}; - } - if (jsonType == kUnKnown) - { - jsonType = reader->document.GetType(); - } - return (ret); -} - -class JsonWriterForAny : public JsonWriter -{ -public: - rapidjson::StringBuffer output; - rapidjson::Writer<rapidjson::StringBuffer> writer; - JsonWriterForAny():JsonWriter(&writer), writer(output) - { - - } -}; - -std::unique_ptr<Writer> lsp::Any::GetWriter() const -{ - return std::make_unique<JsonWriterForAny>(); -} - -void lsp::Any::SetData(std::unique_ptr<Writer>& writer) -{ - auto _temp = static_cast<JsonWriterForAny*>(writer.get()); - data = _temp->output.GetString(); - GuessType(); -} - -namespace -{ -#if 0 - rapidjson::Type convert(lsp::Any::Type type) - { - switch (type) - { - case lsp::Any::Type::kNullType: - return rapidjson::Type::kNullType; - case lsp::Any::Type::kFalseType: - return rapidjson::Type::kFalseType; - case lsp::Any::Type::kTrueType: - return rapidjson::Type::kTrueType; - case lsp::Any::Type::kObjectType: - return rapidjson::Type::kObjectType; - case lsp::Any::Type::kArrayType: - return rapidjson::Type::kArrayType; - case lsp::Any::Type::kStringType: - return rapidjson::Type::kStringType; - case lsp::Any::Type::kNumberType: - return rapidjson::Type::kNumberType; - default: - return rapidjson::Type::kNullType; - } - } -#endif - lsp::Any::Type convert(rapidjson::Type type) - { - switch (type) - { - case rapidjson::Type::kNullType: - return lsp::Any::Type::kNullType; - case rapidjson::Type::kFalseType: - return lsp::Any::Type::kFalseType; - case rapidjson::Type::kTrueType: - return lsp::Any::Type::kTrueType; - case rapidjson::Type::kObjectType: - return lsp::Any::Type::kObjectType; - case rapidjson::Type::kArrayType: - return lsp::Any::Type::kArrayType; - case rapidjson::Type::kStringType: - return lsp::Any::Type::kStringType; - case rapidjson::Type::kNumberType: - return lsp::Any::Type::kNumberType; - default: - return lsp::Any::Type::kNullType; - } - } -} - -void Reflect(Reader& visitor, lsp::Any& value) -{ - - //if (visitor.IsNull()) { - // visitor.GetNull(); - // value.SetJsonString("", rapidjson::Type::kNullType); - // return; - //}else - //{ - // - //} - JsonReader& json_reader = reinterpret_cast<JsonReader&>(visitor); - value.SetJsonString(visitor.ToString(), convert(json_reader.m_->GetType())); -} - void Reflect(Writer& visitor, lsp::Any& value) - { - JsonWriter& json_writer = reinterpret_cast<JsonWriter&>(visitor); - json_writer.m_->RawValue( value.Data().data(),value.Data().size(),static_cast<rapidjson::Type>(value.GetType())); - - } - void Reflect(Reader& visitor, lsFormattingOptions::KeyData& value) -{ - if (visitor.IsBool()) - { - Reflect(visitor, value._boolean); - } - else if (visitor.IsInt() || visitor.IsInt64() || visitor.IsUint64()) - { - Reflect(visitor, value._integer); - } - else if(visitor.IsString()) - { - Reflect(visitor, value._string); - } -} - void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value) -{ - if (value._boolean.has_value()) - { - Reflect(visitor, value._boolean); - } - else if (value._integer.has_value()) - { - Reflect(visitor, value._integer); - } - else if (value._string.has_value()) - { - Reflect(visitor, value._string); - } -} - -lsCreateFile::lsCreateFile() -{ - kind = "create"; -} - -lsDeleteFile::lsDeleteFile() -{ - kind = "delete"; -} - -lsRenameFile::lsRenameFile() -{ - kind = "rename"; -} - - -void Reflect(Reader& visitor, boost::optional< SelectionRange* >& value) -{ - if (visitor.IsNull()) { - visitor.GetNull(); - return; - } - - SelectionRange* entry_value = nullptr; - - - std::unique_ptr<SelectionRange> ptr = std::make_unique<SelectionRange>(); - SelectionRange* temp = ptr.get(); - Reflect(visitor, *temp); - - entry_value = ptr.release(); - value = (entry_value); - -} -void Reflect(Writer& visitor, SelectionRange* value) -{ - - if (!value) - { - throw std::invalid_argument("ResourceOperation value is nullptr"); - } - - Reflect(visitor, *value); - - -} - - std::string make_file_scheme_uri(const std::string& absolute_path) -{ - network::uri_builder builder; - builder.scheme("file"); - builder.host(""); - builder.path(absolute_path); - return builder.uri().string(); - //// lsDocumentUri uri; - //// uri.SetPath(absolute_path); - /// return uri.raw_uri_; -} - -// static -AbsolutePath AbsolutePath::BuildDoNotUse(const std::string& path) { - AbsolutePath p; - p.path = std::string(path); - return p; -} - - -AbsolutePath::AbsolutePath() {} - - - -AbsolutePath::operator std::string() const { - return path; -} - -bool AbsolutePath::operator==(const AbsolutePath& rhs) const { - return path == rhs.path; -} - -bool AbsolutePath::operator!=(const AbsolutePath& rhs) const { - return path != rhs.path; -} - -bool AbsolutePath::operator<(const AbsolutePath& rhs) const -{ - return path < rhs.path; -} - -bool AbsolutePath::operator>(const AbsolutePath& rhs) const -{ - return path > rhs.path; -} - -void Reflect(Reader& visitor, AbsolutePath& value) { - value.path = visitor.GetString(); -} -void Reflect(Writer& visitor, AbsolutePath& value) { - visitor.String(value.path.c_str(), value.path.length()); -} - -std::ostream& operator<<(std::ostream& out, const AbsolutePath& path) { - out << path.path; - return out; -} - -lsDocumentUri lsDocumentUri::FromPath(const AbsolutePath& path) { - lsDocumentUri result; - result.SetPath(path); - return result; -} -//void lsDocumentUri::SetPath(const AbsolutePath& path) -//{ -// raw_uri_ = make_file_scheme_uri(path.path); -//} -// -void lsDocumentUri::SetPath(const AbsolutePath& path) { - // file:///c%3A/Users/jacob/Desktop/superindex/indexer/full_tests - raw_uri_ = path; - - size_t index = raw_uri_.find(":"); - if (index == 1) { // widows drive letters must always be 1 char - raw_uri_.replace(raw_uri_.begin() + index, raw_uri_.begin() + index + 1, - "%3A"); - } - - // subset of reserved characters from the URI standard - // http://www.ecma-international.org/ecma-262/6.0/#sec-uri-syntax-and-semantics - std::string t; - t.reserve(8 + raw_uri_.size()); - - // TODO: proper fix -#if defined(_WIN32) - t += "file:///"; -#else - t += "file://"; -#endif - - // clang-format off - for (char c : raw_uri_) - switch (c) { - case ' ': t += "%20"; break; - case '#': t += "%23"; break; - case '$': t += "%24"; break; - case '&': t += "%26"; break; - case '(': t += "%28"; break; - case ')': t += "%29"; break; - case '+': t += "%2B"; break; - case ',': t += "%2C"; break; - case ';': t += "%3B"; break; - case '?': t += "%3F"; break; - case '@': t += "%40"; break; - default: t += c; break; - } - // clang-format on - raw_uri_ = std::move(t); -} - -std::string lsDocumentUri::GetRawPath() const { - - - if (raw_uri_.compare(0, 8, "file:///")) - return raw_uri_; - - - std::string ret; -#if defined(_WIN32) - size_t i = 8; -#else - size_t i = 7; -#endif - auto from_hex = [](unsigned char c) { - return c - '0' < 10 ? c - '0' : (c | 32) - 'a' + 10; - }; - for (; i < raw_uri_.size(); i++) { - if (i + 3 <= raw_uri_.size() && raw_uri_[i] == '%') { - ret.push_back(from_hex(raw_uri_[i + 1]) * 16 + from_hex(raw_uri_[i + 2])); - i += 2; - } - else - ret.push_back(raw_uri_[i] == '\\' ? '/' : raw_uri_[i]); - } - return ret; -} - -lsDocumentUri::lsDocumentUri() {} - - -lsDocumentUri::lsDocumentUri(const AbsolutePath& path) -{ - SetPath(path); -} - -lsDocumentUri::lsDocumentUri(const lsDocumentUri& other): raw_uri_(other.raw_uri_) -{ -} - -bool lsDocumentUri::operator==(const lsDocumentUri& other) const { - return raw_uri_ == other.raw_uri_; -} - -bool lsDocumentUri::operator==(const std::string& other) const -{ - return raw_uri_ == other; -} - - -AbsolutePath lsDocumentUri::GetAbsolutePath() const { - - - if (raw_uri_.find("file://") != std::string::npos){ - try - { - return lsp::NormalizePath(GetRawPath(), false /*ensure_exists*/, false); - } - catch (std::exception&) - { - return AbsolutePath("", false); - } - } - - return AbsolutePath(raw_uri_,false); - -} - -AbsolutePath::AbsolutePath(const std::string& path, bool validate) - : path(path) { - // TODO: enable validation after fixing tests. - if (validate && !lsp::IsAbsolutePath(path)) { - qualify = false; - auto temp = lsp::NormalizePath(path,false); - if(!temp.path.empty()) - { - this->path = temp.path; - } - } -} - -void Reflect(Writer& visitor, lsDocumentUri& value) { - Reflect(visitor, value.raw_uri_); -} -void Reflect(Reader& visitor, lsDocumentUri& value) { - Reflect(visitor, value.raw_uri_); - // Only record the path when we deserialize a URI, since it most likely came - // from the client. - -} - - std::string ProgressReport::ToString() const -{ - std::string info; - info += "id:" + id + "\n"; - info += "task:" + task + "\n"; - info += "subTask:" + subTask + "\n"; - info += "status:" + status + "\n"; - { - std::stringstream ss; - ss << "totalWork:" << totalWork << std::endl; - info += ss.str(); - } - { - std::stringstream ss; - ss << "workDone:" << workDone << std::endl; - info += ss.str(); - } - - { - std::stringstream ss; - ss << "complete:" << complete << std::endl; - info += ss.str(); - } - - return info; -} - -std::string EventNotification::ToString() const -{ - std::string info; - if (ClasspathUpdated == eventType) - { - info += "eventType:ClasspathUpdated\n"; - } - else if (ProjectsImported == eventType) - { - info += "eventType:ProjectsImported\n"; - } - else - { - std::ostringstream oss; - oss << std::hex << eventType << std::endl; - - info += "eventType:"; - info += oss.str(); - } - info += "data:" + data.Data() + "\n"; - return info; -} - -std::string lsp::ToString(lsCompletionItemKind _kind) -{ - switch (_kind) { - case lsCompletionItemKind::Text: - return "Text"; - case lsCompletionItemKind::Method: - return "Method"; - case lsCompletionItemKind::Function: - return ""; - case lsCompletionItemKind::Constructor: - return "Function"; - case lsCompletionItemKind::Field: - return "Field"; - case lsCompletionItemKind::Variable: - return ""; - case lsCompletionItemKind::Class: - return "Variable"; - case lsCompletionItemKind::Interface: - return "Interface"; - case lsCompletionItemKind::Module: - return "Module"; - case lsCompletionItemKind::Property: - return "Property"; - case lsCompletionItemKind::Unit: - return "Unit"; - case lsCompletionItemKind::Value: - return "Value"; - case lsCompletionItemKind::Enum: - return "Enum"; - case lsCompletionItemKind::Keyword: - return "Keyword"; - case lsCompletionItemKind::Snippet: - return "Snippet"; - case lsCompletionItemKind::Color: - return "Color"; - case lsCompletionItemKind::File: - return "File"; - case lsCompletionItemKind::Reference: - return "Reference"; - case lsCompletionItemKind::Folder: - return "Folder"; - case lsCompletionItemKind::EnumMember: - return "EnumMember"; - case lsCompletionItemKind::Constant: - return "Constant"; - case lsCompletionItemKind::Struct: - return "Struct"; - case lsCompletionItemKind::Event: - return "Event"; - case lsCompletionItemKind::Operator: - return "Operator"; - case lsCompletionItemKind::TypeParameter: - return "TypeParameter"; - default: - return "Unknown"; - } -} - -std::string lsp::ToString(lsInsertTextFormat _kind) -{ - if (_kind == lsInsertTextFormat::PlainText) - { - return "PlainText"; - } - else if (_kind == lsInsertTextFormat::Snippet) - { - return "Snippet"; - }else - { - return "Unknown"; - } -} - -const std::string& lsCompletionItem::InsertedContent() const -{ - if (textEdit) - return textEdit->newText; - if (insertText.has_value() && !insertText->empty()) - return insertText.value(); - return label; -} - -std::string lsCompletionItem::DisplayText() -{ - - if (detail) - { - - return label + " in " + detail.value(); - } - return label; -} - -std::string lsCompletionItem::ToString() - { - std::stringstream info; - info << "label : " << label << std::endl; - if(kind) - info << "kind : " << lsp::ToString(kind.value()) << std::endl; - else - info << "kind : no exist." << std::endl; - - if (detail) - info << "detail : " << detail.value() << std::endl; - else - info << "detail : no exist." << std::endl; - - if (documentation) - { - info << "documentation : " << std::endl; - if(documentation.value().first) - { - info << documentation.value().first.value(); - } - else if(documentation.value().second) - { - info << documentation.value().second.value().value; - } - } - else - info << "documentation : no exist." << std::endl; - - if (deprecated) - info << "deprecated : " << deprecated.value() << std::endl; - else - info << "deprecated : no exist." << std::endl; - - if (preselect) - info << "preselect : " << preselect.value() << std::endl; - else - info << "preselect : no exist." << std::endl; - - if (sortText) - info << "sortText : " << sortText.value() << std::endl; - else - info << "sortText : no exist." << std::endl; - - if (filterText) - info << "filterText : " << filterText.value() << std::endl; - else - info << "filterText : no exist." << std::endl; - - - if (insertText) - info << "insertText : " << insertText.value() << std::endl; - else - info << "insertText : no exist." << std::endl; - - - if (insertTextFormat) - info << "insertText : " << lsp::ToString(insertTextFormat.value()) << std::endl; - else - info << "insertTextFormat : no exist." << std::endl; - - if (textEdit) - info << "textEdit : " << textEdit.value().ToString() << std::endl; - else - info << "textEdit : no exist." << std::endl; - - - - return info.str(); - - } -namespace JDT -{ - namespace CodeActionKind { - - - /** - * Base kind for quickfix actions: 'quickfix' - */ - const char* QuickFix = "quickfix"; - - /** - * Base kind for refactoring actions: 'refactor' - */ - const char* Refactor = "refactor"; - - /** - * Base kind for refactoring extraction actions: 'refactor.extract' - * - * Example extract actions: - * - * - Extract method - Extract function - Extract variable - Extract interface - * from class - ... - */ - const char* RefactorExtract = "refactor.extract"; - - /** - * Base kind for refactoring inline actions: 'refactor.inline' - * - * Example inline actions: - * - * - Inline function - Inline variable - Inline constant - ... - */ - const char* RefactorInline = "refactor.inline"; - - /** - * Base kind for refactoring rewrite actions: 'refactor.rewrite' - * - * Example rewrite actions: - * - * - Convert JavaScript function to class - Add or remove parameter - - * Encapsulate field - Make method static - Move method to base class - ... - */ - const char* RefactorRewrite = "refactor.rewrite"; - - /** - * Base kind for source actions: `source` - * - * Source code actions apply to the entire file. - */ - const char* Source = "source"; - - /** - * Base kind for an organize imports source action: `source.organizeImports` - */ - const char* SourceOrganizeImports = "source.organizeImports"; - - const char* COMMAND_ID_APPLY_EDIT = "java.apply.workspaceEdit"; - - }; - - -} -Directory::Directory(const AbsolutePath& path) : path(path.path) { - lsp::EnsureEndsInSlash(this->path); -} - -bool Directory::operator==(const Directory& rhs) const { - return path == rhs.path; -} - -bool Directory::operator!=(const Directory& rhs) const { - return path != rhs.path; -} - - - - Registration Registration::Create(const std::string& method) -{ - Registration reg; - reg.method = method; - const boost::uuids::uuid a_uuid = boost::uuids::random_generator()(); - reg.id = to_string(a_uuid); - return reg; -} |