prism-graphql.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. Prism.languages.graphql = {
  2. 'comment': /#.*/,
  3. 'description': {
  4. pattern: /(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,
  5. greedy: true,
  6. alias: 'string',
  7. inside: {
  8. 'language-markdown': {
  9. pattern: /(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,
  10. lookbehind: true,
  11. inside: Prism.languages.markdown
  12. }
  13. }
  14. },
  15. 'string': {
  16. pattern: /"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,
  17. greedy: true
  18. },
  19. 'number': /(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,
  20. 'boolean': /\b(?:true|false)\b/,
  21. 'variable': /\$[a-z_]\w*/i,
  22. 'directive': {
  23. pattern: /@[a-z_]\w*/i,
  24. alias: 'function'
  25. },
  26. 'attr-name': {
  27. pattern: /[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,
  28. greedy: true
  29. },
  30. 'class-name': {
  31. pattern: /(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*)[a-zA-Z_]\w*/,
  32. lookbehind: true
  33. },
  34. 'fragment': {
  35. pattern: /(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,
  36. lookbehind: true,
  37. alias: 'function'
  38. },
  39. 'keyword': /\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,
  40. 'operator': /[!=|&]|\.{3}/,
  41. 'punctuation': /[!(){}\[\]:=,]/,
  42. 'constant': /\b(?!ID\b)[A-Z][A-Z_\d]*\b/
  43. };