Я работаю над расширением vscode .. Я хочу получить ссылку на позицию курсора для всего документа, например, если у меня есть следующий html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<|body>
<div>
<p>Hello World</p>
</div>
</body>
</html>
и курсор был внутри тега body (место знака |
в приведенном выше коде), результат, который я хочу, будет 178, который является индексом символа, если вы начнете подсчитывать все символы в документе (включая пробелы) из Начните.
Я пробовал этот код
const position = editor.selection.active;
console.log(position);
но он дает строку и позицию символа в этой строке, что мне не нужно.
Есть ли способ получить желаемый результат?
Используйте следующий призыв
У
Selection
есть 4Position
свойства:start
,end
: позиция относительно начала файлаanchor
,active
: позиция начала и остановки курсора при выбореХорошо, спасибо, это решило мою проблему — person Ayman Tarig; 12.12.2020
editor.selection.active
— позиция курсора. Начало выделения может быть не там, где находится курсор. — person Ayman Tarig; 12.12.2020Этот код работает, если нет выбора, но может или не может, если есть выбор (зависит от направления, в котором был сделан выбор), поэтому
active
— это способ убедиться, что вы получаете позицию курсора во всех случаях, выбор или не. — person Ayman Tarig; 12.12.2020