sample.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const value = `
  2. const f = (a, b) => a + b;
  3. const result = f(2, 5);
  4. `;
  5. const editor = monaco.editor.create(document.getElementById("container"), {
  6. value,
  7. language: "javascript"
  8. });
  9. monaco.languages.registerInlayHintsProvider('javascript', {
  10. provideInlayHints(model, range, token) {
  11. return [{
  12. kind: monaco.languages.InlayHintKind.Type,
  13. position: { column: 13, lineNumber: 4 },
  14. text: `: Number`,
  15. }, {
  16. kind: monaco.languages.InlayHintKind.Type,
  17. position: { column: 13, lineNumber: 2 },
  18. text: `: Number`,
  19. }, {
  20. kind: monaco.languages.InlayHintKind.Type,
  21. position: { column: 16, lineNumber: 2 },
  22. text: `: Number`,
  23. whitespaceBefore: true, // see difference between a and b parameter
  24. }, {
  25. kind: monaco.languages.InlayHintKind.Parameter,
  26. position: { column: 18, lineNumber: 4 },
  27. text: `a:`,
  28. }, {
  29. kind: monaco.languages.InlayHintKind.Parameter,
  30. position: { column: 21, lineNumber: 4 },
  31. text: `b:`,
  32. whitespaceAfter: true, // similar to whitespaceBefore
  33. }]
  34. }
  35. });