extending-language-services-color-provider-example.html 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!DOCTYPE html>
  2. <!-- THIS IS A GENERATED FILE VIA `npm run simpleserver` -->
  3. <html>
  4. <head>
  5. <base href="..">
  6. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  7. </head>
  8. <body>
  9. <style>
  10. /*----------------------------------------SAMPLE CSS START*/
  11. /*----------------------------------------SAMPLE CSS END*/
  12. </style>
  13. <a class="loading-opts" href="playground.generated/index.html">[&lt;&lt; BACK]</a> <br/>
  14. THIS IS A GENERATED FILE VIA `npm run simpleserver`
  15. <div id="bar" style="margin-bottom: 6px;"></div>
  16. <div style="clear:both"></div>
  17. <div id="outer-container" style="width:800px;height:450px;border: 1px solid grey">
  18. <!-- ----------------------------------------SAMPLE HTML START-->
  19. <div id="container" style="height: 100%"></div>
  20. <!-- ----------------------------------------SAMPLE HTML END-->
  21. </div>
  22. <div style="clear:both"></div>
  23. <script src="../../metadata.js"></script>
  24. <script src="dev-setup.js"></script>
  25. <script>
  26. loadEditor(function() {
  27. /*----------------------------------------SAMPLE JS START*/
  28. monaco.languages.register({
  29. id: 'colorLanguage'
  30. });
  31. monaco.editor.create(document.getElementById('container'), {
  32. value: 'red\nblue\ngreen',
  33. language: 'colorLanguage',
  34. colorDecorators: true
  35. });
  36. monaco.languages.registerColorProvider('colorLanguage', {
  37. provideColorPresentations: (model, colorInfo) => {
  38. var color = colorInfo.color;
  39. var red256 = Math.round(color.red * 255);
  40. var green256 = Math.round(color.green * 255);
  41. var blue256 = Math.round(color.blue * 255);
  42. var label;
  43. if (color.alpha === 1) {
  44. label = 'rgb(' + red256 + ', ' + green256 + ', ' + blue256 + ')';
  45. } else {
  46. label = 'rgba(' + red256 + ', ' + green256 + ', ' + blue256 + ', ' + color.alpha + ')';
  47. }
  48. return [
  49. {
  50. label: label
  51. }
  52. ];
  53. },
  54. provideDocumentColors: () => {
  55. return [
  56. {
  57. color: { red: 1, blue: 0, green: 0, alpha: 1 },
  58. range: {
  59. startLineNumber: 1,
  60. startColumn: 0,
  61. endLineNumber: 1,
  62. endColumn: 0
  63. }
  64. },
  65. {
  66. color: { red: 0, blue: 1, green: 0, alpha: 1 },
  67. range: {
  68. startLineNumber: 2,
  69. startColumn: 0,
  70. endLineNumber: 2,
  71. endColumn: 0
  72. }
  73. },
  74. {
  75. color: { red: 0, blue: 0, green: 1, alpha: 1 },
  76. range: {
  77. startLineNumber: 3,
  78. startColumn: 0,
  79. endLineNumber: 3,
  80. endColumn: 0
  81. }
  82. }
  83. ];
  84. }
  85. });
  86. /*----------------------------------------SAMPLE JS END*/
  87. });
  88. </script>
  89. </body>
  90. </html>