Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VScode API why can't I get the current line?

I am using typescript to write a vs code extension and for some reason I am unable to get the current line.

The function I am trying to make is:

function makeFrame()
{
    vscode.window.activeTextEditor.selection.active.line;
}

Which fails with error: Object is possibly undefined The import statement is:

import {window, commands, Disposable, ExtensionContext, StatusBarAlignment, StatusBarItem, TextDocument} from 'vscode';

What am I doing wrong?

(I am both new to TypeScript and writing extensions for VS code)

like image 796
Makogan Avatar asked Dec 24 '22 08:12

Makogan


1 Answers

activeTextEditor may be undefined. This indicates that there is no active editor and will happen for example when you first open a new workspace or when you close all editors

To fix, just add a quick check:

function makeFrame()
{
    const activeEditor = vscode.window.activeTextEditor;
    if (activeEditor) {
        activeEditor.selection.active.line;
    }
}
like image 170
Matt Bierner Avatar answered Dec 28 '22 08:12

Matt Bierner