UNPKG

@theia/monaco

Version:
129 lines 5.28 kB
"use strict"; // ***************************************************************************** // Copyright (C) 2020 TypeFox and others. // // This program and the accompanying materials are made available under the // terms of the Eclipse Public License v. 2.0 which is available at // http://www.eclipse.org/legal/epl-2.0. // // This Source Code may also be made available under the following Secondary // Licenses when the conditions for such availability set forth in the Eclipse // Public License v. 2.0 are satisfied: GNU General Public License, version 2 // with the GNU Classpath Exception which is available at // https://www.gnu.org/software/classpath/license.html. // // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 // ***************************************************************************** Object.defineProperty(exports, "__esModule", { value: true }); exports.ProtocolToMonacoConverter = void 0; const tslib_1 = require("tslib"); const inversify_1 = require("@theia/core/shared/inversify"); const monaco = require("@theia/monaco-editor-core"); let ProtocolToMonacoConverter = class ProtocolToMonacoConverter { asRange(range) { if (range === undefined) { return undefined; } const start = this.asPosition(range.start); const end = this.asPosition(range.end); if (start instanceof monaco.Position && end instanceof monaco.Position) { return new monaco.Range(start.lineNumber, start.column, end.lineNumber, end.column); } const startLineNumber = !start || start.lineNumber === undefined ? undefined : start.lineNumber; const startColumn = !start || start.column === undefined ? undefined : start.column; const endLineNumber = !end || end.lineNumber === undefined ? undefined : end.lineNumber; const endColumn = !end || end.column === undefined ? undefined : end.column; return { startLineNumber, startColumn, endLineNumber, endColumn }; } asPosition(position) { if (position === undefined) { return undefined; } const { line, character } = position; const lineNumber = line === undefined ? undefined : line + 1; const column = character === undefined ? undefined : character + 1; if (lineNumber !== undefined && column !== undefined) { return new monaco.Position(lineNumber, column); } return { lineNumber, column }; } asLocation(item) { if (!item) { return undefined; } const uri = monaco.Uri.parse(item.uri); const range = this.asRange(item.range); return { uri, range }; } asTextEdit(edit) { if (!edit) { return undefined; } const range = this.asRange(edit.range); return { range, text: edit.newText }; } asTextEdits(items) { if (!items) { return undefined; } return items.map(item => this.asTextEdit(item)); } asSeverity(severity) { if (severity === 1) { return monaco.MarkerSeverity.Error; } if (severity === 2) { return monaco.MarkerSeverity.Warning; } if (severity === 3) { return monaco.MarkerSeverity.Info; } return monaco.MarkerSeverity.Hint; } asDiagnostics(diagnostics) { if (!diagnostics) { return undefined; } return diagnostics.map(diagnostic => this.asDiagnostic(diagnostic)); } asDiagnostic(diagnostic) { return { code: typeof diagnostic.code === 'number' ? diagnostic.code.toString() : diagnostic.code, severity: this.asSeverity(diagnostic.severity), message: diagnostic.message, source: diagnostic.source, startLineNumber: diagnostic.range.start.line + 1, startColumn: diagnostic.range.start.character + 1, endLineNumber: diagnostic.range.end.line + 1, endColumn: diagnostic.range.end.character + 1, relatedInformation: this.asRelatedInformations(diagnostic.relatedInformation), tags: diagnostic.tags }; } asRelatedInformations(relatedInformation) { if (!relatedInformation) { return undefined; } return relatedInformation.map(item => this.asRelatedInformation(item)); } asRelatedInformation(relatedInformation) { return { resource: monaco.Uri.parse(relatedInformation.location.uri), startLineNumber: relatedInformation.location.range.start.line + 1, startColumn: relatedInformation.location.range.start.character + 1, endLineNumber: relatedInformation.location.range.end.line + 1, endColumn: relatedInformation.location.range.end.character + 1, message: relatedInformation.message }; } }; exports.ProtocolToMonacoConverter = ProtocolToMonacoConverter; exports.ProtocolToMonacoConverter = ProtocolToMonacoConverter = tslib_1.__decorate([ (0, inversify_1.injectable)() ], ProtocolToMonacoConverter); //# sourceMappingURL=protocol-to-monaco-converter.js.map