MediaWiki:Gadget-prism-language-c.js

来自萌娘共享
跳转至: 导航搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
  1. /**
  2. * -------------------------------------------------------------------------
  3. * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
  4. * -------------------------------------------------------------------------
  5. */
  6. var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/prism-language-c/Gadget-prism-language-c.js|user=[[U:AnnAngela]]|co-authors=GH:github-actions[bot]|longId=103d1a563ea4ccc8ff29fb55c9bcd88329a56eb5|shortId=103d1a56|summary=feat: rename (#594)|body=<nowiki>Co-authored-by: github-actions[bot] <41898282+github-actions[bot]📧users.noreply.github.com></nowiki>}}';
  7. /* <pre> */
  8. "use strict";
  9. Prism.languages.c = Prism.languages.extend('clike', {
  10. 'comment': {
  11. pattern: /\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,
  12. greedy: true
  13. },
  14. 'string': {
  15. pattern: /"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
  16. greedy: true
  17. },
  18. 'class-name': {
  19. pattern: /(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,
  20. lookbehind: true
  21. },
  22. 'keyword': /\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,
  23. 'function': /\b[a-z_]\w*(?=\s*\()/i,
  24. 'number': /(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,
  25. 'operator': />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/
  26. });
  27. Prism.languages.insertBefore('c', 'string', {
  28. 'char': {
  29. pattern: /'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,
  30. greedy: true
  31. }
  32. });
  33. Prism.languages.insertBefore('c', 'string', {
  34. 'macro': {
  35. pattern: /(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,
  36. lookbehind: true,
  37. greedy: true,
  38. alias: 'property',
  39. inside: {
  40. 'string': [
  41. {
  42. pattern: /^(#\s*include\s*)<[^>]+>/,
  43. lookbehind: true
  44. },
  45. Prism.languages.c['string']
  46. ],
  47. 'char': Prism.languages.c['char'],
  48. 'comment': Prism.languages.c['comment'],
  49. 'macro-name': [
  50. {
  51. pattern: /(^#\s*define\s+)\w+\b(?!\()/i,
  52. lookbehind: true
  53. },
  54. {
  55. pattern: /(^#\s*define\s+)\w+\b(?=\()/i,
  56. lookbehind: true,
  57. alias: 'function'
  58. }
  59. ],
  60. 'directive': {
  61. pattern: /^(#\s*)[a-z]+/,
  62. lookbehind: true,
  63. alias: 'keyword'
  64. },
  65. 'directive-hash': /^#/,
  66. 'punctuation': /##|\\(?=[\r\n])/,
  67. 'expression': {
  68. pattern: /\S[\s\S]*/,
  69. inside: Prism.languages.c
  70. }
  71. }
  72. }
  73. });
  74. Prism.languages.insertBefore('c', 'function', {
  75. 'constant': /\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/
  76. });
  77. delete Prism.languages.c['boolean'];
  78. /* </pre> */