VScode API 为什么我无法获取当前行?

Mak*_*gan 4 text-editor typescript visual-studio-code vscode-extensions

我正在使用打字稿编写 vs 代码扩展,但由于某种原因我无法获得当前行。

我试图做的功能是:

function makeFrame()
{
    vscode.window.activeTextEditor.selection.active.line;
}
Run Code Online (Sandbox Code Playgroud)

失败并出现错误:对象可能未定义导入语句是:

import {window, commands, Disposable, ExtensionContext, StatusBarAlignment, StatusBarItem, TextDocument} from 'vscode';
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

(我既是 TypeScript 的新手又是为 VS 代码编写扩展)

Mat*_*ner 8

activeTextEditor可能是undefined。这表示没有活动的编辑器,例如当您第一次打开新工作区或关闭所有编辑器时会发生

要修复,只需添加一个快速检查:

function makeFrame()
{
    const activeEditor = vscode.window.activeTextEditor;
    if (activeEditor) {
        activeEditor.selection.active.line;
    }
}
Run Code Online (Sandbox Code Playgroud)