2017-02-22 49 views
4

Я разрабатываю VSCode Extension, и я хотел бы написать простую утилиту ведения журнала, которая только регистрируется на консоли во время отладки, иначе это не-op.Обнаружить режим отладки в VSCode Extension

Есть ли флаг или значение, доступное в расширении, которое указывает на отладку в настоящее время?

ответ

0

Кажется, она официально не поддерживается: https://github.com/Microsoft/vscode/issues/10077

Во всяком случае я нашел этот мир кода, не знаю, как хорошо она есть:

function startedInDebugMode() { 
    let args = process.execArgv; 
    if (args) { 
    return args.some((arg) => /^--debug=?/.test(arg) || /^--debug-brk=?/.test(arg)); 
    } 
    return false; 
} 
0

Это теперь officially поддерживается:

https://github.com/Microsoft/vscode/blob/master/src/vs/vscode.d.ts#L6431

export namespace debug { 

    /** 
    * The currently active [debug session](#DebugSession) or `undefined`. The active debug session is the one 
    * represented by the debug action floating window or the one currently shown in the drop down menu of the debug action floating window. 
    * If no debug session is active, the value is `undefined`. 
    */ 
    export let activeDebugSession: DebugSession | undefined; 

    /** 
    * The currently active [debug console](#DebugConsole). 
    */ 
    export let activeDebugConsole: DebugConsole; 

    /** 
    * List of breakpoints. 
    */ 
    export let breakpoints: Breakpoint[]; 


    /** 
    * An [event](#Event) which fires when the [active debug session](#debug.activeDebugSession) 
    * has changed. *Note* that the event also fires when the active debug session changes 
    * to `undefined`. 
    */ 
    export const onDidChangeActiveDebugSession: Event<DebugSession | undefined>; 

    /** 
    * An [event](#Event) which fires when a new [debug session](#DebugSession) has been started. 
    */ 
    export const onDidStartDebugSession: Event<DebugSession>; 

    /** 
    * An [event](#Event) which fires when a custom DAP event is received from the [debug session](#DebugSession). 
    */ 
    export const onDidReceiveDebugSessionCustomEvent: Event<DebugSessionCustomEvent>; 

    /** 
    * An [event](#Event) which fires when a [debug session](#DebugSession) has terminated. 
    */ 
    export const onDidTerminateDebugSession: Event<DebugSession>; 

    /** 
    * An [event](#Event) that is emitted when the set of breakpoints is added, removed, or changed. 
    */ 
    export const onDidChangeBreakpoints: Event<BreakpointsChangeEvent>; 


    /** 
    * Register a [debug configuration provider](#DebugConfigurationProvider) for a specifc debug type. 
    * More than one provider can be registered for the same type. 
    * 
    * @param type The debug type for which the provider is registered. 
    * @param provider The [debug configuration provider](#DebugConfigurationProvider) to register. 
    * @return A [disposable](#Disposable) that unregisters this provider when being disposed. 
    */ 
    export function registerDebugConfigurationProvider(debugType: string, provider: DebugConfigurationProvider): Disposable; 

    /** 
    * Start debugging by using either a named launch or named compound configuration, 
    * or by directly passing a [DebugConfiguration](#DebugConfiguration). 
    * The named configurations are looked up in '.vscode/launch.json' found in the given folder. 
    * Before debugging starts, all unsaved files are saved and the launch configurations are brought up-to-date. 
    * Folder specific variables used in the configuration (e.g. '${workspaceFolder}') are resolved against the given folder. 
    * @param folder The [workspace folder](#WorkspaceFolder) for looking up named configurations and resolving variables or `undefined` for a non-folder setup. 
    * @param nameOrConfiguration Either the name of a debug or compound configuration or a [DebugConfiguration](#DebugConfiguration) object. 
    * @return A thenable that resolves when debugging could be successfully started. 
    */ 
    export function startDebugging(folder: WorkspaceFolder | undefined, nameOrConfiguration: string | DebugConfiguration): Thenable<boolean>; 

    /** 
    * Add breakpoints. 
    * @param breakpoints The breakpoints to add. 
    */ 
    export function addBreakpoints(breakpoints: Breakpoint[]): void; 

    /** 
    * Remove breakpoints. 
    * @param breakpoints The breakpoints to remove. 
    */ 
    export function removeBreakpoints(breakpoints: Breakpoint[]): void; 
}