先上效果。大致如下整行都如我所愿的高亮起来了。
讲讲实现流程:
必要条件:
1、文件路径。
2、行号。
有了文件路径我们先把路径转换成一个vscode能打开的路径。直接打开是不行的,要通过vscode的vscode.Uri.parse() 转换成一个可被识别的对象才可以调用。
具体代码如下:
export async function showTest() {
// 转换路径
let fullPath = vscode.Uri.parse('Users/xxx/ctrl/step4_django/step4_django/ctrl/public.py');
let lineNumber = 33;
// 打开文件
await vscode.workspace.openTextDocument(fullPath)
.then(async doc => {
// 获取当前打开的文件的editor
let editor = vscode.window.activeTextEditor;
if (!editor) {
return;
}
//从editor 中拿document。
let document = editor.document;
// 调用document的lineAt获取某行代码的range。
let start = document.lineAt(lineNumber).range.start.character;
let end = docu