loom

Форк
0
/
CompletionParamsParsers.cpp 
41 строка · 1.4 Кб
1
#include "simodo/lsp/client/CompletionParamsParsers.h"
2
#include "simodo/lsp/client/TextDocumentPositionParamsParsers.h"
3

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

7
namespace simodo::lsp
8
{
9

10
bool parseCompletionContext(const simodo::variable::Value & context_value, CompletionContext & context)
11
{
12
    if (context_value.type() != variable::ValueType::Object)
13
        return false;
14

15
    const std::shared_ptr<variable::Object> context_object = context_value.getObject();
16

17
    const variable::Value & triggerKind_value         = context_object->find(u"triggerKind");
18
    const variable::Value & triggerCharacter_value    = context_object->find(u"triggerCharacter");
19

20
    if (triggerKind_value.type() != variable::ValueType::Int
21
     || triggerCharacter_value.type() != variable::ValueType::String)
22
        return false;
23

24
    context.triggerKind      = static_cast<CompletionTriggerKind>(triggerKind_value.getInt());
25
    context.triggerCharacter = inout::toU8(triggerCharacter_value.getString());
26

27
    return true;
28
}
29

30
bool parseCompletionParams(const simodo::variable::Value & params, CompletionParams & completionParams)
31
{
32
    if (params.type() != variable::ValueType::Object
33
     || !parseTextDocumentPositionParams(params, completionParams))
34
        return false;
35

36
    const std::shared_ptr<variable::Object> params_object = params.getObject();
37

38
    return parseCompletionContext(params_object->find(u"context"), completionParams.context);
39
}
40

41
}
42

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

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

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

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