loom

Форк
0
/
DocDidClose.cpp 
29 строк · 1.2 Кб
1
#include "DocDidClose.h"
2
#include "simodo/lsp-server/ServerContext.h"
3

4
#include "simodo/variable/json/Rpc.h"
5
#include "simodo/variable/json/Serialization.h"
6
#include "simodo/inout/convert/functions.h"
7

8
namespace simodo::lsp
9
{
10

11
void DocDidClose::work()
12
{
13
    if (_jsonrpc.is_valid() && _jsonrpc.params().type() == variable::ValueType::Object) {
14
        variable::Value & textDocument_value = _jsonrpc.params().getObject()->find(u"textDocument");
15
        if (textDocument_value.type() == variable::ValueType::Object) {
16
            variable::Value & uri_value = textDocument_value.getObject()->find(u"uri");
17
            if (uri_value.type() == variable::ValueType::String) {
18
                if (_server.closeDocument(inout::toU8(uri_value.getString())))
19
                    return;
20
            }
21
        }
22
    }
23
    _server.log().error("There are wrong parameter structure of 'textDocument/didClose' notification", variable::toJson(_jsonrpc.value()));
24
    _server.sending().push(
25
        /// @todo Скорректировать коды (и тексты) ошибок
26
        variable::JsonRpc(-1,u"There are wrong parameter structure of 'textDocument/didClose' notification",-1));
27
}
28

29
}

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

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

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

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