use-monaco
Version:
[](https://npm.im/use-monaco)
80 lines • 2.86 kB
JavaScript
;
/**
* Copyright (c) 2020 GraphQL Contributors.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.toMarkerData = exports.toCompletion = exports.toGraphQLPosition = exports.toMonacoRange = void 0;
// @ts-ignore
function toMonacoRange(range) {
return {
startLineNumber: range.start.line + 1,
startColumn: range.start.character + 1,
endLineNumber: range.end.line + 1,
endColumn: range.end.character + 1,
};
}
exports.toMonacoRange = toMonacoRange;
// @ts-ignore
function toGraphQLPosition(position) {
return { line: position.lineNumber - 1, character: position.column - 1 };
}
exports.toGraphQLPosition = toGraphQLPosition;
function toCompletion(entry, range) {
return {
label: entry.label,
// TODO: when adding variables to getAutocompleteSuggestions, we appended the $.
// this appears to cause an issue in monaco, but not vscode
insertText: entry.insertText ||
(!entry.label.startsWith('$') ? entry.label : entry.label.substring(1)),
sortText: entry.sortText,
filterText: entry.filterText,
documentation: entry.documentation,
detail: entry.detail,
// @ts-ignore
range: range ? toMonacoRange(range) : undefined,
kind: entry.kind,
};
}
exports.toCompletion = toCompletion;
/**
* Monaco and Vscode have slightly different ideas of marker severity.
* for example, vscode has Error = 1, whereas monaco has Error = 8. this takes care of that
* @param severity {DiagnosticSeverity} optional vscode diagnostic severity to convert to monaco MarkerSeverity
* @returns {monaco.MarkerSeverity} the matching marker severity level on monaco's terms
*/
// export function toMonacoSeverity(severity?: Diagnostic['severity']): monaco.MarkerSeverity {
// switch (severity) {
// case 1: {
// return monaco.MarkerSeverity.Error
// }
// case 4: {
// return monaco.MarkerSeverity.Hint
// }
// case 3: {
// return monaco.MarkerSeverity.Info
// }
// case 2: {
// return monaco.MarkerSeverity.Warning
// }
// default: {
// return monaco.MarkerSeverity.Warning
// }
// }
// }
function toMarkerData(diagnostic) {
return {
startLineNumber: diagnostic.range.start.line + 1,
endLineNumber: diagnostic.range.end.line + 1,
startColumn: diagnostic.range.start.character + 1,
endColumn: diagnostic.range.end.character,
message: diagnostic.message,
severity: 5,
// severity: toMonacoSeverity(diagnostic.severity),
code: diagnostic.code || undefined,
};
}
exports.toMarkerData = toMarkerData;
//# sourceMappingURL=utils.js.map