/** * utils/types.ts * * @author CismonX * @license MIT */ import * as vscode from 'vscode'; export type Optional = T | undefined; export type Operator = (arg: T) => T; export type Range = { start: number, end: number }; export type ExecResult = { data?: string, error: string }; export function isDefined(value: Optional): value is T { return value !== undefined; } /** * VSCode folding range with name and description. */ export class FoldingRange extends vscode.FoldingRange { constructor( readonly name: string, readonly detail: string, start: number, end: number, kind?: vscode.FoldingRangeKind, ) { super(start, end, kind); } }