Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VS Code Extension

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

VeniaminR



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Пишу расширение(Language Server Protocol) для VS Code для поддержки проприетарного языка программирования. Соответственно расширение состоит из двух частей - серверной и клиентской.
В серверной части в процессе парсинга получаю имя файла
Код:
import "fileName.ext"
и его как-то надо найти и получить его содержимое. В клиентской части нашел
Код:
workspace.findFiles(name);
но в серверной части это не работает. Подскажите как можно осуществить поиск файла, зная его имя в серверной части.

Всего записей: 57 | Зарегистр. 12-04-2003 | Отправлено: 15:14 11-02-2019 | Исправлено: VeniaminR, 15:16 11-02-2019
VeniaminR



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
On server side:
```
export function GetFileRequest(nameInter:string) {
    connection.sendRequest("getFile", nameInter).then( (body : string) => {
        if (body != undefined && body.length) pushImports(body);
    });
}
```
on client side:
in *function activate(context: ExtensionContext)* after client.start();
```
    client.onReady().then(() => {
        client.onRequest("getFile", (nameInter : string) : Promise<string> => { return getFile(nameInter); } );
    });
```
and async function on client side:
```
async function getFile(name):Promise<string>{
    let uri:Uri = undefined;
    let text:string = undefined;
    await workspace.findFiles(name, null, 1).then((value)=> {
        if (value.length) {
            uri=value[0];
        }
    });
    if (uri!=undefined) {
        let textDocument;
        await workspace.openTextDocument(uri).then((value)=>textDocument = value);
        text = textDocument.getText();
    }
    return text;
}
```
 
This code will return a text from file to server side.

Всего записей: 57 | Зарегистр. 12-04-2003 | Отправлено: 17:21 14-02-2019
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VS Code Extension


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru