loom

Форк
0
/
TextDocumentPositionParams.cpp 
40 строк · 1.3 Кб
1
#include "simodo/lsp/client/TextDocumentPositionParamsParsers.h"
2
#include "simodo/lsp/client/LocationParsers.h"
3

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

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

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

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

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

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

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

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

37
    return true;
38
}
39

40
}
41

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

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

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

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