autohotkey.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. Language: AutoHotkey
  3. Author: Seongwon Lee <[email protected]>
  4. Description: AutoHotkey language definition
  5. Category: scripting
  6. */
  7. function(hljs) {
  8. var BACKTICK_ESCAPE = {
  9. begin: /`[\s\S]/
  10. };
  11. return {
  12. case_insensitive: true,
  13. keywords: {
  14. keyword: 'Break Continue Else Gosub If Loop Return While',
  15. literal: 'A|0 true false NOT AND OR',
  16. built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
  17. },
  18. contains: [
  19. {
  20. className: 'built_in',
  21. begin: 'A_[a-zA-Z0-9]+'
  22. },
  23. BACKTICK_ESCAPE,
  24. hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
  25. hljs.COMMENT(';', '$', {relevance: 0}),
  26. {
  27. className: 'number',
  28. begin: hljs.NUMBER_RE,
  29. relevance: 0
  30. },
  31. {
  32. className: 'variable', // FIXME
  33. begin: '%', end: '%',
  34. illegal: '\\n',
  35. contains: [BACKTICK_ESCAPE]
  36. },
  37. {
  38. className: 'symbol',
  39. contains: [BACKTICK_ESCAPE],
  40. variants: [
  41. {begin: '^[^\\n";]+::(?!=)'},
  42. {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things
  43. // followed by a single ':' in many languages
  44. ]
  45. },
  46. {
  47. // consecutive commas, not for highlighting but just for relevance
  48. begin: ',\\s*,'
  49. }
  50. ]
  51. }
  52. }