7e3ac6045aa178588f0bd6e00dfa2b978457cc5ecca7259e0c8a6a822ca6f7753dfdadaf69766d8a54c66b8fbd04521f0082dc6daaaafe504b66dc9c14cd0d 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. import Severity from '../../../base/common/severity.js';
  6. import { localize } from '../../../nls.js';
  7. import { createDecorator } from '../../instantiation/common/instantiation.js';
  8. export var MarkerSeverity;
  9. (function (MarkerSeverity) {
  10. MarkerSeverity[MarkerSeverity["Hint"] = 1] = "Hint";
  11. MarkerSeverity[MarkerSeverity["Info"] = 2] = "Info";
  12. MarkerSeverity[MarkerSeverity["Warning"] = 4] = "Warning";
  13. MarkerSeverity[MarkerSeverity["Error"] = 8] = "Error";
  14. })(MarkerSeverity || (MarkerSeverity = {}));
  15. (function (MarkerSeverity) {
  16. function compare(a, b) {
  17. return b - a;
  18. }
  19. MarkerSeverity.compare = compare;
  20. const _displayStrings = Object.create(null);
  21. _displayStrings[MarkerSeverity.Error] = localize('sev.error', "Error");
  22. _displayStrings[MarkerSeverity.Warning] = localize('sev.warning', "Warning");
  23. _displayStrings[MarkerSeverity.Info] = localize('sev.info', "Info");
  24. function toString(a) {
  25. return _displayStrings[a] || '';
  26. }
  27. MarkerSeverity.toString = toString;
  28. function fromSeverity(severity) {
  29. switch (severity) {
  30. case Severity.Error: return MarkerSeverity.Error;
  31. case Severity.Warning: return MarkerSeverity.Warning;
  32. case Severity.Info: return MarkerSeverity.Info;
  33. case Severity.Ignore: return MarkerSeverity.Hint;
  34. }
  35. }
  36. MarkerSeverity.fromSeverity = fromSeverity;
  37. function toSeverity(severity) {
  38. switch (severity) {
  39. case MarkerSeverity.Error: return Severity.Error;
  40. case MarkerSeverity.Warning: return Severity.Warning;
  41. case MarkerSeverity.Info: return Severity.Info;
  42. case MarkerSeverity.Hint: return Severity.Ignore;
  43. }
  44. }
  45. MarkerSeverity.toSeverity = toSeverity;
  46. })(MarkerSeverity || (MarkerSeverity = {}));
  47. export var IMarkerData;
  48. (function (IMarkerData) {
  49. const emptyString = '';
  50. function makeKey(markerData) {
  51. return makeKeyOptionalMessage(markerData, true);
  52. }
  53. IMarkerData.makeKey = makeKey;
  54. function makeKeyOptionalMessage(markerData, useMessage) {
  55. const result = [emptyString];
  56. if (markerData.source) {
  57. result.push(markerData.source.replace('¦', '\\¦'));
  58. }
  59. else {
  60. result.push(emptyString);
  61. }
  62. if (markerData.code) {
  63. if (typeof markerData.code === 'string') {
  64. result.push(markerData.code.replace('¦', '\\¦'));
  65. }
  66. else {
  67. result.push(markerData.code.value.replace('¦', '\\¦'));
  68. }
  69. }
  70. else {
  71. result.push(emptyString);
  72. }
  73. if (markerData.severity !== undefined && markerData.severity !== null) {
  74. result.push(MarkerSeverity.toString(markerData.severity));
  75. }
  76. else {
  77. result.push(emptyString);
  78. }
  79. // Modifed to not include the message as part of the marker key to work around
  80. // https://github.com/microsoft/vscode/issues/77475
  81. if (markerData.message && useMessage) {
  82. result.push(markerData.message.replace('¦', '\\¦'));
  83. }
  84. else {
  85. result.push(emptyString);
  86. }
  87. if (markerData.startLineNumber !== undefined && markerData.startLineNumber !== null) {
  88. result.push(markerData.startLineNumber.toString());
  89. }
  90. else {
  91. result.push(emptyString);
  92. }
  93. if (markerData.startColumn !== undefined && markerData.startColumn !== null) {
  94. result.push(markerData.startColumn.toString());
  95. }
  96. else {
  97. result.push(emptyString);
  98. }
  99. if (markerData.endLineNumber !== undefined && markerData.endLineNumber !== null) {
  100. result.push(markerData.endLineNumber.toString());
  101. }
  102. else {
  103. result.push(emptyString);
  104. }
  105. if (markerData.endColumn !== undefined && markerData.endColumn !== null) {
  106. result.push(markerData.endColumn.toString());
  107. }
  108. else {
  109. result.push(emptyString);
  110. }
  111. result.push(emptyString);
  112. return result.join('¦');
  113. }
  114. IMarkerData.makeKeyOptionalMessage = makeKeyOptionalMessage;
  115. })(IMarkerData || (IMarkerData = {}));
  116. export const IMarkerService = createDecorator('markerService');