loom

Форк
0
/
TextDocumentPositionParams.cpp 
39 строк · 1.2 Кб
1
#include "simodo/lsp-client/TextDocumentPositionParams.h"
2

3
#include "simodo/inout/convert/functions.h"
4

5
namespace simodo::lsp
6
{
7
bool parseTextDocumentIdentifier(const variable::Value & textDocument_value, 
8
                                 TextDocumentIdentifier & textDocument)
9
{
10
    if (textDocument_value.type() != variable::ValueType::Object) 
11
        return false;
12

13
    const variable::Value & uri_value = textDocument_value.getObject()->find(u"uri");
14
    if (uri_value.type() != variable::ValueType::String)
15
        return false;
16

17
    textDocument.uri = inout::toU8(uri_value.getString());
18
    
19
    return !textDocument.uri.empty();
20
}
21

22
bool parseTextDocumentPositionParams(const variable::Value & params_value, 
23
                                     TextDocumentPositionParams & documentPosition)
24
{
25
    if (params_value.type() != variable::ValueType::Object) 
26
        return false;
27

28
    std::shared_ptr<variable::Object> params_object = params_value.getObject();
29

30
    if (!parseTextDocumentIdentifier(params_object->find(u"textDocument"), documentPosition.textDocument))
31
        return false;
32

33
    if (!parsePosition(params_object->find(u"position"), documentPosition.position))
34
        return false;
35

36
    return true;
37
}
38

39
}
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.