Сохранять данные в URI кода против, когда данные содержат # - PullRequest
1 голос
/ 09 марта 2020

Я создаю временный URI против кода. Это необходимо для команды vscode.diff. Я следую их примеру из здесь

URI анализируется с помощью следующей команды

let uri = vscode.Uri.parse('cowsay:' + what);

и считывается с помощью следующей команды (из их примеров)

const myProvider = class implements vscode.TextDocumentContentProvider {
 provideTextDocumentContent(uri: vscode.Uri): string {
 return cowsay.say({ text: uri.path });
 }
};

Хранится в uri.path. Проблема, с которой я сталкиваюсь, состоит в том, что данные, которые я хочу сохранить, содержат в них #. uri.path игнорирует весь текст, как только встречается первый #. Есть ли способ хранить данные в пользовательском URI, содержащем #.

например, если мой код ниже

let textToStore: string = "print '1'# some comment";
// Storing in URI
let uri = vscode.Uri.parse('cowsay:' + textToStore);

URI.path будет хранить в нем только print '1', пока он должен магазин print '1'# some comment. Символ после # игнорируется.

Есть ли способ сохранить # в пользовательской схеме URI в коде Vs.

1 Ответ

1 голос
/ 09 марта 2020

Возможно, вы ищете encodeURIComponent(). Эта функция кодирует определенные символы, которые нельзя использовать в компонентах URL, такие как «#». Больше информации можно найти здесь .

let textToStore: string = encodeURIComponent("print '1'# some comment");
...