vscode 插件开发之高亮整行代码

先上效果。大致如下整行都如我所愿的高亮起来了。

讲讲实现流程:

必要条件:

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 = document.lineAt(lineNumber).range.end.character;
    // 组装range。
    let range: vscode.Range = new vscode.Range(lineNumber, start, lineNumber, end);
    //高亮!!!
    await vscode.window.showTextDocument(doc , {preserveFocus: false, selection: range, viewColumn: vscode.ViewColumn.One});
  });

 不定时更新 vscode 开发心得


版权声明:本文为weixin_45885731原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。