class-highlighter.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * This file is adapted from Lezer, licensed under the MIT license:
  3. * https://github.com/lezer-parser/highlight/blob/main/src/highlight.ts
  4. */
  5. import { tagHighlighter, tags } from '@lezer/highlight'
  6. export const classHighlighter = tagHighlighter([
  7. { tag: tags.link, class: 'tok-link' },
  8. { tag: tags.heading, class: 'tok-heading' },
  9. { tag: tags.emphasis, class: 'tok-emphasis' },
  10. { tag: tags.strong, class: 'tok-strong' },
  11. { tag: tags.keyword, class: 'tok-keyword' },
  12. { tag: tags.atom, class: 'tok-atom' },
  13. { tag: tags.bool, class: 'tok-bool' },
  14. { tag: tags.url, class: 'tok-url' },
  15. { tag: tags.labelName, class: 'tok-labelName' },
  16. { tag: tags.inserted, class: 'tok-inserted' },
  17. { tag: tags.deleted, class: 'tok-deleted' },
  18. { tag: tags.literal, class: 'tok-literal' },
  19. { tag: tags.string, class: 'tok-string' },
  20. { tag: tags.number, class: 'tok-number' },
  21. {
  22. tag: [tags.regexp, tags.escape, tags.special(tags.string)],
  23. class: 'tok-string2',
  24. },
  25. { tag: tags.variableName, class: 'tok-variableName' },
  26. { tag: tags.local(tags.variableName), class: 'tok-variableName tok-local' },
  27. {
  28. tag: tags.definition(tags.variableName),
  29. class: 'tok-variableName tok-definition',
  30. },
  31. { tag: tags.special(tags.variableName), class: 'tok-variableName2' },
  32. {
  33. tag: tags.definition(tags.propertyName),
  34. class: 'tok-propertyName tok-definition',
  35. },
  36. { tag: tags.typeName, class: 'tok-typeName' },
  37. { tag: tags.namespace, class: 'tok-namespace' },
  38. { tag: tags.className, class: 'tok-className' },
  39. { tag: tags.macroName, class: 'tok-macroName' },
  40. { tag: tags.propertyName, class: 'tok-propertyName' },
  41. { tag: tags.operator, class: 'tok-operator' },
  42. { tag: tags.comment, class: 'tok-comment' },
  43. { tag: tags.meta, class: 'tok-meta' },
  44. { tag: tags.invalid, class: 'tok-invalid' },
  45. { tag: tags.punctuation, class: 'tok-punctuation' },
  46. // additional
  47. { tag: tags.attributeValue, class: 'tok-attributeValue' },
  48. ])