/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Code } from './code'; export const enum ProblemSeverity { WARNING = 0, ERROR = 1 } export class Problems { static PROBLEMS_VIEW_SELECTOR = '.panel.markers-panel'; constructor(private code: Code) { } public async showProblemsView(): Promise { await this.toggleProblemsView(); await this.waitForProblemsView(); } public async hideProblemsView(): Promise { await this.toggleProblemsView(); await this.code.waitForElement(Problems.PROBLEMS_VIEW_SELECTOR, el => !el); } private async toggleProblemsView(): Promise { if (process.platform === 'darwin') { await this.code.dispatchKeybinding('cmd+shift+m'); } else { await this.code.dispatchKeybinding('ctrl+shift+m'); } } public async waitForProblemsView(): Promise { await this.code.waitForElement(Problems.PROBLEMS_VIEW_SELECTOR); } public static getSelectorInProblemsView(problemType: ProblemSeverity): string { let selector = problemType === ProblemSeverity.WARNING ? 'severity-warning' : 'severity-error'; return `div[id="workbench.panel.markers"] .monaco-tl-contents .marker-icon.${selector}`; } public static getSelectorInEditor(problemType: ProblemSeverity): string { let selector = problemType === ProblemSeverity.WARNING ? 'squiggly-warning' : 'squiggly-error'; return `.view-overlays .cdr.${selector}`; } }