@xyd-js/components 0.1.0-xyd.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/README.md +3 -0
  2. package/coder.ts +1 -0
  3. package/content.ts +3 -0
  4. package/dist/CTABanner-CWX9isVG.js +1 -0
  5. package/dist/CodeSample-C5YaEpAi.js +1 -0
  6. package/dist/HomeView-CnAj-VYl.js +1 -0
  7. package/dist/UnderlineNav-C8onw9Na.js +1 -0
  8. package/dist/_rollupPluginBabelHelpers-DfQAiTCw.js +1 -0
  9. package/dist/abap-kIO_7z1o.js +1 -0
  10. package/dist/actionscript-3-DiaraCXE.js +1 -0
  11. package/dist/ada-aNFKX2pl.js +1 -0
  12. package/dist/angular-html-y0qIEhS2.js +1 -0
  13. package/dist/angular-ts-Bn_6f37o.js +1 -0
  14. package/dist/apache-Cx7e0H64.js +1 -0
  15. package/dist/apex-CdSCJjuL.js +1 -0
  16. package/dist/apl-BDzWBUim.js +1 -0
  17. package/dist/applescript-CJFkzk5i.js +1 -0
  18. package/dist/ara-BC9R9M5c.js +1 -0
  19. package/dist/asciidoc-lqQQs4M0.js +1 -0
  20. package/dist/asm-QQeI-gwp.js +1 -0
  21. package/dist/astro-BPstp8LF.js +1 -0
  22. package/dist/awk-Cxb7Sqvk.js +1 -0
  23. package/dist/ballerina-G8TyVc6O.js +1 -0
  24. package/dist/bat-UDEmXz-g.js +1 -0
  25. package/dist/beancount-BWg86rhE.js +1 -0
  26. package/dist/berry-5E5uGOYg.js +1 -0
  27. package/dist/bibtex-CZn_FFnb.js +1 -0
  28. package/dist/bicep-D_G0XT5J.js +1 -0
  29. package/dist/blade-7dxmctkK.js +1 -0
  30. package/dist/brand.d.ts +30 -0
  31. package/dist/brand.js +1 -0
  32. package/dist/c-CrEz-oYf.js +1 -0
  33. package/dist/cadence-BulSIR1A.js +1 -0
  34. package/dist/clarity-m2OigCMT.js +1 -0
  35. package/dist/clojure-Bpes2rhL.js +1 -0
  36. package/dist/cmake-C4Tr1SQC.js +1 -0
  37. package/dist/cobol-Dp8xGW1S.js +1 -0
  38. package/dist/codeowners-Bs3mpoau.js +1 -0
  39. package/dist/codeql-CvQzaisq.js +1 -0
  40. package/dist/coder.d.ts +19 -0
  41. package/dist/coder.js +1 -0
  42. package/dist/coffee-DOjtyJj_.js +1 -0
  43. package/dist/common-lisp-DGVR8DFi.js +1 -0
  44. package/dist/content.d.ts +225 -0
  45. package/dist/content.js +1 -0
  46. package/dist/cpp-BUT7C4Bo.js +1 -0
  47. package/dist/crystal-BJh9OJ1_.js +1 -0
  48. package/dist/csharp-BhZuAD8H.js +1 -0
  49. package/dist/css-8_G4_UCW.js +1 -0
  50. package/dist/csv-DLRyYdMG.js +1 -0
  51. package/dist/cue-DAgMCCsT.js +1 -0
  52. package/dist/cypher-CtSiSKRh.js +1 -0
  53. package/dist/d-feZJOTtr.js +1 -0
  54. package/dist/dark-plus-Dcn2h2HL.js +1 -0
  55. package/dist/dart-CNOu4aud.js +1 -0
  56. package/dist/dax-Dkp1Uj6t.js +1 -0
  57. package/dist/desktop-CAGQzotA.js +1 -0
  58. package/dist/diff-D6yk3_ZG.js +1 -0
  59. package/dist/docker-BdTrQq0b.js +1 -0
  60. package/dist/dotenv-BeHGAMs7.js +1 -0
  61. package/dist/dracula-BUaMrXr0.js +1 -0
  62. package/dist/dracula-soft-CBx6n76m.js +1 -0
  63. package/dist/dream-maker-BU0sZZmb.js +1 -0
  64. package/dist/edge-D2Tk5tmg.js +1 -0
  65. package/dist/elixir-B-l3Nz-G.js +1 -0
  66. package/dist/elm-Bqm7aRpV.js +1 -0
  67. package/dist/emacs-lisp-BSvpfolf.js +1 -0
  68. package/dist/erb-CwBHxfFV.js +1 -0
  69. package/dist/erlang-B0PtHWg2.js +1 -0
  70. package/dist/fennel-CdN4E9Xo.js +1 -0
  71. package/dist/fish-XrbYjeRx.js +1 -0
  72. package/dist/fluent-zYsEgElv.js +1 -0
  73. package/dist/fortran-fixed-form-CPwX6okW.js +1 -0
  74. package/dist/fortran-free-form-B6Kk9658.js +1 -0
  75. package/dist/fsharp-CbMfVCMr.js +1 -0
  76. package/dist/gdresource-CdRUpBQO.js +1 -0
  77. package/dist/gdscript-CYXv_Ac9.js +1 -0
  78. package/dist/gdshader-CtiaGYI5.js +1 -0
  79. package/dist/genie-C-gOIth7.js +1 -0
  80. package/dist/gherkin-uGsOfG-k.js +1 -0
  81. package/dist/git-commit-CWQvkRNX.js +1 -0
  82. package/dist/git-rebase-BZ0YVJ-O.js +1 -0
  83. package/dist/github-dark-DCm4kydX.js +1 -0
  84. package/dist/github-dark-dimmed-CsRUrOJA.js +1 -0
  85. package/dist/github-from-css-CTRi6tFC.js +1 -0
  86. package/dist/github-light-B2ofRYMU.js +1 -0
  87. package/dist/gleam-C9ZZ3Vp2.js +1 -0
  88. package/dist/glimmer-js-Cuwfndkm.js +1 -0
  89. package/dist/glimmer-ts-D8nR8_k2.js +1 -0
  90. package/dist/glsl-qc_rLvzz.js +1 -0
  91. package/dist/gnuplot-BgHAcd--.js +1 -0
  92. package/dist/go-Dm8VBUM2.js +1 -0
  93. package/dist/graphql-CRmnB6D5.js +1 -0
  94. package/dist/groovy-DJcw8dX4.js +1 -0
  95. package/dist/hack-DYOVz52F.js +1 -0
  96. package/dist/haml-j8Vx_P4q.js +1 -0
  97. package/dist/handlebars-Qz3hgrPG.js +1 -0
  98. package/dist/haskell-DE3vVmXn.js +1 -0
  99. package/dist/haxe-DpuNPTTj.js +1 -0
  100. package/dist/hcl-BvV3VZ9s.js +1 -0
  101. package/dist/hjson-CsTZvU0B.js +1 -0
  102. package/dist/hlsl-BLZumTGu.js +1 -0
  103. package/dist/html-BJsWDmIe.js +1 -0
  104. package/dist/html-derivative-zDWJvwg5.js +1 -0
  105. package/dist/http-BiMppEBd.js +1 -0
  106. package/dist/hxml-DG2jWwyK.js +1 -0
  107. package/dist/hy-C9zVJlJf.js +1 -0
  108. package/dist/imba-DGD1mm8E.js +1 -0
  109. package/dist/index-TKJ66_wI.js +1 -0
  110. package/dist/index.css +135 -0
  111. package/dist/index.d.ts +2 -0
  112. package/dist/index.js +1 -0
  113. package/dist/ini-CU7wgrgh.js +1 -0
  114. package/dist/java-DyOZhX5L.js +1 -0
  115. package/dist/javascript-C0AWZ4eK.js +1 -0
  116. package/dist/jinja-Lc82IfGI.js +1 -0
  117. package/dist/jison-DT7Oqeqm.js +1 -0
  118. package/dist/json-Zoq3rK60.js +1 -0
  119. package/dist/json5-BOFh3mt2.js +1 -0
  120. package/dist/jsonc-CPutX9W5.js +1 -0
  121. package/dist/jsonl-xWfKSBhV.js +1 -0
  122. package/dist/jsonnet-UcnvaLwK.js +1 -0
  123. package/dist/jssm-BRT8_Uqd.js +1 -0
  124. package/dist/jsx-B4WNxrCK.js +1 -0
  125. package/dist/julia-i7_3XSV_.js +1 -0
  126. package/dist/kotlin-B_s0KNy5.js +1 -0
  127. package/dist/kusto-CDr4m-xT.js +1 -0
  128. package/dist/latex-BNB6MZrj.js +1 -0
  129. package/dist/layouts.d.ts +19 -0
  130. package/dist/layouts.js +1 -0
  131. package/dist/lean-2dBp1asm.js +1 -0
  132. package/dist/less-CfPPFFsV.js +1 -0
  133. package/dist/light-plus-glPHycm5.js +1 -0
  134. package/dist/liquid-Bj1DN66U.js +1 -0
  135. package/dist/log-CKSz9t_o.js +1 -0
  136. package/dist/logo-D3UPVeLP.js +1 -0
  137. package/dist/lua-C1EFGxtA.js +1 -0
  138. package/dist/luau-Dvb2LLsw.js +1 -0
  139. package/dist/make-TqphZF-7.js +1 -0
  140. package/dist/markdown-yX62Igf3.js +1 -0
  141. package/dist/marko-LH6NoP97.js +1 -0
  142. package/dist/material-darker-D6whucX3.js +1 -0
  143. package/dist/material-default-DYqS7fqa.js +1 -0
  144. package/dist/material-from-css-DlWo_ZDV.js +1 -0
  145. package/dist/material-lighter-CYQaMsGh.js +1 -0
  146. package/dist/material-ocean-Dl_zLA-F.js +1 -0
  147. package/dist/material-palenight-Cd4X9kqy.js +1 -0
  148. package/dist/matlab-Dy9K5GW8.js +1 -0
  149. package/dist/mdc-DhAfBnnn.js +1 -0
  150. package/dist/mdx-tnT2uTqR.js +1 -0
  151. package/dist/mermaid-aEaCok9S.js +1 -0
  152. package/dist/min-dark-CpapYCVz.js +1 -0
  153. package/dist/min-light-plRN0zW-.js +1 -0
  154. package/dist/mojo-BanaVmFY.js +1 -0
  155. package/dist/monokai-Cs2_BG4b.js +1 -0
  156. package/dist/move-B_kaWhAV.js +1 -0
  157. package/dist/narrat-6tChrAmV.js +1 -0
  158. package/dist/nextflow-BYB6CU6V.js +1 -0
  159. package/dist/nginx-Clr7XfzW.js +1 -0
  160. package/dist/nim-gLesixmv.js +1 -0
  161. package/dist/nix-DCgUXh-o.js +1 -0
  162. package/dist/nord-BHSE8FbR.js +1 -0
  163. package/dist/nushell-DDKGkuZY.js +1 -0
  164. package/dist/objective-c-BsQdhSk0.js +1 -0
  165. package/dist/objective-cpp-B-VZlBXW.js +1 -0
  166. package/dist/ocaml-B19L2xxl.js +1 -0
  167. package/dist/one-dark-pro-AWPQgJbJ.js +1 -0
  168. package/dist/pages.d.ts +30 -0
  169. package/dist/pages.js +1 -0
  170. package/dist/pascal-B0kVBVTU.js +1 -0
  171. package/dist/perl-Bs2cXIO6.js +1 -0
  172. package/dist/php-BgaH_AHK.js +1 -0
  173. package/dist/plsql-CPY7hT9n.js +1 -0
  174. package/dist/po-BszTsnLZ.js +1 -0
  175. package/dist/poimandres-CZF4JUv5.js +1 -0
  176. package/dist/postcss-DQ0frX96.js +1 -0
  177. package/dist/powerquery-BitONm6p.js +1 -0
  178. package/dist/powershell-B_lVHVgu.js +1 -0
  179. package/dist/prisma-CqkE3olT.js +1 -0
  180. package/dist/prolog-Bpuon3aK.js +1 -0
  181. package/dist/proto-C349dup0.js +1 -0
  182. package/dist/pug-Bbf3g_hT.js +1 -0
  183. package/dist/puppet-qDtDc0so.js +1 -0
  184. package/dist/purescript-C03CHyrT.js +1 -0
  185. package/dist/python-D5e4BtVB.js +1 -0
  186. package/dist/qml-LVCeHqxw.js +1 -0
  187. package/dist/qmldir-BEg8Q-XX.js +1 -0
  188. package/dist/qss-vq-U9k0N.js +1 -0
  189. package/dist/r-DnCIdoUu.js +1 -0
  190. package/dist/racket-BQt8mf2o.js +1 -0
  191. package/dist/raku-ChTHpuBS.js +1 -0
  192. package/dist/razor-CjFZSXD2.js +1 -0
  193. package/dist/reg-12gGsscy.js +1 -0
  194. package/dist/regexp-zLCCZKTi.js +1 -0
  195. package/dist/rel-aZ4oe34Q.js +1 -0
  196. package/dist/riscv-BA9R8KI2.js +1 -0
  197. package/dist/rose-pine-8QECO0Ox.js +1 -0
  198. package/dist/rose-pine-dawn-DT77ObZh.js +1 -0
  199. package/dist/rose-pine-moon-D3-I8ETF.js +1 -0
  200. package/dist/rst-DFKlxnrd.js +1 -0
  201. package/dist/ruby-BypI_hk5.js +1 -0
  202. package/dist/rust-tE6tRkqD.js +1 -0
  203. package/dist/sas-D1sMUJql.js +1 -0
  204. package/dist/sass-DBEOLVv3.js +1 -0
  205. package/dist/scala-DUzir4os.js +1 -0
  206. package/dist/scheme-dsSqVZz3.js +1 -0
  207. package/dist/scss-B0kJw1gM.js +1 -0
  208. package/dist/shaderlab-Cd8Cbryn.js +1 -0
  209. package/dist/shellscript-BL-Ihj2z.js +1 -0
  210. package/dist/shellsession-C5KJPcFG.js +1 -0
  211. package/dist/slack-dark-JbsLGggd.js +1 -0
  212. package/dist/slack-ochin-hTeCADjA.js +1 -0
  213. package/dist/smalltalk-DQ23HuGh.js +1 -0
  214. package/dist/solarized-dark-D2bQRcX7.js +1 -0
  215. package/dist/solarized-light-6xrOKoxI.js +1 -0
  216. package/dist/solidity-DUCwohjn.js +1 -0
  217. package/dist/soy-Cy4pRjbu.js +1 -0
  218. package/dist/sparql-D7gNTkUq.js +1 -0
  219. package/dist/splunk-Dvl5Xm98.js +1 -0
  220. package/dist/sql-BfoT44Al.js +1 -0
  221. package/dist/ssh-config-C-ZFySPN.js +1 -0
  222. package/dist/stata-Dpw9jvge.js +1 -0
  223. package/dist/stylus-mJ9_5M6n.js +1 -0
  224. package/dist/svelte-DD5dtnEi.js +1 -0
  225. package/dist/swift-DDernUpH.js +1 -0
  226. package/dist/system-verilog-DeXSd9Py.js +1 -0
  227. package/dist/systemd-NetTuLPL.js +1 -0
  228. package/dist/tasl-BCm9L3tI.js +1 -0
  229. package/dist/tcl-DmWVgxCm.js +1 -0
  230. package/dist/templ-B7wt_K-d.js +1 -0
  231. package/dist/terraform-DYIIsq8p.js +1 -0
  232. package/dist/tex-DFj0qpOD.js +1 -0
  233. package/dist/toml-CFu3vY0Q.js +1 -0
  234. package/dist/ts-tags-BvMEeGTJ.js +1 -0
  235. package/dist/tslib.es6-C3PNVQlC.js +1 -0
  236. package/dist/tsv-DnenRF8k.js +1 -0
  237. package/dist/tsx-DooqfEr1.js +1 -0
  238. package/dist/turtle-DKlxyehf.js +1 -0
  239. package/dist/twig-DpQc8FUF.js +1 -0
  240. package/dist/txt-C4tHEtDr.js +1 -0
  241. package/dist/typescript-DtE5sB_4.js +1 -0
  242. package/dist/typespec-B69vp3jc.js +1 -0
  243. package/dist/typst-BzEngGMo.js +1 -0
  244. package/dist/v-Dy6tTX8K.js +1 -0
  245. package/dist/vala-DQnmDtkE.js +1 -0
  246. package/dist/vb-CqTjXY4K.js +1 -0
  247. package/dist/verilog-D6Zfe00a.js +1 -0
  248. package/dist/vhdl-Dxu0BOr9.js +1 -0
  249. package/dist/views.d.ts +17 -0
  250. package/dist/views.js +1 -0
  251. package/dist/viml-eXtfIM-m.js +1 -0
  252. package/dist/vue-D3vey6Cu.js +1 -0
  253. package/dist/vue-html-DyaqvCGV.js +1 -0
  254. package/dist/vyper-C6AULW8C.js +1 -0
  255. package/dist/wasm-Cl39COlm.js +1 -0
  256. package/dist/wenyan-DJGdsiXE.js +1 -0
  257. package/dist/wgsl-CDhIPMwJ.js +1 -0
  258. package/dist/wikitext-D05PpJ8X.js +1 -0
  259. package/dist/wolfram-JgWnd2g7.js +1 -0
  260. package/dist/writer.d.ts +157 -0
  261. package/dist/writer.js +1 -0
  262. package/dist/xml-Cc1Sy-d4.js +1 -0
  263. package/dist/xsl-CEYTrbD0.js +1 -0
  264. package/dist/yaml-NvTdC05o.js +1 -0
  265. package/dist/zenscript-De0mU_BW.js +1 -0
  266. package/dist/zig-D9TJVGyp.js +1 -0
  267. package/index.ts +1 -0
  268. package/layouts.ts +1 -0
  269. package/package.json +58 -0
  270. package/postcss.config.cjs +5 -0
  271. package/rollup.config.js +149 -0
  272. package/src/brand/Button/Button.tsx +48 -0
  273. package/src/brand/Button/index.ts +7 -0
  274. package/src/brand/CTABanner/CTABanner.tsx +127 -0
  275. package/src/brand/CTABanner/index.ts +8 -0
  276. package/src/brand/Footer/Footer.tsx +36 -0
  277. package/src/brand/Footer/index.ts +3 -0
  278. package/src/brand/index.ts +5 -0
  279. package/src/coder/CodeCopy/CodeCopy.style.tsx +21 -0
  280. package/src/coder/CodeCopy/CodeCopy.tsx +32 -0
  281. package/src/coder/CodeCopy/index.ts +7 -0
  282. package/src/coder/CodeSample/CodeSample.styles.tsx +137 -0
  283. package/src/coder/CodeSample/CodeSample.tsx +150 -0
  284. package/src/coder/CodeSample/default-theme.ts +266 -0
  285. package/src/coder/CodeSample/index.ts +12 -0
  286. package/src/coder/CodeSample/withLocalStored.tsx +50 -0
  287. package/src/coder/README.md +1 -0
  288. package/src/coder/index.ts +3 -0
  289. package/src/content/Anchor/Anchor.tsx +63 -0
  290. package/src/content/Anchor/index.tsx +3 -0
  291. package/src/content/Content/Content.tsx +20 -0
  292. package/src/content/Content/index.tsx +3 -0
  293. package/src/content/Content.tsx +137 -0
  294. package/src/content/Subtitle/Subtitle.tsx +21 -0
  295. package/src/content/Subtitle/index.tsx +3 -0
  296. package/src/content/index.ts +3 -0
  297. package/src/layouts/Layout.styles.tsx +151 -0
  298. package/src/layouts/Layout.tsx +121 -0
  299. package/src/layouts/index.ts +7 -0
  300. package/src/pages/HomePage/HomePage.tsx +93 -0
  301. package/src/pages/HomePage/index.ts +5 -0
  302. package/src/pages/HomePage/types.ts +41 -0
  303. package/src/pages/index.ts +1 -0
  304. package/src/views/HomeView/HomeView.tsx +74 -0
  305. package/src/views/HomeView/index.ts +3 -0
  306. package/src/views/index.ts +1 -0
  307. package/src/writer/Badge/Badge.styles.tsx +29 -0
  308. package/src/writer/Badge/Badge.tsx +28 -0
  309. package/src/writer/Badge/index.ts +7 -0
  310. package/src/writer/Blockquote/Blockquote.styles.tsx +10 -0
  311. package/src/writer/Blockquote/Blockquote.tsx +13 -0
  312. package/src/writer/Blockquote/index.ts +7 -0
  313. package/src/writer/Breadcrumbs/Breadcrumbs.styles.ts +28 -0
  314. package/src/writer/Breadcrumbs/Breadcrumbs.tsx +46 -0
  315. package/src/writer/Breadcrumbs/index.ts +7 -0
  316. package/src/writer/Callout/Callout.styles.tsx +50 -0
  317. package/src/writer/Callout/Callout.tsx +37 -0
  318. package/src/writer/Callout/index.tsx +3 -0
  319. package/src/writer/Code/Code.styles.tsx +17 -0
  320. package/src/writer/Code/Code.tsx +13 -0
  321. package/src/writer/Code/index.ts +3 -0
  322. package/src/writer/Details/Details.styles.tsx +76 -0
  323. package/src/writer/Details/Details.tsx +122 -0
  324. package/src/writer/Details/index.ts +3 -0
  325. package/src/writer/GuideCard/GuideCard.styles.tsx +115 -0
  326. package/src/writer/GuideCard/GuideCard.tsx +81 -0
  327. package/src/writer/GuideCard/index.ts +1 -0
  328. package/src/writer/Heading/Heading.styles.tsx +73 -0
  329. package/src/writer/Heading/Heading.tsx +53 -0
  330. package/src/writer/Heading/index.ts +7 -0
  331. package/src/writer/Hr/Hr.styles.tsx +7 -0
  332. package/src/writer/Hr/Hr.tsx +13 -0
  333. package/src/writer/Hr/index.ts +3 -0
  334. package/src/writer/Icon/index.tsx +112 -0
  335. package/src/writer/NavLinks/NavLinks.styles.ts +32 -0
  336. package/src/writer/NavLinks/NavLinks.tsx +48 -0
  337. package/src/writer/NavLinks/index.ts +7 -0
  338. package/src/writer/Pre/Pre.styles.tsx +13 -0
  339. package/src/writer/Pre/Pre.tsx +13 -0
  340. package/src/writer/Pre/index.ts +3 -0
  341. package/src/writer/README.md +1 -0
  342. package/src/writer/Steps/Steps.styles.tsx +36 -0
  343. package/src/writer/Steps/Steps.tsx +24 -0
  344. package/src/writer/Steps/index.ts +5 -0
  345. package/src/writer/Table/Table.styles.tsx +39 -0
  346. package/src/writer/Table/Table.tsx +45 -0
  347. package/src/writer/Table/index.ts +10 -0
  348. package/src/writer/Tabs/Tabs.styles.tsx +77 -0
  349. package/src/writer/Tabs/Tabs.tsx +104 -0
  350. package/src/writer/Tabs/index.ts +7 -0
  351. package/src/writer/UnderlineNav/UnderlineNav.styles.tsx +45 -0
  352. package/src/writer/UnderlineNav/UnderlineNav.tsx +38 -0
  353. package/src/writer/UnderlineNav/index.ts +1 -0
  354. package/src/writer/index.ts +32 -0
  355. package/tsconfig.json +41 -0
  356. package/writer.ts +1 -0
@@ -0,0 +1 @@
1
+ var e="ERB",n=["erb","rhtml","html.erb"],t={"text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | comment)":{patterns:[{begin:"(^\\s*)(?=<%+#(?![^%]*%>))",beginCaptures:{0:{name:"punctuation.whitespace.comment.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.comment.trailing.erb"}},patterns:[{include:"#comment"}]},{begin:"(^\\s*)(?=<%(?![^%]*%>))",beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.erb"}},patterns:[{include:"#tags"}]},{include:"#comment"},{include:"#tags"}]}},a="erb",m=[{include:"text.html.basic"}],i={comment:{patterns:[{begin:"<%+#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.erb"}},end:"%>",endCaptures:{0:{name:"punctuation.definition.comment.end.erb"}},name:"comment.block.erb"}]},tags:{patterns:[{begin:"<%+(?!>)[-=]?(?![^%]*%>)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{0:{name:"punctuation.section.embedded.end.erb"},1:{name:"source.ruby"}},name:"meta.embedded.block.erb",patterns:[{captures:{1:{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]},{begin:"<%+(?!>)[-=]?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{0:{name:"punctuation.section.embedded.end.erb"},1:{name:"source.ruby"}},name:"meta.embedded.line.erb",patterns:[{captures:{1:{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]}]}},r="text.html.erb",s={displayName:"ERB",fileTypes:n,injections:t,name:"erb",patterns:m,repository:i,scopeName:r};export{s as default,e as displayName,n as fileTypes,t as injections,a as name,m as patterns,i as repository,r as scopeName};
@@ -0,0 +1 @@
1
+ var e="Erlang",n=["erl","escript","hrl","xrl","yrl"],a="erlang",t=[{include:"#module-directive"},{include:"#import-export-directive"},{include:"#behaviour-directive"},{include:"#record-directive"},{include:"#define-directive"},{include:"#macro-directive"},{include:"#directive"},{include:"#function"},{include:"#everything-else"}],i={atom:{patterns:[{begin:"(')",beginCaptures:{1:{name:"punctuation.definition.symbol.begin.erlang"}},end:"(')",endCaptures:{1:{name:"punctuation.definition.symbol.end.erlang"}},name:"constant.other.symbol.quoted.single.erlang",patterns:[{captures:{1:{name:"punctuation.definition.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"}},match:"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",name:"constant.other.symbol.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.atom.erlang"}]},{match:"[a-z][a-zA-Z\\d@_]*+",name:"constant.other.symbol.unquoted.erlang"}]},"behaviour-directive":{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.behaviour.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.behaviour.definition.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.behaviour.erlang"},binary:{begin:"(<<)",beginCaptures:{1:{name:"punctuation.definition.binary.begin.erlang"}},end:"(>>)",endCaptures:{1:{name:"punctuation.definition.binary.end.erlang"}},name:"meta.structure.binary.erlang",patterns:[{captures:{1:{name:"punctuation.separator.binary.erlang"},2:{name:"punctuation.separator.value-size.erlang"}},match:"(,)|(:)"},{include:"#internal-type-specifiers"},{include:"#everything-else"}]},character:{patterns:[{captures:{1:{name:"punctuation.definition.character.erlang"},2:{name:"constant.character.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"},5:{name:"punctuation.definition.escape.erlang"}},match:"(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))",name:"constant.character.erlang"},{match:"\\$\\\\\\^?.?",name:"invalid.illegal.character.erlang"},{captures:{1:{name:"punctuation.definition.character.erlang"}},match:"(\\$)[ \\S]",name:"constant.character.erlang"},{match:"\\$.?",name:"invalid.illegal.character.erlang"}]},comment:{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.erlang"}},end:"(?!\\G)",patterns:[{begin:"%",beginCaptures:{0:{name:"punctuation.definition.comment.erlang"}},end:"\\n",name:"comment.line.percentage.erlang"}]},"define-directive":{patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.define.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.definition.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{include:"#everything-else"}]},{begin:"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()",end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.define.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.definition.erlang"},5:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))\\s*(,)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.separator.parameters.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:"\\|\\||\\||:|;|,|\\.|->",name:"punctuation.separator.define.erlang"},{include:"#everything-else"}]}]},directive:{patterns:[{begin:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\)?)\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.erlang",patterns:[{include:"#everything-else"}]},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.erlang"},3:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",name:"meta.directive.erlang"}]},docstring:{begin:'(?<!")((["]{3,})\\s*)(\\S.*)?$',beginCaptures:{1:{name:"meta.string.quoted.triple.begin.erlang"},2:{name:"punctuation.definition.string.begin.erlang"},3:{name:"invalid.illegal.string.erlang"}},comment:"Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line",end:'^(\\s*(\\2))(?!")',endCaptures:{1:{name:"meta.string.quoted.triple.end.erlang"},2:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.triple.erlang"},"everything-else":{patterns:[{include:"#comment"},{include:"#record-usage"},{include:"#macro-usage"},{include:"#expression"},{include:"#keyword"},{include:"#textual-operator"},{include:"#language-constant"},{include:"#function-call"},{include:"#tuple"},{include:"#list"},{include:"#binary"},{include:"#parenthesized-expression"},{include:"#character"},{include:"#number"},{include:"#atom"},{include:"#sigil-docstring"},{include:"#sigil-string"},{include:"#docstring"},{include:"#string"},{include:"#symbolic-operator"},{include:"#variable"}]},expression:{patterns:[{begin:"\\b(if)\\b",beginCaptures:{1:{name:"keyword.control.if.erlang"}},end:"\\b(end)\\b",endCaptures:{1:{name:"keyword.control.end.erlang"}},name:"meta.expression.if.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(case)\\b",beginCaptures:{1:{name:"keyword.control.case.erlang"}},end:"\\b(end)\\b",endCaptures:{1:{name:"keyword.control.end.erlang"}},name:"meta.expression.case.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(receive)\\b",beginCaptures:{1:{name:"keyword.control.receive.erlang"}},end:"\\b(end)\\b",endCaptures:{1:{name:"keyword.control.end.erlang"}},name:"meta.expression.receive.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{captures:{1:{name:"keyword.control.fun.erlang"},4:{name:"entity.name.type.class.module.erlang"},5:{name:"variable.other.erlang"},6:{name:"punctuation.separator.module-function.erlang"},8:{name:"entity.name.function.erlang"},9:{name:"variable.other.erlang"},10:{name:"punctuation.separator.function-arity.erlang"}},comment:"Implicit function expression with optional module qualifier when both module and function can be atom or variable",match:"\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)",name:"meta.expression.fun.implicit.erlang"},{begin:"\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)",beginCaptures:{1:{name:"keyword.control.fun.erlang"},3:{name:"entity.name.type.class.module.erlang"},4:{name:"variable.other.erlang"},5:{name:"punctuation.separator.module-function.erlang"}},comment:"Implicit function expression with module qualifier when module can be atom or variable and function can by anything",end:"(/)",endCaptures:{1:{name:"punctuation.separator.function-arity.erlang"}},name:"meta.expression.fun.implicit.erlang",patterns:[{include:"#everything-else"}]},{begin:"\\b(fun)\\s+(?!\\()",beginCaptures:{1:{name:"keyword.control.fun.erlang"}},comment:"Implicit function expression when both module and function can by anything",end:"(/)",endCaptures:{1:{name:"punctuation.separator.function-arity.erlang"}},name:"meta.expression.fun.implicit.erlang",patterns:[{include:"#everything-else"}]},{begin:"\\b(fun)\\s*+(\\()(?=(\\s*+\\())",beginCaptures:{1:{name:"entity.name.function.erlang"},2:{name:"punctuation.definition.parameters.begin.erlang"}},comment:"Function type in type specification",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"}},patterns:[{include:"#everything-else"}]},{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"keyword.control.fun.erlang"}},comment:"Explicit function expression",end:"\\b(end)\\b",endCaptures:{1:{name:"keyword.control.end.erlang"}},name:"meta.expression.fun.erlang",patterns:[{begin:"(?=\\()",end:"(;)|(?=\\bend\\b)",endCaptures:{1:{name:"punctuation.separator.clauses.erlang"}},patterns:[{include:"#internal-function-parts"}]},{include:"#everything-else"}]},{begin:"\\b(try)\\b",beginCaptures:{1:{name:"keyword.control.try.erlang"}},end:"\\b(end)\\b",endCaptures:{1:{name:"keyword.control.end.erlang"}},name:"meta.expression.try.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(begin)\\b",beginCaptures:{1:{name:"keyword.control.begin.erlang"}},end:"\\b(end)\\b",endCaptures:{1:{name:"keyword.control.end.erlang"}},name:"meta.expression.begin.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(maybe)\\b",beginCaptures:{1:{name:"keyword.control.maybe.erlang"}},end:"\\b(end)\\b",endCaptures:{1:{name:"keyword.control.end.erlang"}},name:"meta.expression.maybe.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]}]},function:{begin:"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()",beginCaptures:{1:{name:"entity.name.function.definition.erlang"}},end:"(\\.)",endCaptures:{1:{name:"punctuation.terminator.function.erlang"}},name:"meta.function.erlang",patterns:[{captures:{1:{name:"entity.name.function.erlang"}},match:"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()"},{begin:"(?=\\()",end:"(;)|(?=\\.)",endCaptures:{1:{name:"punctuation.separator.clauses.erlang"}},patterns:[{include:"#parenthesized-expression"},{include:"#internal-function-parts"}]},{include:"#everything-else"}]},"function-call":{begin:"(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"}},name:"meta.function-call.erlang",patterns:[{begin:"((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()",beginCaptures:{2:{name:"entity.name.type.class.module.erlang"},3:{name:"punctuation.separator.module-function.erlang"},4:{name:"entity.name.function.guard.erlang"},5:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(?=\\))",patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{begin:"((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()",beginCaptures:{3:{name:"entity.name.type.class.module.erlang"},4:{name:"variable.other.erlang"},5:{name:"punctuation.separator.module-function.erlang"},7:{name:"entity.name.function.erlang"},8:{name:"variable.other.erlang"},9:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(?=\\))",patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]}]},"import-export-directive":{patterns:[{begin:"^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.import.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.module.erlang"},5:{name:"punctuation.separator.parameters.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.import.erlang",patterns:[{include:"#internal-function-list"}]},{begin:"^\\s*+(-)\\s*+(export)\\s*+(\\()",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.export.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.export.erlang",patterns:[{include:"#internal-function-list"}]}]},"internal-expression-punctuation":{captures:{1:{name:"punctuation.separator.clause-head-body.erlang"},2:{name:"punctuation.separator.clauses.erlang"},3:{name:"punctuation.separator.expressions.erlang"}},match:"(->)|(;)|(,)"},"internal-function-list":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.function.erlang",patterns:[{begin:"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)",beginCaptures:{1:{name:"entity.name.function.erlang"},2:{name:"punctuation.separator.function-arity.erlang"}},end:"(,)|(?=\\])",endCaptures:{1:{name:"punctuation.separator.list.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-function-parts":{patterns:[{begin:"(?=\\()",end:"(->)",endCaptures:{1:{name:"punctuation.separator.clause-head-body.erlang"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:",|;",name:"punctuation.separator.guards.erlang"},{include:"#everything-else"}]},{match:",",name:"punctuation.separator.expressions.erlang"},{include:"#everything-else"}]},"internal-record-body":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.definition.class.record.begin.erlang"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.class.record.end.erlang"}},name:"meta.structure.record.erlang",patterns:[{begin:"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))",beginCaptures:{2:{name:"variable.other.field.erlang"},3:{name:"variable.language.omitted.field.erlang"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.class.record.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-string-body":{patterns:[{captures:{1:{name:"punctuation.definition.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"}},comment:"escape sequence",match:"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",name:"constant.character.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.string.erlang"},{captures:{1:{name:"punctuation.definition.placeholder.erlang"},6:{name:"punctuation.separator.placeholder-parts.erlang"},10:{name:"punctuation.separator.placeholder-parts.erlang"}},comment:"io:fwrite format control sequence",match:"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]",name:"constant.character.format.placeholder.other.erlang"},{captures:{1:{name:"punctuation.definition.placeholder.erlang"}},comment:"io:fread format control sequence",match:"(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]",name:"constant.character.format.placeholder.other.erlang"},{match:'~[^"]?',name:"invalid.illegal.string.erlang"}]},"internal-type-specifiers":{begin:"(/)",beginCaptures:{1:{name:"punctuation.separator.value-type.erlang"}},end:"(?=,|:|>>)",patterns:[{captures:{1:{name:"storage.type.erlang"},2:{name:"storage.modifier.signedness.erlang"},3:{name:"storage.modifier.endianness.erlang"},4:{name:"storage.modifier.unit.erlang"},5:{name:"punctuation.separator.unit-specifiers.erlang"},6:{name:"constant.numeric.integer.decimal.erlang"},7:{name:"punctuation.separator.type-specifiers.erlang"}},match:"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)"}]},keyword:{match:"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b",name:"keyword.control.erlang"},"language-constant":{match:"\\b(false|true|undefined)\\b",name:"constant.language"},list:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.erlang",patterns:[{match:"\\||\\|\\||,",name:"punctuation.separator.list.erlang"},{include:"#everything-else"}]},"macro-directive":{patterns:[{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.ifdef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifdef.erlang"},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.ifndef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifndef.erlang"},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.undef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.undef.erlang"}]},"macro-usage":{captures:{1:{name:"keyword.operator.macro.erlang"},2:{name:"entity.name.function.macro.erlang"}},match:"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",name:"meta.macro-usage.erlang"},"module-directive":{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.module.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.module.definition.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.module.erlang"},number:{begin:"(?=\\d)",end:"(?!\\d)",patterns:[{captures:{1:{name:"punctuation.separator.integer-float.erlang"},2:{name:"punctuation.separator.float-exponent.erlang"}},match:"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?",name:"constant.numeric.float.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"2(#)([0-1]++_)*[0-1]++",name:"constant.numeric.integer.binary.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"3(#)([0-2]++_)*[0-2]++",name:"constant.numeric.integer.base-3.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"4(#)([0-3]++_)*[0-3]++",name:"constant.numeric.integer.base-4.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"5(#)([0-4]++_)*[0-4]++",name:"constant.numeric.integer.base-5.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"6(#)([0-5]++_)*[0-5]++",name:"constant.numeric.integer.base-6.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"7(#)([0-6]++_)*[0-6]++",name:"constant.numeric.integer.base-7.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"8(#)([0-7]++_)*[0-7]++",name:"constant.numeric.integer.octal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"9(#)([0-8]++_)*[0-8]++",name:"constant.numeric.integer.base-9.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"10(#)(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"11(#)([\\daA]++_)*[\\daA]++",name:"constant.numeric.integer.base-11.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++",name:"constant.numeric.integer.base-12.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++",name:"constant.numeric.integer.base-13.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++",name:"constant.numeric.integer.base-14.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++",name:"constant.numeric.integer.base-15.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++",name:"constant.numeric.integer.hexadecimal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++",name:"constant.numeric.integer.base-17.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++",name:"constant.numeric.integer.base-18.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++",name:"constant.numeric.integer.base-19.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++",name:"constant.numeric.integer.base-20.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++",name:"constant.numeric.integer.base-21.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++",name:"constant.numeric.integer.base-22.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++",name:"constant.numeric.integer.base-23.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++",name:"constant.numeric.integer.base-24.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++",name:"constant.numeric.integer.base-25.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++",name:"constant.numeric.integer.base-26.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++",name:"constant.numeric.integer.base-27.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++",name:"constant.numeric.integer.base-28.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++",name:"constant.numeric.integer.base-29.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++",name:"constant.numeric.integer.base-30.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++",name:"constant.numeric.integer.base-31.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++",name:"constant.numeric.integer.base-32.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++",name:"constant.numeric.integer.base-33.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++",name:"constant.numeric.integer.base-34.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++",name:"constant.numeric.integer.base-35.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"constant.numeric.integer.base-36.erlang"},{match:"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"invalid.illegal.integer.erlang"},{match:"(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"}]},"parenthesized-expression":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.erlang"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.erlang"}},name:"meta.expression.parenthesized",patterns:[{include:"#everything-else"}]},"record-directive":{begin:"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.import.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.record.definition.erlang"},5:{name:"punctuation.separator.parameters.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.record.erlang",patterns:[{include:"#internal-record-body"},{include:"#comment"}]},"record-usage":{patterns:[{captures:{1:{name:"keyword.operator.record.erlang"},2:{name:"entity.name.type.class.record.erlang"},3:{name:"punctuation.separator.record-field.erlang"},4:{name:"variable.other.field.erlang"}},match:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",name:"meta.record-usage.erlang"},{begin:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",beginCaptures:{1:{name:"keyword.operator.record.erlang"},2:{name:"entity.name.type.class.record.erlang"}},end:"(?<=\\})",name:"meta.record-usage.erlang",patterns:[{include:"#internal-record-body"}]}]},"sigil-docstring":{begin:'(~[bBsS]?)((["]{3,})\\s*)(\\S.*)?$',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"meta.string.quoted.triple.begin.erlang"},3:{name:"punctuation.definition.string.begin.erlang"},4:{name:"invalid.illegal.string.erlang"}},comment:"Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line",end:'^(\\s*(\\3))(?!")',endCaptures:{1:{name:"meta.string.quoted.triple.end.erlang"},2:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.tripple.sigil.erlang"},"sigil-string":{patterns:[{include:"#sigil-string-parenthesis"},{include:"#sigil-string-parenthesis-verbatim"},{include:"#sigil-string-curly-brackets"},{include:"#sigil-string-curly-brackets-verbatim"},{include:"#sigil-string-square-brackets"},{include:"#sigil-string-square-brackets-verbatim"},{include:"#sigil-string-less-greater"},{include:"#sigil-string-less-greater-verbatim"},{include:"#sigil-string-single-character"},{include:"#sigil-string-single-character-verbatim"},{include:"#sigil-string-single-quote"},{include:"#sigil-string-single-quote-verbatim"},{include:"#sigil-string-double-quote"},{include:"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{begin:"(~[bs]?)([{])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([}])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.curly-brackets.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-curly-brackets-verbatim":{begin:"(~[BS])([{])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([}])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.curly-brackets.sigil.erlang"},"sigil-string-double-quote":{begin:'(~[bs]?)(")',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-double-quote-verbatim":{begin:'(~[BS])(")',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.sigil.erlang"},"sigil-string-less-greater":{begin:"(~[bs]?)(<)",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.less-greater.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-less-greater-verbatim":{begin:"(~[BS])(<)",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.less-greater.sigil.erlang"},"sigil-string-parenthesis":{begin:"(~[bs]?)([(])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([)])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.parenthesis.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-parenthesis-verbatim":{begin:"(~[BS])([(])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([)])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.parenthesis.sigil.erlang"},"sigil-string-single-character":{begin:"(~[bs]?)([/\\|`#])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.other.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-single-character-verbatim":{begin:"(~[BS])([/\\|`#])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.other.sigil.erlang"},"sigil-string-single-quote":{begin:"(~[bs]?)(')",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.single.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-single-quote-verbatim":{begin:"(~[BS])(')",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.single.sigil.erlang"},"sigil-string-square-brackets":{begin:"(~[bs]?)([\\[])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([\\]])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.square-brackets.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-square-brackets-verbatim":{begin:"(~[BS])([\\[])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([\\]])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.square-brackets.sigil.erlang"},string:{begin:'(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.erlang"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.erlang",patterns:[{include:"#internal-string-body"}]},"symbolic-operator":{match:"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\?=",name:"keyword.operator.symbolic.erlang"},"textual-operator":{match:"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b",name:"keyword.operator.textual.erlang"},tuple:{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.definition.tuple.begin.erlang"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.tuple.end.erlang"}},name:"meta.structure.tuple.erlang",patterns:[{match:",",name:"punctuation.separator.tuple.erlang"},{include:"#everything-else"}]},variable:{captures:{1:{name:"variable.other.erlang"},2:{name:"variable.language.omitted.erlang"}},match:"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)"}},r="source.erlang",s={displayName:e,fileTypes:n,name:a,patterns:t,repository:i,scopeName:r};export{s as default,e as displayName,n as fileTypes,a as name,t as patterns,i as repository,r as scopeName};
@@ -0,0 +1 @@
1
+ var e="Fennel",n="fennel",t=[{include:"#expression"}],a={comment:{patterns:[{begin:";",end:"$",name:"comment.line.semicolon.fennel"}]},constants:{patterns:[{match:"nil",name:"constant.language.nil.fennel"},{match:"false|true",name:"constant.language.boolean.fennel"},{match:"(-?\\d+\\.\\d+([eE][+-]?\\d+)?)",name:"constant.numeric.double.fennel"},{match:"(-?\\d+)",name:"constant.numeric.integer.fennel"}]},expression:{patterns:[{include:"#comment"},{include:"#constants"},{include:"#sexp"},{include:"#table"},{include:"#vector"},{include:"#keywords"},{include:"#special"},{include:"#lua"},{include:"#strings"},{include:"#methods"},{include:"#symbols"}]},keywords:{match:":[^ ]+",name:"constant.keyword.fennel"},lua:{patterns:[{match:"\\b(assert|collectgarbage|dofile|error|getmetatable|ipairs|load|loadfile|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setmetatable|tonumber|tostring|type|xpcall)\\b",name:"support.function.fennel"},{match:"\\b(coroutine|coroutine.create|coroutine.isyieldable|coroutine.resume|coroutine.running|coroutine.status|coroutine.wrap|coroutine.yield|debug|debug.debug|debug.gethook|debug.getinfo|debug.getlocal|debug.getmetatable|debug.getregistry|debug.getupvalue|debug.getuservalue|debug.sethook|debug.setlocal|debug.setmetatable|debug.setupvalue|debug.setuservalue|debug.traceback|debug.upvalueid|debug.upvaluejoin|io|io.close|io.flush|io.input|io.lines|io.open|io.output|io.popen|io.read|io.stderr|io.stdin|io.stdout|io.tmpfile|io.type|io.write|math|math.abs|math.acos|math.asin|math.atan|math.ceil|math.cos|math.deg|math.exp|math.floor|math.fmod|math.huge|math.log|math.max|math.maxinteger|math.min|math.mininteger|math.modf|math.pi|math.rad|math.random|math.randomseed|math.sin|math.sqrt|math.tan|math.tointeger|math.type|math.ult|os|os.clock|os.date|os.difftime|os.execute|os.exit|os.getenv|os.remove|os.rename|os.setlocale|os.time|os.tmpname|package|package.config|package.cpath|package.loaded|package.loadlib|package.path|package.preload|package.searchers|package.searchpath|string|string.byte|string.char|string.dump|string.find|string.format|string.gmatch|string.gsub|string.len|string.lower|string.match|string.pack|string.packsize|string.rep|string.reverse|string.sub|string.unpack|string.upper|table|table.concat|table.insert|table.move|table.pack|table.remove|table.sort|table.unpack|utf8|utf8.char|utf8.charpattern|utf8.codepoint|utf8.codes|utf8.len|utf8.offset)\\b",name:"support.function.library.fennel"},{match:"\\b(_G|_VERSION)\\b",name:"constant.language.fennel"}]},methods:{patterns:[{match:"\\w+\\:\\w+",name:"entity.name.function.method.fennel"}]},sexp:{begin:"\\(",beginCaptures:{0:{name:"punctuation.paren.open.fennel"}},end:"\\)",endCaptures:{0:{name:"punctuation.paren.close.fennel"}},name:"sexp.fennel",patterns:[{include:"#expression"}]},special:{patterns:[{match:"\\#|\\%|\\+|\\*|[?][.]|(\\.)?\\.|(\\/)?\\/|:|<=?|=|>=?|\\^",name:"keyword.special.fennel"},{match:"(\\-\\>(\\>)?)",name:"keyword.special.fennel"},{match:"\\-\\?\\>(\\>)?",name:"keyword.special.fennel"},{match:"-",name:"keyword.special.fennel"},{match:"not=",name:"keyword.special.fennel"},{match:"set-forcibly!",name:"keyword.special.fennel"},{match:"\\b(and|band|bnot|bor|bxor|collect|comment|do|doc|doto|each|eval-compiler|for|global|hashfn|icollect|if|import-macros|include|lambda|length|let|local|lshift|lua|macro|macrodebug|macros|match|not=?|or|partial|pick-args|pick-values|quote|require-macros|rshift|set|tset|values|var|when|while|with-open)\\b",name:"keyword.special.fennel"},{match:"\\b(fn)\\b",name:"keyword.control.fennel"},{match:"~=",name:"keyword.special.fennel"},{match:"λ",name:"keyword.special.fennel"}]},strings:{begin:'"',end:'"',name:"string.quoted.double.fennel",patterns:[{match:"\\\\.",name:"constant.character.escape.fennel"}]},symbols:{patterns:[{match:"\\w+(?:\\.\\w+)+",name:"entity.name.function.symbol.fennel"},{match:"\\w+",name:"variable.other.fennel"}]},table:{begin:"\\{",beginCaptures:{0:{name:"punctuation.table.bracket.open.fennel"}},end:"\\}",endCaptures:{0:{name:"punctuation.table.bracket.close.fennel"}},name:"table.fennel",patterns:[{include:"#expression"}]},vector:{begin:"\\[",beginCaptures:{0:{name:"punctuation.vector.bracket.open.fennel"}},end:"\\]",endCaptures:{0:{name:"punctuation.vector.bracket.close.fennel"}},name:"meta.vector.fennel",patterns:[{include:"#expression"}]}},o="source.fnl",s={displayName:e,name:n,patterns:t,repository:a,scopeName:o};export{s as default,e as displayName,n as name,t as patterns,a as repository,o as scopeName};
@@ -0,0 +1 @@
1
+ var e="Fish",t=["fish"],a="^#!.*\\bfish\\b",i="^\\s*(function|while|if|switch|for|begin)\\s.*$",s="^\\s*end\\s*$",o="fish",n=[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.fish"}},comment:"Double quoted string",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.double.fish",patterns:[{include:"#variable"},{comment:"https://fishshell.com/docs/current/#quotes",match:'\\\\(\\"|\\$|$|\\\\)',name:"constant.character.escape.fish"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.fish"}},comment:"Single quoted string",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.single.fish",patterns:[{comment:"https://fishshell.com/docs/current/#quotes",match:"\\\\('|`|\\\\)",name:"constant.character.escape.fish"}]},{captures:{1:{name:"punctuation.definition.comment.fish"}},comment:"line comment",match:"(?<!\\$)(#)(?!\\{).*$\\n?",name:"comment.line.number-sign.fish"},{captures:{2:{name:"keyword.control.fish"},4:{name:"support.function.command.fish"}},comment:"name of command, either a function or a binary",match:"(^\\s*|&&\\s*|\\|\\s*|\\(\\s*|[;]\\s*|\\b(if|while)\\b\\s+)(?!(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!]))([a-zA-Z_\\-0-9\\[\\].]+)"},{comment:"keywords that affect control flow",match:"(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!])",name:"keyword.control.fish"},{match:"(?<!\\.)\\bfunction\\b(?![?!])",name:"storage.type.fish"},{match:"\\|",name:"keyword.operator.pipe.fish"},{comment:"IO Redirection",match:"(?x:\n<|# Standard Input\n(>|\\^|>>|\\^\\^)(&[012\\-])?|\n[012](<|>|>>)(&[012\\-])?\n)",name:"keyword.operator.redirect.fish"},{match:"&",name:"keyword.operator.background.fish"},{match:"\\*\\*|\\*|\\?",name:"keyword.operator.glob.fish"},{captures:{1:{name:"source.option.fish"}},comment:"command short/long options",match:"\\s(-{1,2}[a-zA-Z_\\-0-9]+|-\\w)\\b"},{include:"#variable"},{include:"#escape"}],c={escape:{patterns:[{comment:"single character character escape sequences",match:"\\\\[abefnrtv $*?~#(){}\\[\\]<>^&|;\"']",name:"constant.character.escape.single.fish"},{comment:"escapes the ascii character with the specified value (hexadecimal)",match:"\\\\x[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-ascii.fish"},{comment:"escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.",match:"\\\\X[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-byte.fish"},{comment:"escapes the ascii character with the specified value (octal)",match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.fish"},{comment:"escapes the 16-bit unicode character with the specified value (hexadecimal)",match:"\\\\u[0-9a-fA-F]{1,4}",name:"constant.character.escape.unicode-16-bit.fish"},{comment:"escapes the 32-bit unicode character with the specified value (hexadecimal)",match:"\\\\U[0-9a-fA-F]{1,8}",name:"constant.character.escape.unicode-32-bit.fish"},{comment:"escapes the control sequence generated by pressing the control key and the specified letter",match:"\\\\c[a-zA-Z]",name:"constant.character.escape.control.fish"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.fish"}},comment:"Built-in variables visible by pressing $ TAB TAB in a new shell",match:"(\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\b",name:"variable.language.fish"},{captures:{1:{name:"punctuation.definition.variable.fish"}},match:"(\\$)[a-zA-Z_][a-zA-Z0-9_]*",name:"variable.other.normal.fish"}]}},r="source.fish",h={displayName:e,fileTypes:t,firstLineMatch:a,foldingStartMarker:i,foldingStopMarker:s,name:o,patterns:n,repository:c,scopeName:r};export{h as default,e as displayName,t as fileTypes,a as firstLineMatch,i as foldingStartMarker,s as foldingStopMarker,o as name,n as patterns,c as repository,r as scopeName};
@@ -0,0 +1 @@
1
+ var e="Fluent",n="fluent",a=[{include:"#comment"},{include:"#message"},{include:"#wrong-line"}],t={attributes:{begin:"\\s*(\\.[a-zA-Z][a-zA-Z0-9_-]*\\s*=\\s*)",beginCaptures:{1:{name:"support.class.attribute-begin.fluent"}},end:"^(?=\\s*[^\\.])",patterns:[{include:"#placeable"}]},comment:{match:"^##?#?\\s.*$",name:"comment.fluent"},"function-comma":{match:",",name:"support.function.function-comma.fluent"},"function-named-argument":{begin:'([a-zA-Z0-9]+:)\\s*(["a-zA-Z0-9]+)',beginCaptures:{1:{name:"support.function.named-argument.name.fluent"},2:{name:"variable.other.named-argument.value.fluent"}},end:"(?=\\)|,|\\s)",name:"variable.other.named-argument.fluent"},"function-positional-argument":{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.function.positional-argument.fluent"},"invalid-placeable-string-missing-end-quote":{match:'"[^"]+$',name:"invalid.illegal.wrong-placeable-missing-end-quote.fluent"},"invalid-placeable-wrong-placeable-missing-end":{match:"([^}A-Z]*$|[^-][^>]$)\\b",name:"invalid.illegal.wrong-placeable-missing-end.fluent"},message:{begin:"^(-?[a-zA-Z][a-zA-Z0-9_-]*\\s*=\\s*)",beginCaptures:{1:{name:"support.class.message-identifier.fluent"}},contentName:"string.fluent",end:"^(?=\\S)",patterns:[{include:"#attributes"},{include:"#placeable"}]},placeable:{begin:"({)",beginCaptures:{1:{name:"keyword.placeable.begin.fluent"}},contentName:"variable.other.placeable.content.fluent",end:"(})",endCaptures:{1:{name:"keyword.placeable.end.fluent"}},patterns:[{include:"#placeable-string"},{include:"#placeable-function"},{include:"#placeable-reference-or-number"},{include:"#selector"},{include:"#invalid-placeable-wrong-placeable-missing-end"},{include:"#invalid-placeable-string-missing-end-quote"},{include:"#invalid-placeable-wrong-function-name"}]},"placeable-function":{begin:"([A-Z][A-Z0-9_-]*\\()",beginCaptures:{1:{name:"support.function.placeable-function.call.begin.fluent"}},contentName:"string.placeable-function.fluent",end:"(\\))",endCaptures:{1:{name:"support.function.placeable-function.call.end.fluent"}},patterns:[{include:"#function-comma"},{include:"#function-positional-argument"},{include:"#function-named-argument"}]},"placeable-reference-or-number":{match:"((-|\\$)[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9_-]*|[0-9]+)",name:"variable.other.placeable.reference-or-number.fluent"},"placeable-string":{begin:'(")(?=[^\\n]*")',beginCaptures:{1:{name:"variable.other.placeable-string-begin.fluent"}},contentName:"string.placeable-string-content.fluent",end:'(")',endCaptures:{1:{name:"variable.other.placeable-string-end.fluent"}}},selector:{begin:"(->)",beginCaptures:{1:{name:"support.function.selector.begin.fluent"}},contentName:"string.selector.content.fluent",end:"^(?=\\s*})",patterns:[{include:"#selector-item"}]},"selector-item":{begin:"(\\s*\\*?\\[)([a-zA-Z0-9_-]+)(\\]\\s*)",beginCaptures:{1:{name:"support.function.selector-item.begin.fluent"},2:{name:"variable.other.selector-item.begin.fluent"},3:{name:"support.function.selector-item.begin.fluent"}},contentName:"string.selector-item.content.fluent",end:"^(?=(\\s*})|(\\s*\\[)|(\\s*\\*))",patterns:[{include:"#placeable"}]},"wrong-line":{match:".*",name:"invalid.illegal.wrong-line.fluent"}},l="source.ftl",i={displayName:e,name:n,patterns:a,repository:t,scopeName:l};export{i as default,e as displayName,n as name,a as patterns,t as repository,l as scopeName};
@@ -0,0 +1 @@
1
+ var e="Fortran (Fixed Form)",n=["f","F","f77","F77","for","FOR"],r={"source.fortran.fixed - ( string | comment )":{patterns:[{include:"#line-header"},{include:"#line-end-comment"}]}},a="fortran-fixed-form",o=[{include:"#comments"},{include:"#line-header"},{include:"source.fortran.free"}],t={comments:{patterns:[{begin:"^[cC\\*]",end:"\\n",name:"comment.line.fortran"},{begin:"^ *!",end:"\\n",name:"comment.line.fortran"}]},"line-end-comment":{begin:"(?<=^.{72})(?!\\n)",end:"(?=\\n)",name:"comment.line-end.fortran"},"line-header":{captures:{1:{name:"constant.numeric.fortran"},2:{name:"keyword.line-continuation-operator.fortran"},3:{name:"source.fortran.free"},4:{name:"invalid.error.fortran"}},match:"^(?!\\s*[!#])(?:([ \\d]{5} )|( {5}.)|(\\t)|(.{1,5}))"}},i="source.fortran.fixed",m={displayName:e,fileTypes:n,injections:r,name:a,patterns:o,repository:t,scopeName:i};export{m as default,e as displayName,n as fileTypes,r as injections,a as name,o as patterns,t as repository,i as scopeName};
@@ -0,0 +1 @@
1
+ var e="Fortran (Free Form)",n=["f90","F90","f95","F95","f03","F03","f08","F08","f18","F18","fpp","FPP",".pf",".PF"],t="(?i)-[*]- mode: fortran free -[*]-",r={"source.fortran.free - ( string | comment | meta.preprocessor )":{patterns:[{include:"#line-continuation-operator"},{include:"#preprocessor"}]},"string.quoted.double.fortran":{patterns:[{include:"#string-line-continuation-operator"}]},"string.quoted.single.fortran":{patterns:[{include:"#string-line-continuation-operator"}]}},a="fortran-free-form",o=[{include:"#preprocessor"},{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#include-statement"},{include:"#import-statement"},{include:"#block-data-definition"},{include:"#function-definition"},{include:"#module-definition"},{include:"#program-definition"},{include:"#submodule-definition"},{include:"#subroutine-definition"},{include:"#procedure-definition"},{include:"#derived-type-definition"},{include:"#enum-block-construct"},{include:"#interface-block-constructs"},{include:"#procedure-specification-statement"},{include:"#type-specification-statements"},{include:"#specification-statements"},{include:"#control-constructs"},{include:"#control-statements"},{include:"#execution-statements"},{include:"#intrinsic-functions"},{include:"#variable"}],i={"IO-item-list":{begin:"(?i)(?=\\s*[a-z0-9\"'])",comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[\\);!\\n])",patterns:[{include:"#constants"},{include:"#operators"},{include:"#intrinsic-functions"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#brackets"},{include:"#assignment-keyword"},{include:"#operator-keyword"},{include:"#variable"}]},"IO-keywords":{begin:"(?i)\\G\\s*\\b(?:(read)|(write))\\s*(\\()",beginCaptures:{1:{name:"keyword.control.generic-spec.read.fortran"},2:{name:"keyword.control.generic-spec.write.fortran"},3:{name:"punctuation.parentheses.left.fortran"}},comment:"IO generic specification.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{captures:{1:{name:"keyword.control.generic-spec.formatted.fortran"},2:{name:"keyword.control.generic-spec.unformatted.fortran"}},match:"(?i)\\G\\s*\\b(?:(formatted)|(unformatted))\\b"},{include:"#invalid-word"}]},"IO-statements":{patterns:[{begin:"(?ix)\\b(?:(backspace)|(close)|(endfile)|(format)|(inquire)|(open)|(read)|(rewind)|(write))\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.backspace.fortran"},2:{name:"keyword.control.close.fortran"},3:{name:"keyword.control.endfile.fortran"},4:{name:"keyword.control.format.fortran"},5:{name:"keyword.control.inquire.fortran"},6:{name:"keyword.control.open.fortran"},7:{name:"keyword.control.read.fortran"},8:{name:"keyword.control.rewind.fortran"},9:{name:"keyword.control.write.fortran"},10:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.IO.fortran",patterns:[{include:"#parentheses-dummy-variables"},{include:"#IO-item-list"}]},{captures:{1:{name:"keyword.control.backspace.fortran"},2:{name:"keyword.control.endfile.fortran"},3:{name:"keyword.control.format.fortran"},4:{name:"keyword.control.print.fortran"},5:{name:"keyword.control.read.fortran"},6:{name:"keyword.control.rewind.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\\b"},{begin:"(?i)\\b(?:(flush)|(wait))\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.flush.fortran"},2:{name:"keyword.control.wait.fortran"},3:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{captures:{1:{name:"keyword.control.flush.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\b(flush)\\b"}]},"abstract-attribute":{captures:{1:{name:"storage.modifier.fortran.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\G\\s*\\b(abstract)\\b"},"abstract-interface-block-construct":{begin:"(?i)\\b(abstract)\\s+(interface)\\b",beginCaptures:{1:{name:"keyword.other.attribute.fortran.modern"},2:{name:"keyword.control.interface.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?i)\\b(end\\s*interface)\\b",endCaptures:{1:{name:"keyword.control.endinterface.fortran.modern"}},name:"meta.interface.abstract.fortran",patterns:[{include:"$base"}]},"access-attribute":{patterns:[{include:"#private-attribute"},{include:"#public-attribute"}]},"allocatable-attribute":{captures:{1:{name:"storage.modifier.allocatable.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(allocatable)\\b"},"allocate-statement":{begin:"(?i)\\b(allocate)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.allocate.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.allocate.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"arithmetic-operators":{captures:{1:{name:"keyword.operator.subtraction.fortran"},2:{name:"keyword.operator.addition.fortran"},3:{name:"keyword.operator.division.fortran"},4:{name:"keyword.operator.power.fortran"},5:{name:"keyword.operator.multiplication.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(\\-)|(\\+)|\\/(?!\\/|\\=|\\\\)|(\\*\\*)|(\\*)"},"array-constructor":{begin:"(?=\\s*(\\[|\\(\\/))",end:"(?<!\\G)",name:"meta.contructor.array",patterns:[{include:"#brackets"},{begin:"\\s*(\\(\\/)",beginCaptures:{1:{name:"punctuation.bracket.left.fortran"}},end:"(\\/\\))",endCaptures:{1:{name:"punctuation.bracket.left.fortran"}},patterns:[{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#intrinsic-functions"},{include:"#variable"}]}]},"assign-statement":{patterns:[{begin:"(?i)\\b(assign)\\b",beginCaptures:{1:{name:"keyword.control.assign.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.assign.fortran",patterns:[{captures:{1:{name:"keyword.control.to.fortran"}},match:"(?i)\\s*\\b(to)\\b"},{include:"$base"}]}]},"assignment-keyword":{begin:"(?i)\\G\\s*\\b(assignment)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.generic-spec.assignment.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Assignment generic specification.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#assignment-operator"},{include:"#invalid-word"}]},"assignment-operator":{comment:"Introduced in the Fortran 1977 standard.",match:"(?<!\\/|\\=|\\<|\\>)(\\=)(?!\\=|\\>)",name:"keyword.operator.assignment.fortran"},"associate-construct":{begin:"(?i)\\b(associate)\\b(?=\\s*\\()",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2003 standard.",contentName:"meta.block.associate.fortran",end:"(?i)\\b(end\\s*associate)\\b",endCaptures:{1:{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"asynchronous-attribute":{captures:{1:{name:"storage.modifier.asynchronous.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\G\\s*\\b(asynchronous)\\b"},"attribute-specification-statement":{begin:"(?ix)(?=\\b(?:allocatable|asynchronous|contiguous |external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\\b |(bind|dimension|intent)\\s*\\( |(codimension)\\s*\\[)",end:"(?=[;!\\n])",name:"meta.statement.attribute-specification.fortran",patterns:[{include:"#access-attribute"},{include:"#allocatable-attribute"},{include:"#asynchronous-attribute"},{include:"#codimension-attribute"},{include:"#contiguous-attribute"},{include:"#dimension-attribute"},{include:"#external-attribute"},{include:"#intent-attribute"},{include:"#intrinsic-attribute"},{include:"#language-binding-attribute"},{include:"#optional-attribute"},{include:"#parameter-attribute"},{include:"#pointer-attribute"},{include:"#protected-attribute"},{include:"#save-attribute"},{include:"#target-attribute"},{include:"#value-attribute"},{include:"#volatile-attribute"},{begin:"(?=\\s*::)",comment:"Attribute list.",contentName:"meta.attribute-list.normal.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{include:"#invalid-word"}]},{include:"#name-list"}]},"block-construct":{begin:"(?i)\\b(block)\\b(?!\\s*\\bdata\\b)",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2008 standard.",contentName:"meta.block.block.fortran",end:"(?i)\\b(end\\s*block)\\b",endCaptures:{1:{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"block-data-definition":{begin:"(?i)\\b(block\\s*data)\\b(?:\\s+([a-z]\\w*)\\b)?",beginCaptures:{1:{name:"keyword.control.block-data.fortran"},2:{name:"entity.name.block-data.fortran"}},end:"(?ix)\\b(?:(end\\s*block\\s*data)(?:\\s+(\\2))?|(end))\\b (?:\\s*(\\S((?!\\n).)*))?",endCaptures:{1:{name:"keyword.control.end-block-data.fortran"},2:{name:"entity.name.block-data.fortran"},3:{name:"keyword.control.end-block-data.fortran"},4:{name:"invalid.error.block-data-definition.fortran"}},name:"meta.block-data.fortran",patterns:[{include:"$base"}]},brackets:{begin:"\\s*(\\[)",beginCaptures:{1:{name:"punctuation.bracket.left.fortran"}},end:"(\\])",endCaptures:{1:{name:"punctuation.bracket.left.fortran"}},patterns:[{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#intrinsic-functions"},{include:"#variable"}]},"call-statement":{patterns:[{begin:"(?i)\\s*\\b(call)\\b",beginCaptures:{1:{name:"keyword.control.call.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.call.fortran",patterns:[{begin:"(?ix)\\G\\s*([a-z]\\w*)(%)([a-z]\\w*)\\b\\s*(?=\\()",beginCaptures:{1:{name:"variable.other.fortran"},2:{name:"keyword.accessor.fortran"},3:{name:"entity.name.function.subroutine.fortran"}},comment:"type-bound subroutines",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{include:"#intrinsic-subroutines"},{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"User defined subroutine.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{captures:{1:{name:"entity.name.function.subroutine.fortran"}},comment:"User defined subroutine.",match:"(?i)\\G\\s*\\b([a-z]\\w*)\\b(?=\\s*[;!\\n])"},{include:"$base"}]}]},"character-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:"(?i)\\b(character)\\s*(?=\\()",beginCaptures:{1:{name:"storage.type.character.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{captures:{1:{name:"storage.type.character.fortran"},2:{name:"keyword.operator.multiplication.fortran"},3:{name:"constant.numeric.fortran"}},match:"(?i)\\b(character)\\b(?:\\s*(\\*)\\s*(\\d*))?"}]},"codimension-attribute":{begin:"(?i)\\G\\s*\\b(codimension)(?=\\s*\\[)",beginCaptures:{1:{name:"storage.modifier.codimension.fortran"}},comment:"Introduced in the Fortran 2008 standard.",end:"(?<!\\G)",patterns:[{include:"#brackets"}]},comments:{begin:"!",end:"(?=\\n)",name:"comment.line.fortran"},"common-statement":{begin:"(?i)\\b(common)\\b",beginCaptures:{1:{name:"keyword.control.common.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"$base"}]},"concurrent-attribute":{begin:"(?i)\\G\\s*\\b(concurrent)\\b",beginCaptures:{1:{name:"keyword.control.while.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{include:"#invalid-word"}]},constants:{patterns:[{include:"#logical-constant"},{include:"#numeric-constant"},{include:"#string-constant"}]},"contiguous-attribute":{captures:{1:{name:"storage.modifier.contigous.fortran"}},comment:"Introduced in the Fortran 2008 standard.",match:"(?i)\\G\\s*\\b(contiguous)\\b"},"continue-statement":{patterns:[{begin:"(?i)\\s*\\b(continue)\\b",beginCaptures:{1:{name:"keyword.control.continue.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.continue.fortran",patterns:[{include:"#invalid-character"}]}]},"control-constructs":{patterns:[{include:"#named-control-constructs"},{include:"#unnamed-control-constructs"}]},"control-statements":{comment:"Statements controlling the flow of the program",patterns:[{include:"#assign-statement"},{include:"#call-statement"},{include:"#continue-statement"},{include:"#cycle-statement"},{include:"#entry-statement"},{include:"#error-stop-statement"},{include:"#exit-statement"},{include:"#goto-statement"},{include:"#pause-statement"},{include:"#return-statement"},{include:"#stop-statement"},{include:"#where-statement"},{include:"#image-control-statement"}]},"cpp-numeric-constant":{captures:{0:{patterns:[{begin:"(?=.)",beginCaptures:{},end:"$",endCaptures:{},patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.cpp"},2:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"constant.numeric.hexadecimal.cpp"},5:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},6:{name:"punctuation.separator.constant.numeric.cpp"},7:{name:"keyword.other.unit.exponent.hexadecimal.cpp"},8:{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},9:{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},10:{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},11:{name:"keyword.other.unit.suffix.floating-point.cpp"},12:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)"},{captures:{1:{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},2:{name:"punctuation.separator.constant.numeric.cpp"},3:{name:"constant.numeric.decimal.point.cpp"},4:{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},5:{name:"punctuation.separator.constant.numeric.cpp"},6:{name:"keyword.other.unit.exponent.decimal.cpp"},7:{name:"keyword.operator.plus.exponent.decimal.cpp"},8:{name:"keyword.operator.minus.exponent.decimal.cpp"},9:{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},10:{name:"keyword.other.unit.suffix.floating-point.cpp"},11:{name:"keyword.other.unit.user-defined.cpp"}},match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)"},{captures:{1:{name:"keyword.other.unit.binary.cpp"},2:{name:"constant.numeric.binary.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"keyword.other.unit.suffix.integer.cpp"},5:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)"},{captures:{1:{name:"keyword.other.unit.octal.cpp"},2:{name:"constant.numeric.octal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"keyword.other.unit.suffix.integer.cpp"},5:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)"},{captures:{1:{name:"keyword.other.unit.hexadecimal.cpp"},2:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"keyword.other.unit.exponent.hexadecimal.cpp"},5:{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},6:{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},7:{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},8:{name:"keyword.other.unit.suffix.integer.cpp"},9:{name:"keyword.other.unit.user-defined.cpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)"},{captures:{1:{name:"constant.numeric.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},2:{name:"punctuation.separator.constant.numeric.cpp"},3:{name:"keyword.other.unit.exponent.decimal.cpp"},4:{name:"keyword.operator.plus.exponent.decimal.cpp"},5:{name:"keyword.operator.minus.exponent.decimal.cpp"},6:{name:"constant.numeric.exponent.decimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},7:{name:"keyword.other.unit.suffix.integer.cpp"},8:{name:"keyword.other.unit.user-defined.cpp"}},match:"\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)"},{match:"(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",name:"invalid.illegal.constant.numeric.cpp"}]}]}},match:"(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*"},"critical-construct":{begin:"(?i)\\b(critical)\\b",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2008 standard.",contentName:"meta.block.critical.fortran",end:"(?i)\\b(end\\s*critical)\\b",endCaptures:{1:{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"cycle-statement":{patterns:[{begin:"(?i)\\s*\\b(cycle)\\b",beginCaptures:{1:{name:"keyword.control.cycle.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.fortran",patterns:[]}]},"data-statement":{begin:"(?i)\\b(data)\\b",beginCaptures:{1:{name:"keyword.control.data.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"$base"}]},"deallocate-statement":{begin:"(?i)\\b(deallocate)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.deallocate.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.deallocate.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"deferred-attribute":{captures:{1:{name:"storage.modifier.deferred.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(deferred)\\b"},"derived-type":{begin:"(?i)\\b(?:(class)|(type))\\s*(\\()\\s*(([a-z]\\w*)|\\*)",beginCaptures:{1:{name:"storage.type.class.fortran"},2:{name:"storage.type.type.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"entity.name.type.fortran"}},comment:"Introduced in the Fortran 1995 standard.",contentName:"meta.type-spec.fortran",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.specification.type.derived.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"derived-type-component-attribute-specification":{begin:"(?i)(?=\\s*\\b(?:private|sequence)\\b)",comment:"Introduced in the Fortran 1995 standard.",end:"(?=[;!\\n])",name:"meta.statement.attribute-specification.fortran",patterns:[{include:"#access-attribute"},{include:"#sequence-attribute"},{include:"#invalid-character"}]},"derived-type-component-parameter-specification":{captures:{1:{name:"storage.type.integer.fortran"},2:{name:"punctuation.comma.fortran"},3:{name:"keyword.other.attribute.derived-type.parameter.fortran"},4:{name:"keyword.operator.double-colon.fortran"},5:{name:"entity.name.derived-type.parameter.fortran"}},comment:"Derived type parameter.",match:"(?ix)\\b(integer)\\s*(,)\\s*(kind|len)\\s*(?:(::)\\s*([a-z]\\w*)?)?\\s*(?=[;!\\n])"},"derived-type-component-procedure-specification":{begin:"(?i)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-component-procedure.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,;!\\n])",patterns:[{include:"#access-attribute"},{include:"#pass-attribute"},{include:"#nopass-attribute"},{include:"#invalid-word"},{include:"#pointer-attribute"}]}]},{include:"#procedure-name-list"}]},"derived-type-component-type-specification":{begin:"(?ix)(?=\\b(?:character|class|complex|double\\s*precision|double\\s*complex|integer|logical|real|type)\\b(?![^:'\";!\\n]*\\bfunction\\b))",comment:"Introduced in the Fortran 1995 standard.",end:"(?=[;!\\n])",name:"meta.specification.derived-type.fortran",patterns:[{include:"#types"},{include:"#line-continuation-operator"},{begin:"(?=\\s*(,|::))",comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-component-type.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,;!\\n])",patterns:[{include:"#access-attribute"},{include:"#allocatable-attribute"},{include:"#codimension-attribute"},{include:"#contiguous-attribute"},{include:"#dimension-attribute"},{include:"#pointer-attribute"},{include:"#invalid-word"}]}]},{include:"#name-list"}]},"derived-type-contains-attribute-specification":{begin:"(?i)(?=\\b(?:private)\\b)",comment:"Introduced in the Fortran 1995 standard.",end:"(?=[;!\\n])",name:"meta.statement.attribute-specification.fortran",patterns:[{include:"#access-attribute"},{include:"#invalid-character"}]},"derived-type-contains-final-procedure-specification":{begin:"(?i)\\b(final)\\b",beginCaptures:{1:{name:"storage.type.final-procedure.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.final.fortran",patterns:[{begin:"(?=\\s*(::))",comment:"Attribute list.",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},name:"meta.attribute-list.derived-type-contains-final-procedure.fortran",patterns:[{include:"#invalid-word"}]},{include:"#procedure-name"}]},"derived-type-contains-generic-procedure-specification":{begin:"(?i)\\b(generic)\\b",beginCaptures:{1:{name:"storage.type.procedure.generic.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.generic.fortran",patterns:[{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-contains-generic-procedure.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)|^|(?<=&)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,&;!\\n])",patterns:[{include:"#access-attribute"},{include:"#invalid-word"}]}]},{begin:"(?=\\s*[a-z])",comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[;!\\n])",patterns:[{include:"#IO-keywords"},{include:"#assignment-keyword"},{include:"#operator-keyword"},{include:"#procedure-name"},{include:"#pointer-operators"}]}]},"derived-type-contains-procedure-specification":{begin:"(?i)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-contains-procedure.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)|^|(?<=&)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,&;!\\n])",name:"meta.something.fortran",patterns:[{include:"#access-attribute"},{include:"#deferred-attribute"},{include:"#non-overridable-attribute"},{include:"#nopass-attribute"},{include:"#pass-attribute"},{include:"#invalid-word"}]}]},{include:"#procedure-name-list"}]},"derived-type-definition":{begin:"(?i)\\b(type)\\b(?!\\s*(\\(|is\\b|\\=))",beginCaptures:{1:{name:"keyword.control.type.fortran"}},end:"(?=[;!\\n])",name:"meta.derived-type.definition.fortran",patterns:[{begin:"\\G(?=\\s*(,|::))",comment:"Attribute list.",contentName:"meta.attribute-list.derived-type.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,;!\\n])",patterns:[{include:"#access-attribute"},{include:"#abstract-attribute"},{include:"#language-binding-attribute"},{include:"#extends-attribute"},{include:"#invalid-word"}]}]},{begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.type.fortran"}},end:"(?i)(?:^|(?<=;))\\s*(end\\s*type)(?:\\s+(?:(\\1)|(\\w+)))?\\b",endCaptures:{1:{name:"keyword.control.endtype.fortran"},2:{name:"entity.name.type.fortran"},3:{name:"invalid.error.derived-type.fortran"}},patterns:[{include:"#dummy-variable-list"},{include:"#comments"},{begin:"(?i)^(?!\\s*\\b(?:contains|end\\s*type)\\b)",comment:"Derived type specification block.",end:"(?i)^(?=\\s*\\b(?:contains|end\\s*type)\\b)",name:"meta.block.specification.derived-type.fortran",patterns:[{include:"#comments"},{include:"#derived-type-component-attribute-specification"},{include:"#derived-type-component-parameter-specification"},{include:"#derived-type-component-procedure-specification"},{include:"#derived-type-component-type-specification"}]},{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Derived type contains block.",end:"(?i)(?=\\s*end\\s*type\\b)",name:"meta.block.contains.fortran",patterns:[{include:"#comments"},{include:"#derived-type-contains-attribute-specification"},{include:"#derived-type-contains-final-procedure-specification"},{include:"#derived-type-contains-generic-procedure-specification"},{include:"#derived-type-contains-procedure-specification"}]}]}]},"derived-type-operators":{captures:{1:{name:"keyword.other.selector.fortran"}},comment:"Introduced in the Fortran 1995 standard.",match:"\\s*(\\%)"},"dimension-attribute":{begin:"(?i)\\s*\\b(dimension)(?=\\s*\\()",beginCaptures:{1:{name:"storage.modifier.dimension.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?<!\\G)",patterns:[{include:"#parentheses-dummy-variables"}]},"do-construct":{patterns:[{captures:{1:{name:"keyword.control.enddo.fortran"}},match:"(?i)\\b(end\\s*do)\\b"},{begin:"(?i)\\b(do)\\s+(\\d{1,5})",beginCaptures:{1:{name:"keyword.control.do.fortran"},2:{name:"constant.numeric.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?i)(?:^|(?<=;))(?=\\s*\\b\\2\\b)",name:"meta.do.labeled.fortran",patterns:[{begin:"(?i)\\G(?:\\s*(,)|(?!\\s*[;!\\n]))",beginCaptures:{1:{name:"punctuation.comma.fortran"}},comment:"Loop control.",end:"(?=[;!\\n])",patterns:[{include:"#concurrent-attribute"},{include:"#while-attribute"},{include:"$base"}]},{include:"$base"}]},{begin:"(?i)\\b(do)\\b",beginCaptures:{1:{name:"keyword.control.do.fortran"}},comment:"Introduced in the Fortran 1995 standard.",end:"(?i)\\b(?:(continue)|(end\\s*do))\\b",endCaptures:{1:{name:"keyword.control.continue.fortran"},2:{name:"keyword.control.enddo.fortran"}},name:"meta.block.do.unlabeled.fortran",patterns:[{begin:"(?i)\\G(?:\\s*(,)|(?!\\s*[;!\\n]))",beginCaptures:{1:{name:"punctuation.comma.fortran"}},comment:"Loop control.",end:"(?=[;!\\n])",name:"meta.loop-control.fortran",patterns:[{include:"#concurrent-attribute"},{include:"#while-attribute"},{include:"$base"}]},{begin:"(?i)(?!\\s*\\b(continue|end\\s*do)\\b)",comment:"Loop body.",end:"(?i)(?=\\s*\\b(continue|end\\s*do)\\b)",patterns:[{include:"$base"}]}]}]},"dummy-variable":{captures:{1:{name:"variable.parameter.fortran"}},comment:"dummy variable",match:"(?i)(?:^|(?<=[&,\\(]))\\s*([a-z]\\w*)"},"dummy-variable-list":{begin:"\\G\\s*(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.fortran"}},end:"\\)|(?=\\n)",endCaptures:{0:{name:"punctuation.definition.parameters.end.fortran"}},name:"meta.dummy-variable-list",patterns:[{include:"#dummy-variable"}]},"elemental-attribute":{captures:{1:{name:"storage.modifier.elemental.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(elemental)\\b"},"entry-statement":{patterns:[{begin:"(?i)\\s*\\b(entry)\\b",beginCaptures:{1:{name:"keyword.control.entry.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.entry.fortran",patterns:[{begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.entry.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#dummy-variable-list"},{include:"#result-statement"},{include:"#language-binding-attribute"}]}]}]},"enum-block-construct":{begin:"(?i)\\b(enum)\\b",beginCaptures:{1:{name:"keyword.control.enum.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?i)\\b(end\\s*enum)\\b",endCaptures:{1:{name:"keyword.control.end-enum.fortran"}},name:"meta.enum.fortran",patterns:[{begin:"\\G\\s*(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#language-binding-attribute"},{include:"#invalid-word"}]},{begin:"(?i)(?!\\s*\\b(end\\s*enum)\\b)",end:"(?i)(?=\\b(end\\s*enum)\\b)",name:"meta.block.specification.enum.fortran",patterns:[{include:"#comments"},{begin:"(?ix)\\b(enumerator)\\b",beginCaptures:{1:{name:"keyword.other.enumerator.fortran"}},end:"(?=[;!\\n])",name:"meta.statement.enumerator-specification.fortran",patterns:[{begin:"(?=\\s*(,|::))",comment:"Attribute list.",contentName:"meta.attribute-list.enum.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{include:"#invalid-word"}]},{include:"#comments"},{include:"#name-list"}]}]}]},"equivalence-statement":{begin:"(?i)\\b(equivalence)\\b",beginCaptures:{1:{name:"keyword.control.common.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(?:\\G|(,))",beginCaptures:{1:{name:"puntuation.comma.fortran"}},end:"(?=[,;!\\n])",patterns:[{include:"#parentheses-dummy-variables"}]}]},"error-stop-statement":{begin:"(?i)\\s*\\b(error\\s+stop)\\b",beginCaptures:{1:{name:"keyword.control.errorstop.fortran"}},comment:"Introduced in the Fortran 2008 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.errorstop.fortran",patterns:[{include:"#constants"},{include:"#string-operators"},{include:"#variable"},{include:"#invalid-character"}]},"event-statement":{begin:"(?i)\\b(event post|event wait)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.event.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.event.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"execution-statements":{patterns:[{include:"#allocate-statement"},{include:"#deallocate-statement"},{include:"#IO-statements"},{include:"#nullify-statement"}]},"exit-statement":{begin:"(?i)\\s*\\b(exit)\\b",beginCaptures:{1:{name:"keyword.control.exit.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.exit.fortran",patterns:[]},"explicit-interface-block-construct":{begin:"(?i)\\b(interface)\\b(?=\\s*[;!\\n])",beginCaptures:{1:{name:"keyword.control.interface.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?i)\\b(end\\s*interface)\\b",endCaptures:{1:{name:"keyword.control.endinterface.fortran.modern"}},name:"meta.interface.explicit.fortran",patterns:[{include:"$base"}]},"extends-attribute":{begin:"(?i)\\s*\\b(extends)\\s*\\(",beginCaptures:{1:{name:"storage.modifier.extends.fortran"}},end:"(?:\\)|(?=\\n))",patterns:[{match:"(?i)\\s*\\b([a-z]\\w*)\\b",name:"entity.name.type.fortran"}]},"external-attribute":{captures:{1:{name:"storage.modifier.external.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(external)\\b"},"fail-image-statement":{captures:{1:{name:"keyword.control.fail-image.fortran"}},comment:"Introduced in the Fortran 2018 standard.",match:"\\b(fail image)\\b",name:"meta.statement.fail-image.fortran"},"forall-construct":{applyEndPatternLast:1,begin:"(?i)\\b(forall)\\b",beginCaptures:{1:{name:"keyword.control.forall.fortran"}},comment:"Introduced in the Fortran 1995 standard.",end:"(?<!\\G)",patterns:[{begin:"(?i)\\G(?!\\s*[;!\\n])",comment:"Loop control.",end:"(?<!\\G)",name:"meta.loop-control.fortran",patterns:[{include:"#parentheses"},{include:"#invalid-word"}]},{begin:"(?<=\\))(?=\\s*[;!\\n])",end:"(?i)\\b(end\\s*forall)\\b",endCaptures:{1:{name:"keyword.control.endforall.fortran"}},name:"meta.block.forall.fortran",patterns:[{include:"$base"}]},{begin:"(?i)(?<=\\))(?!\\s*[;!\\n])",end:"\\n",name:"meta.statement.control.forall.fortran",patterns:[{include:"$base"}]}]},"form-team-statement":{begin:"(?i)\\b(form team)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.form-team.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.form-team.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"function-definition":{begin:"(?i)(?=([^:'\";!\\n](?!\\bend)(?!\\bsubroutine\\b))*\\bfunction\\b)",comment:"Function program unit. Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.function.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bfunction\\b))",comment:"Function attribute list.",end:"(?i)(?=\\bfunction\\b)",name:"meta.attribute-list.function.fortran",patterns:[{include:"#elemental-attribute"},{include:"#module-attribute"},{include:"#pure-attribute"},{include:"#recursive-attribute"},{include:"#types"},{include:"#invalid-word"}]},{begin:"(?i)\\b(function)\\b",beginCaptures:{1:{name:"keyword.other.function.fortran"}},comment:"Captures the function keyword",end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.fortran"}},comment:"Function body.",end:"(?ix)\\s*\\b(?:(end\\s*function)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endfunction.fortran"},2:{name:"entity.name.function.fortran"},3:{name:"keyword.other.endfunction.fortran"},4:{name:"invalid.error.function.fortran"}},patterns:[{begin:"\\G(?!\\s*[;!\\n])",comment:"Rest of the first line in function construct.",end:"(?=[;!\\n])",name:"meta.function.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#result-statement"},{include:"#language-binding-attribute"}]},{begin:"(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*function\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*function\\b))",name:"meta.block.specification.function.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*function\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]}]},"generic-interface-block-construct":{begin:"(?i)\\b(interface)\\b",beginCaptures:{1:{name:"keyword.control.interface.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.interface.generic.fortran",patterns:[{begin:"(?ix)\\G\\s*\\b(assignment)\\s* (\\()\\s*(?:(\\=)|(\\S.*))\\s*(\\))",beginCaptures:{1:{name:"keyword.other.assignment.fortran"},2:{name:"punctuation.parentheses.left.fortran"},3:{name:"keyword.operator.assignment.fortran"},4:{name:"invalid.error.generic-interface.fortran"},5:{name:"punctuation.parentheses.right.fortran"}},comment:"Assignment generic interface.",end:"(?ix)\\b(end\\s*interface)\\b (?:\\s*\\b(\\1)\\b\\s*(\\()\\s*(?:(\\3)|(\\S.*))\\s*(\\)))?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"keyword.other.assignment.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"keyword.operator.assignment.fortran"},5:{name:"invalid.error.generic-interface-end.fortran"},6:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]},{begin:"(?ix)\\G\\s*\\b(operator)\\s* (\\()\\s*(?: (\\.[a-z]+\\.|\\=\\=|\\/\\=|\\>\\=|\\>|\\<|\\<\\=|\\-|\\+|\\/|\\/\\/|\\*\\*|\\*) |(\\S.*) )\\s*(\\))",beginCaptures:{1:{name:"keyword.other.operator.fortran"},2:{name:"punctuation.parentheses.left.fortran"},3:{name:"keyword.operator.fortran"},4:{name:"invalid.error.generic-interface-block-op.fortran"},5:{name:"punctuation.parentheses.right.fortran"}},comment:"Operator generic interface.",end:"(?ix)\\b(end\\s*interface)\\b (?:\\s*\\b(\\1)\\b\\s*(\\()\\s*(?:(\\3)|(\\S.*))\\s*(\\)))?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"keyword.other.operator.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"keyword.operator.fortran"},5:{name:"invalid.error.generic-interface-block-op-end.fortran"},6:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]},{begin:"(?ix)\\G\\s*\\b(?:(read)|(write))\\s* (\\()\\s*(?:(formatted)|(unformatted)|(\\S.*))\\s*(\\))",beginCaptures:{1:{name:"keyword.other.read.fortran"},2:{name:"keyword.other.write.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"keyword.other.formatted.fortran"},5:{name:"keyword.other.unformatted.fortran"},6:{name:"invalid.error.generic-interface-block.fortran"},7:{name:"punctuation.parentheses.right.fortran"}},comment:"Read/Write generic interface.",end:"(?ix)\\b(end\\s*interface)\\b(?:\\s*\\b(?:(\\2)|(\\3))\\b\\s* (\\()\\s*(?:(\\4)|(\\5)|(\\S.*))\\s*(\\)))?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"keyword.other.read.fortran"},3:{name:"keyword.other.write.fortran"},4:{name:"punctuation.parentheses.left.fortran"},5:{name:"keyword.other.formatted.fortran"},6:{name:"keyword.other.unformatted.fortran"},7:{name:"invalid.error.generic-interface-block-end.fortran"},8:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]},{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.fortran"}},comment:"Generic interface.",end:"(?i)\\b(end\\s*interface)\\b(?:\\s*\\b(\\1)\\b)?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"entity.name.function.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]}]},"goto-statement":{begin:"(?i)\\s*\\b(go\\s*to)\\b",beginCaptures:{1:{name:"keyword.control.goto.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.goto.fortran",patterns:[{include:"$base"}]},"if-construct":{patterns:[{begin:"(?i)\\b(if)\\b",beginCaptures:{1:{name:"keyword.control.if.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#logical-control-expression"},{begin:"(?i)\\s*\\b(then)\\b",beginCaptures:{1:{name:"keyword.control.then.fortran"}},contentName:"meta.block.if.fortran",end:"(?i)\\b(end\\s*if)\\b",endCaptures:{1:{name:"keyword.control.endif.fortran"}},patterns:[{begin:"(?i)\\b(else\\s*if)\\b",beginCaptures:{1:{name:"keyword.control.elseif.fortran"}},comment:"else if statement",end:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{captures:{1:{name:"keyword.control.then.fortran"},2:{name:"meta.label.elseif.fortran"}},comment:"capture the label if present",match:"(?i)\\b(then)\\b(\\s*[a-z]\\w*)?"},{include:"#invalid-word"}]},{begin:"(?i)\\b(else)\\b",beginCaptures:{1:{name:"keyword.control.else.fortran"}},comment:"else block",end:"(?i)(?=\\b(end\\s*if)\\b)",patterns:[{begin:"(?!(\\s*(;|!|\\n)))",comment:"rest of else line",end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"meta.label.else.fortran"},2:{name:"invalid.error.label.else.fortran"}},comment:"capture the label if present",match:"\\s*([a-z]\\w*)?\\s*\\b(\\w*)\\b"},{include:"#invalid-word"}]},{begin:"(?i)(?!\\b(end\\s*if)\\b)",end:"(?i)(?=\\b(end\\s*if)\\b)",patterns:[{include:"$base"}]}]},{include:"$base"}]},{begin:"(?i)(?=\\s*[a-z])",end:"(?=[;!\\n])",name:"meta.statement.control.if.fortran",patterns:[{include:"$base"}]}]}]},"image-control-statement":{patterns:[{include:"#sync-all-statement"},{include:"#sync-statement"},{include:"#event-statement"},{include:"#form-team-statement"},{include:"#fail-image-statement"}]},"implicit-statement":{begin:"(?i)\\b(implicit)\\b",beginCaptures:{1:{name:"keyword.other.implicit.fortran"}},end:"(?=[;!\\n])",name:"meta.statement.implicit.fortran",patterns:[{captures:{1:{name:"keyword.other.none.fortran"}},match:"(?i)\\s*\\b(none)\\b"},{include:"$base"}]},"import-statement":{begin:"(?i)\\b(import)\\b",beginCaptures:{1:{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.include.fortran",patterns:[{begin:"(?i)\\G\\s*(?:(::)|(?=[a-z]))",beginCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#name-list"}]},{begin:"\\G\\s*(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.other.all.fortran"}},match:"(?i)\\G\\s*\\b(all)\\b"},{captures:{1:{name:"keyword.other.none.fortran"}},match:"(?i)\\G\\s*\\b(none)\\b"},{begin:"(?i)\\G\\s*\\b(only)\\s*(:)",beginCaptures:{1:{name:"keyword.other.only.fortran"},2:{name:"keyword.other.colon.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#name-list"}]},{include:"#invalid-word"}]}]},"include-statement":{begin:"(?i)\\b(include)\\b",beginCaptures:{1:{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.include.fortran",patterns:[{include:"#string-constant"},{include:"#invalid-character"}]},"intent-attribute":{begin:"(?i)\\s*\\b(intent)\\s*(\\()",beginCaptures:{1:{name:"storage.modifier.intent.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(\\))|(?=[;!\\n])",endCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},patterns:[{captures:{1:{name:"storage.modifier.intent.in-out.fortran"},2:{name:"storage.modifier.intent.in.fortran"},3:{name:"storage.modifier.intent.out.fortran"}},match:"(?i)\\b(?:(in\\s*out)|(in)|(out))\\b"},{include:"#invalid-word"}]},"interface-block-constructs":{patterns:[{include:"#abstract-interface-block-construct"},{include:"#explicit-interface-block-construct"},{include:"#generic-interface-block-construct"}]},"interface-procedure-statement":{begin:"(?i)(?=[^'\";!\\n]*\\bprocedure\\b)",comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.procedure.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bprocedure\\b))",comment:"Attribute list.",end:"(?i)(?=\\bprocedure\\b)",name:"meta.attribute-list.interface.fortran",patterns:[{include:"#module-attribute"},{include:"#invalid-word"}]},{begin:"(?i)\\s*\\b(procedure)\\b",beginCaptures:{1:{name:"keyword.other.procedure.fortran"}},comment:"Procedure statement.",end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.operator.double-colon.fortran"}},match:"\\G\\s*(::)"},{include:"#procedure-name-list"}]}]},"intrinsic-attribute":{captures:{1:{name:"storage.modifier.intrinsic.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(intrinsic)\\b"},"intrinsic-functions":{patterns:[{begin:"(?ix)\\b(acosh|asinh|atanh|bge|bgt|ble|blt|dshiftl|dshiftr| findloc|hypot|iall|iany|image_index|iparity|is_contiguous|lcobound| leadz|mask[lr]|merge_bits|norm2|num_images|parity|popcnt|poppar| shift[alr]|storage_size|this_image|trailz|ucobound)\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 2008 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(bessel_[jy][01n]|erf(c(_scaled)?)?|gamma|log_gamma)\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Functions accessable through the intrinsic FORTRAN_SPECIAL_FUNCTIONS module. Introduced in the Fortran 2008 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(command_argument_count|extends_type_of|is_iostat_end| is_iostat_eor|new_line|same_type_as|selected_char_kind)\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(ieee_( class|copy_sign|is_(finite|nan|negative|normal)|logb|next_after|rem| rint|scalb|selected_real_kind| support_(datatype|denormal|divide|inf|io|nan|rounding|sqrt|standard|underflow_control)| unordered|value))\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Functions accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(ieee_support_(flag|halting))\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Functions accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(c_(associated|funloc|loc|sizeof))\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"}},comment:"Functions accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(compiler_(options|version))\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Functions accessable through the intrinsic ISO_FORTRAN_ENV module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(null)\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 1995 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b(achar|adjustl|adjustr|all|allocated|associated|any|bit_size|btest|ceiling|count|cshift|digits|dot_product|eoshift|epsilon|exponent|floor|fraction|huge|iachar|iand|ibclr|ibits|ibset|ieor|ior|ishftc?| kind|lbound|len_trim|logical|matmul|maxexponent|maxloc|maxval|merge|minexponent|minloc|minval|modulo|nearest|not|pack|precision|present|product|radix|range|repeat|reshape|rrspacing|scale|scan|selected_(int|real)_kind|set_exponent|shape|size|spacing|spread|sum|tiny|transfer|transpose|trim|ubound|unpack|verify)\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 1990 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\b([icd]?abs|acos|[ad]int|[ad]nint|aimag|amax[01]| amin[01]|d?asin|d?atan|d?atan2|char|conjg|[cd]?cos|d?cosh|cmplx|dble| i?dim|dmax1|dmin1|dprod|[cd]?exp|float|ichar|idint|ifix|index|int|len| lge|lgt|lle|llt|[acd]?log|[ad]?log10|max[01]?|min[01]?|[ad]?mod| (id)?nint|real|[di]?sign|[cd]?sin|d?sinh|sngl|[cd]?sqrt|d?tan|d?tanh) \\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 1977 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]}]},"intrinsic-subroutines":{patterns:[{begin:"(?ix)\\G\\s*\\b(date_and_time|mvbits|random_number|random_seed| system_clock)\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic subroutines introduced in the Fortran 1990 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\G\\s*\\b(cpu_time)\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic subroutines introduced in the Fortran 1995 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\G\\s*\\b(ieee_(get|set)_(rounding|underflow)_mode)\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Subroutines accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\G\\s*\\b(ieee_(get|set)_(flag|halting_mode|status))\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Subroutines accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?i)\\G\\s*\\b(c_f_(pointer|procpointer))\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Subroutines accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:"(?ix)\\G\\s*\\b(execute_command_line|get_command| get_command_argument|get_environment_variable|move_alloc)\\s*(?=\\()",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic subroutines introduced in the Fortran 2008 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]}]},"invalid-character":{match:"(?i)[^\\s;!\\n]+",name:"invalid.error.character.fortran"},"invalid-word":{match:"(?i)\\b\\w+\\b",name:"invalid.error.word.fortran"},"language-binding-attribute":{begin:"(?i)\\s*\\b(bind)\\s*\\(",beginCaptures:{1:{name:"storage.modifier.bind.fortran"}},comment:"Introduced in Fortran 2003 standard.",end:"(?:\\)|(?=\\n))",patterns:[{match:"(?i)\\b(c)\\b",name:"variable.parameter.fortran"},{include:"#dummy-variable"},{include:"$base"}]},"line-continuation-operator":{comment:"Operator that allows a line to be continued on the next line.",patterns:[{captures:{1:{name:"keyword.operator.line-continuation.fortran"}},match:"(?:^|(?<=;))\\s*(&)"},{begin:"\\s*(&)",beginCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},contentName:"meta.line-continuation.fortran",end:"(?i)^(?:\\s*(&))?",endCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},patterns:[{include:"#comments"},{match:"\\S[^!]*",name:"invalid.error.line-cont.fortran"}]}]},"logical-constant":{captures:{1:{name:"constant.language.logical.false.fortran"},2:{name:"constant.language.logical.true.fortran"}},comment:"Logical constants",match:"(?i)\\s*(?:(\\.false\\.)|(\\.true\\.))"},"logical-control-expression":{begin:"\\G(?=\\s*\\()",end:"(?<!\\G)",name:"meta.expression.control.logical.fortran",patterns:[{include:"#parentheses"}]},"logical-operators":{patterns:[{comment:"Introduced in the Fortran 1977 standard.",match:"(?ix)(\\s*\\.(and|eq|eqv|le|lt|ge|gt|ne|neqv|not|or)\\.)",name:"keyword.logical.fortran"},{comment:"Introduced in the Fortran 1990 standard.",match:"(\\=\\=|\\/\\=|\\>\\=|(?<!\\=)\\>|\\<\\=|\\<)",name:"keyword.logical.fortran.modern"}]},"logical-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:"(?i)\\b(logical)\\s*(?=\\()",beginCaptures:{1:{name:"storage.type.logical.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{captures:{1:{name:"storage.type.character.fortran"},2:{name:"keyword.operator.multiplication.fortran"},3:{name:"constant.numeric.fortran"}},match:"(?i)\\b(logical)\\b(?:\\s*(\\*)\\s*(\\d*))?"}]},"module-attribute":{captures:{1:{name:"storage.modifier.module.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?ix)\\s*\\b(module)\\b(?=\\s*(?:[;!\\n]| [^'\";!\\n]*\\b(?:function|procedure|subroutine)\\b))"},"module-definition":{begin:"(?ix)(?=\\b(module)\\b)(?![^'\";!\\n]* \\b(?:function|procedure|subroutine)\\b)",comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.module.fortran",patterns:[{captures:{1:{name:"keyword.other.program.fortran"}},match:"(?i)\\G\\s*\\b(module)\\b"},{applyEndPatternLast:1,begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.class.module.fortran"}},comment:"Module body.",end:"(?ix)\\b(?:(end\\s*module)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endmodule.fortran"},2:{name:"entity.name.class.module.fortran"},3:{name:"keyword.other.endmodule.fortran"},4:{name:"invalid.error.module-definition.fortran"}},patterns:[{begin:"\\G",comment:"Module specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*module\\b))",name:"meta.block.specification.module.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Module contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*module\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"name-list":{begin:"(?i)(?=\\s*[a-z])",comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[\\);!\\n])",patterns:[{include:"#constants"},{include:"#operators"},{include:"#intrinsic-functions"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#brackets"},{include:"#assignment-keyword"},{include:"#operator-keyword"},{include:"#variable"}]},"named-control-constructs":{applyEndPatternLast:1,begin:"(?ix)([a-z]\\w*)\\s*(:)(?=\\s*(?:associate|block(?!\\s*data)|critical|do|forall|if|select\\s*case|select\\s*type|select\\s*rank|where)\\b)",comment:"Introduced in the Fortran 1990 standard.",contentName:"meta.named-construct.fortran.modern",end:"(?i)(?!\\s*\\b(?:associate|block(?!\\s*data)|critical|do|forall|if|select\\s*case|select\\s*type|select\\s*rank|where)\\b)(?:\\b(\\1)\\b)?([^\\s;!\\n]*?)?(?=\\s*[;!\\n])",endCaptures:{1:{name:"meta.label.end.name.fortran"},2:{name:"invalid.error.named-control-constructs.fortran.modern"}},patterns:[{include:"#unnamed-control-constructs"}]},"namelist-statement":{begin:"(?i)\\b(namelist)\\b",beginCaptures:{1:{name:"keyword.control.namelist.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",patterns:[{include:"$base"}]},"non-intrinsic-attribute":{captures:{1:{name:"storage.modifier.non-intrinsic.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(non_intrinsic)\\b"},"non-overridable-attribute":{captures:{1:{name:"storage.modifier.non-overridable.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(non_overridable)\\b"},"nopass-attribute":{captures:{1:{name:"storage.modifier.nopass.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(nopass)\\b"},"nullify-statement":{begin:"(?i)\\b(nullify)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.nullify.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.nullify.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"numeric-constant":{comment:"Numeric constants",match:"(?ix)[\\+\\-]?(\\b\\d+\\.?\\d*|\\.\\d+) (_\\w+|d[\\+\\-]?\\d+|e[\\+\\-]?\\d+(_\\w+)?)?(?![a-z_])",name:"constant.numeric.fortran"},"numeric-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:"(?i)\\b(?:(complex)|(double\\s*precision)|(double\\s*complex)|(integer)|(real))\\s*(?=\\()",beginCaptures:{1:{name:"storage.type.complex.fortran"},2:{name:"storage.type.double.fortran"},3:{name:"storage.type.doublecomplex.fortran"},4:{name:"storage.type.integer.fortran"},5:{name:"storage.type.real.fortran"},6:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{captures:{1:{name:"storage.type.complex.fortran"},2:{name:"storage.type.double.fortran"},3:{name:"storage.type.doublecomplex.fortran"},4:{name:"storage.type.integer.fortran"},5:{name:"storage.type.real.fortran"},6:{name:"storage.type.dimension.fortran"},7:{name:"keyword.operator.multiplication.fortran"},8:{name:"constant.numeric.fortran"}},match:"(?ix)\\b(?:(complex)|(double\\s*precision)|(double\\s*complex)|(integer)|(real)|(dimension))\\b(?:\\s*(\\*)\\s*(\\d*))?"}]},"operator-keyword":{begin:"(?i)\\s*\\b(operator)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.generic-spec.operator.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Operator generic specification.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#arithmetic-operators"},{include:"#logical-operators"},{include:"#user-defined-operators"},{include:"#invalid-word"}]},operators:{patterns:[{include:"#arithmetic-operators"},{include:"#assignment-operator"},{include:"#derived-type-operators"},{include:"#logical-operators"},{include:"#pointer-operators"},{include:"#string-operators"},{include:"#user-defined-operators"}]},"optional-attribute":{captures:{1:{name:"storage.modifier.optional.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(optional)\\b"},"parameter-attribute":{captures:{1:{name:"storage.modifier.parameter.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(parameter)\\b"},parentheses:{begin:"\\s*(\\()",beginCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#intrinsic-functions"},{include:"#variable"}]},"parentheses-dummy-variables":{begin:"\\s*(\\()",beginCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#procedure-call-dummy-variable"},{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#intrinsic-functions"},{include:"#variable"}]},"pass-attribute":{comment:"Introduced in the Fortran 2003 standard.",patterns:[{begin:"(?i)\\s*\\b(pass)\\s*\\(",beginCaptures:{1:{name:"storage.modifier.pass.fortran"}},comment:"Pass attribute with argument.",end:"\\)|(?=\\n)",patterns:[]},{captures:{1:{name:"storage.modifier.pass.fortran"}},comment:"Pass attribute without argument.",match:"(?i)\\s*\\b(pass)\\b"}]},"pause-statement":{begin:"(?i)\\s*\\b(pause)\\b",beginCaptures:{1:{name:"keyword.control.pause.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.pause.fortran",patterns:[{include:"#constants"},{include:"#invalid-character"}]},"pointer-attribute":{captures:{1:{name:"storage.modifier.pointer.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(pointer)\\b"},"pointer-operators":{comment:"Introduced in the Fortran 1990 standard.",match:"(\\=\\>)",name:"keyword.other.point.fortran"},preprocessor:{begin:"^\\s*(#:?)",beginCaptures:{1:{name:"keyword.control.preprocessor.indicator.fortran"}},end:"\\n",name:"meta.preprocessor",patterns:[{include:"#preprocessor-if-construct"},{include:"#preprocessor-statements"}]},"preprocessor-arithmetic-operators":{captures:{1:{name:"keyword.operator.subtraction.fortran"},2:{name:"keyword.operator.addition.fortran"},3:{name:"keyword.operator.division.fortran"},4:{name:"keyword.operator.multiplication.fortran"}},comment:"division regex is different than in main fortran",match:"(\\-)|(\\+)|(\\/)|(\\*)"},"preprocessor-assignment-operator":{comment:"assignments with = are not allowed",match:"(?<!\\=)(\\=)(?!\\=)",name:"keyword.operator.assignment.preprocessor.fortran"},"preprocessor-comments":{begin:"/\\*",end:"\\*/",name:"comment.preprocessor"},"preprocessor-constants":{patterns:[{include:"#cpp-numeric-constant"},{include:"#preprocessor-string-constant"}]},"preprocessor-define-statement":{begin:"(?i)\\G\\s*\\b(define)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.define.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.macro.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-constants"},{include:"#preprocessor-line-continuation-operator"}]},"preprocessor-defined-function":{captures:{1:{name:"keyword.control.preprocessor.defined.fortran"}},match:"(?i)\\b(defined)\\b"},"preprocessor-error-statement":{begin:"(?i)\\G\\s*(error)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.error.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.macro.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-string-constant"},{include:"#preprocessor-line-continuation-operator"}]},"preprocessor-if-construct":{patterns:[{begin:"(?i)\\G\\s*\\b(if)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.if.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.conditional.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"},{include:"#preprocessor-defined-function"},{include:"#preprocessor-line-continuation-operator"}]},{begin:"(?i)\\G\\s*\\b(ifdef)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.ifdef.fortran"}},end:"(?=\\n)",patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"},{include:"#preprocessor-line-continuation-operator"}]},{begin:"(?i)\\G\\s*\\b(ifndef)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.ifndef.fortran"}},end:"(?=\\n)",patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"},{include:"#preprocessor-line-continuation-operator"}]},{begin:"(?i)\\G\\s*\\b(else)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.else.fortran"}},end:"(?=\\n)",patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"}]},{begin:"(?i)\\G\\s*\\b(elif)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.elif.fortran"}},end:"(?=\\n)",patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"},{include:"#preprocessor-defined-function"},{include:"#preprocessor-line-continuation-operator"}]},{begin:"(?i)\\G\\s*\\b(endif)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.endif.fortran"}},end:"(?=\\n)",patterns:[{include:"#preprocessor-comments"}]}]},"preprocessor-include-statement":{begin:"(?i)\\G\\s*(include)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.include.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.include.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-string-constant"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.preprocessor.fortran"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.other.lt-gt.include.preprocessor.fortran"},{include:"#line-continuation-operator"}]},"preprocessor-line-continuation-operator":{begin:"\\s*(\\\\)",beginCaptures:{1:{name:"constant.character.escape.line-continuation.preprocessor.fortran"}},end:"(?i)^"},"preprocessor-logical-operators":{captures:{1:{name:"keyword.operator.logical.preprocessor.and.fortran"},2:{name:"keyword.operator.logical.preprocessor.equals.fortran"},3:{name:"keyword.operator.logical.preprocessor.not_equals.fortran"},4:{name:"keyword.operator.logical.preprocessor.or.fortran"},5:{name:"keyword.operator.logical.preprocessor.less_eq.fortran"},6:{name:"keyword.operator.logical.preprocessor.more_eq.fortran"},7:{name:"keyword.operator.logical.preprocessor.less.fortran"},8:{name:"keyword.operator.logical.preprocessor.more.fortran"},9:{name:"keyword.operator.logical.preprocessor.complementary.fortran"},10:{name:"keyword.operator.logical.preprocessor.xor.fortran"},11:{name:"keyword.operator.logical.preprocessor.bitand.fortran"},12:{name:"keyword.operator.logical.preprocessor.not.fortran"},13:{name:"keyword.operator.logical.preprocessor.bitor.fortran"}},comment:"and:&&, bitand:&, or:||, bitor:|, not eq:!=, not:!, xor:^, compl:~",match:"(&&)|(==)|(\\!=)|(\\|\\|)|(\\<\\=)|(\\>=)|(\\<)|(\\>)|(~)|(\\^)|(&)|(\\!)|(\\|)",name:"keyword.operator.logical.preprocessor.fortran"},"preprocessor-operators":{patterns:[{include:"#preprocessor-line-continuation-operator"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"}]},"preprocessor-pragma-statement":{begin:"(?i)\\G\\s*\\b(pragma)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.pragma.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.pragma.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-string-constant"}]},"preprocessor-statements":{patterns:[{include:"#preprocessor-define-statement"},{include:"#preprocessor-error-statement"},{include:"#preprocessor-include-statement"},{include:"#preprocessor-preprocessor-pragma-statement"},{include:"#preprocessor-undefine-statement"}]},"preprocessor-string-constant":{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Double quote string",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.double.include.preprocessor.fortran"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Single quote string",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.single.include.preprocessor.fortran"}]},"preprocessor-undefine-statement":{begin:"(?i)\\G\\s*\\b(undef)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.undef.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.undef.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-line-continuation-operator"}]},"private-attribute":{captures:{1:{name:"storage.modifier.private.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(private)\\b"},"procedure-call-dummy-variable":{match:"(?i)\\s*([a-z]\\w*)(?=\\s*\\=)(?!\\s*\\=\\=)",name:"variable.parameter.dummy-variable.fortran.modern"},"procedure-definition":{begin:"(?i)(?=[^'\";!\\n]*\\bmodule\\s+procedure\\b)",comment:"Procedure program unit. Introduced in the Fortran 2008 standard.",end:"(?=[;!\\n])",name:"meta.procedure.fortran",patterns:[{begin:"(?i)\\s*\\b(module\\s+procedure)\\b",beginCaptures:{1:{name:"keyword.other.procedure.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.procedure.fortran"}},comment:"Procedure body.",end:"(?ix)\\s*\\b(?:(end\\s*procedure)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endprocedure.fortran"},2:{name:"entity.name.function.procedure.fortran"},3:{name:"keyword.other.endprocedure.fortran"},4:{name:"invalid.error.procedure-definition.fortran"}},patterns:[{begin:"\\G(?!\\s*[;!\\n])",comment:"Rest of the first line in procedure construct - should be empty.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#invalid-character"}]},{begin:"(?i)(?!\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",name:"meta.block.specification.procedure.fortran",patterns:[{include:"$self"}]},{begin:"(?i)\\s*(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*procedure\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$self"}]}]}]}]},"procedure-name":{captures:{1:{name:"entity.name.function.procedure.fortran"}},comment:"Procedure name.",match:"(?i)\\s*\\b([a-z]\\w*)\\b"},"procedure-name-list":{begin:"(?i)(?=\\s*[a-z])",comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[;!\\n])",patterns:[{begin:"(?!\\s*\\n)",end:"(,)|(?=[!;\\n])",endCaptures:{1:{name:"punctuation.comma.fortran"}},patterns:[{include:"#procedure-name"},{include:"#pointer-operators"}]}]},"procedure-specification-statement":{begin:"(?i)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",contentName:"meta.attribute-list.procedure.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)|^|(?<=&)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,&;!\\n])",patterns:[{include:"#access-attribute"},{include:"#intent-attribute"},{include:"#optional-attribute"},{include:"#pointer-attribute"},{include:"#protected-attribute"},{include:"#save-attribute"},{include:"#invalid-word"}]}]},{include:"#procedure-name-list"}]},"procedure-type":{comment:"Introduced in the Fortran ???? standard.",patterns:[{begin:"(?i)\\b(procedure)\\s*(\\()",beginCaptures:{1:{name:"storage.type.procedure.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#types"},{include:"#procedure-name"}]},{captures:{1:{name:"storage.type.procedure.fortran"}},match:"(?i)\\b(procedure)\\b"}]},"program-definition":{begin:"(?i)(?=\\b(program)\\b)",comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.program.fortran",patterns:[{captures:{1:{name:"keyword.control.program.fortran"}},match:"(?i)\\G\\s*\\b(program)\\b"},{applyEndPatternLast:1,begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.program.fortran"}},comment:"Program body.",end:"(?ix)\\b(?:(end\\s*program)(?:\\s+([a-z_]\\w*))?|(end))\\b\\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.control.endprogram.fortran"},2:{name:"entity.name.program.fortran"},3:{name:"keyword.control.endprogram.fortran"},4:{name:"invalid.error.program-definition.fortran"}},patterns:[{begin:"\\G",comment:"Program specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.specification.program.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Program contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"protected-attribute":{captures:{1:{name:"storage.modifier.protected.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(protected)\\b"},"public-attribute":{captures:{1:{name:"storage.modifier.public.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(public)\\b"},"pure-attribute":{captures:{1:{name:"storage.modifier.impure.fortran"},2:{name:"storage.modifier.pure.fortran"}},comment:"Introduced in the Fortran 1995 standard.",match:"(?i)\\s*\\b(?:(impure)|(pure))\\b"},"recursive-attribute":{captures:{1:{name:"storage.modifier.non_recursive.fortran"},2:{name:"storage.modifier.recursive.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(?:(non_recursive)|(recursive))\\b"},"result-statement":{begin:"(?i)\\s*\\b(result)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.result.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#dummy-variable"}]},"return-statement":{begin:"(?i)\\s*\\b(return)\\b",beginCaptures:{1:{name:"keyword.control.return.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.return.fortran",patterns:[{include:"#invalid-character"}]},"save-attribute":{captures:{1:{name:"storage.modifier.save.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(save)\\b"},"select-case-construct":{begin:"(?i)\\b(select\\s*case)\\b",beginCaptures:{1:{name:"keyword.control.selectcase.fortran"}},comment:"Select case construct. Introduced in the Fortran 1990 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.case.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(case)\\b",beginCaptures:{1:{name:"keyword.control.case.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-rank-construct":{begin:"(?i)\\b(select\\s*rank)\\b",beginCaptures:{1:{name:"keyword.control.selectrank.fortran"}},comment:"Select rank construct. Introduced in the Fortran 2008 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.rank.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(rank)\\b",beginCaptures:{1:{name:"keyword.control.rank.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-type-construct":{begin:"(?i)\\b(select\\s*type)\\b",beginCaptures:{1:{name:"keyword.control.selecttype.fortran"}},comment:"Select type construct. Introduced in the Fortran 2003 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.type.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(?:(class)|(type))\\b",beginCaptures:{1:{name:"keyword.control.class.fortran"},2:{name:"keyword.control.type.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{captures:{1:{name:"keyword.control.is.fortran"}},match:"(?i)\\G\\s*\\b(is)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"sequence-attribute":{captures:{1:{name:"storage.modifier.sequence.fortran"}},comment:"Introduced in the Fortran 20?? standard.",match:"(?i)\\s*\\b(sequence)\\b"},"specification-statements":{patterns:[{include:"#attribute-specification-statement"},{include:"#common-statement"},{include:"#data-statement"},{include:"#equivalence-statement"},{include:"#implicit-statement"},{include:"#namelist-statement"},{include:"#use-statement"}]},"stop-statement":{begin:"(?i)\\s*\\b(stop)\\b(?:\\s*\\b([a-z]\\w*)\\b)?",beginCaptures:{1:{name:"keyword.control.stop.fortran"},2:{name:"meta.label.stop.stop"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.stop.fortran",patterns:[{include:"#constants"},{include:"#string-operators"},{include:"#invalid-character"}]},"string-constant":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{applyEndPatternLast:1,begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.single.fortran",patterns:[{match:"''",name:"constant.character.escape.apostrophe.fortran"}]},{applyEndPatternLast:1,begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.double.fortran",patterns:[{match:'""',name:"constant.character.escape.quote.fortran"}]}]},"string-line-continuation-operator":{begin:"(&)(?=\\s*\\n)",beginCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},comment:"Operator that allows a line to be continued on the next line.",end:"(?i)^(?:(?=\\s*[^\\s!&])|\\s*(&))",endCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},patterns:[{include:"#comments"},{match:"\\S.*",name:"invalid.error.string-line-cont.fortran"}]},"string-operators":{comment:"Introduced in the Fortran 19?? standard.",match:"(\\/\\/)",name:"keyword.other.concatination.fortran"},"submodule-definition":{begin:"(?i)(?=\\b(submodule)\\s*\\()",comment:"Introduced in the Fortran 2008 standard.",end:"(?=[;!\\n])",name:"meta.submodule.fortran",patterns:[{begin:"(?i)\\G\\s*\\b(submodule)\\s*(\\()\\s*(\\w+)",beginCaptures:{1:{name:"keyword.other.submodule.fortran"},2:{name:"punctuation.parentheses.left.fortran"},3:{name:"entity.name.class.submodule.fortran"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},patterns:[]},{applyEndPatternLast:1,begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.module.submodule.fortran"}},comment:"Submodule body.",end:"(?ix)\\s*\\b(?:(end\\s*submodule)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endsubmodule.fortran"},2:{name:"entity.name.module.submodule.fortran"},3:{name:"keyword.other.endsubmodule.fortran"},4:{name:"invalid.error.submodule.fortran"}},patterns:[{begin:"\\G",comment:"Submodule specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.specification.submodule.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Submodule contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"subroutine-definition":{begin:"(?i)(?=([^:'\";!\\n](?!\\bend))*\\bsubroutine\\b)",comment:"Subroutine program unit. Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.subroutine.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bsubroutine\\b))",comment:"Attribute list.",end:"(?i)(?=\\bsubroutine\\b)",name:"meta.attribute-list.subroutine.fortran",patterns:[{include:"#elemental-attribute"},{include:"#module-attribute"},{include:"#pure-attribute"},{include:"#recursive-attribute"},{include:"#invalid-word"}]},{begin:"(?i)\\s*\\b(subroutine)\\b",beginCaptures:{1:{name:"keyword.other.subroutine.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"}},comment:"Subroutine body.",end:"(?ix)\\b(?:(end\\s*subroutine)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endsubroutine.fortran"},2:{name:"entity.name.function.subroutine.fortran"},3:{name:"keyword.other.endsubroutine.fortran"},4:{name:"invalid.error.subroutine.fortran"}},patterns:[{begin:"\\G(?!\\s*[;!\\n])",comment:"Rest of the first line in subroutine construct.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#language-binding-attribute"}]},{begin:"(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.specification.subroutine.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]}]},"sync-all-statement":{begin:"(?i)\\b(sync all|sync memory)(\\s*(?=\\())?",beginCaptures:{1:{name:"keyword.control.sync-all-memory.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.sync-all-memory.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"sync-statement":{begin:"(?i)\\b(sync images|sync team)\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.sync-images-team.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:"(?<!\\G)",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.sync-images-team.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"target-attribute":{captures:{1:{name:"storage.modifier.target.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(target)\\b"},"type-specification-statements":{begin:"(?ix)(?=\\b(?:character|class|complex|double\\s*precision|double\\s*complex|integer|logical|real|type|dimension)\\b(?![^'\";!\\n:]*\\bfunction\\b))",comment:"Supported types for function and escape :: if function is used as a variable name (which is bad practice).",end:"(?=[\\);!\\n])",name:"meta.specification.type.fortran",patterns:[{include:"#types"},{begin:"(?=\\s*(,|::))",comment:"Attribute list.",contentName:"meta.attribute-list.type-specification-statements.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)|^|(?<=&)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,&;!\\n])",patterns:[{include:"#access-attribute"},{include:"#allocatable-attribute"},{include:"#asynchronous-attribute"},{include:"#codimension-attribute"},{include:"#contiguous-attribute"},{include:"#dimension-attribute"},{include:"#external-attribute"},{include:"#intent-attribute"},{include:"#intrinsic-attribute"},{include:"#language-binding-attribute"},{include:"#optional-attribute"},{include:"#parameter-attribute"},{include:"#pointer-attribute"},{include:"#protected-attribute"},{include:"#save-attribute"},{include:"#target-attribute"},{include:"#value-attribute"},{include:"#volatile-attribute"},{include:"#invalid-word"}]}]},{include:"#name-list"}]},types:{patterns:[{include:"#character-type"},{include:"#derived-type"},{include:"#logical-type"},{include:"#numeric-type"}]},"unnamed-control-constructs":{patterns:[{include:"#associate-construct"},{include:"#block-construct"},{include:"#critical-construct"},{include:"#do-construct"},{include:"#forall-construct"},{include:"#if-construct"},{include:"#select-case-construct"},{include:"#select-type-construct"},{include:"#select-rank-construct"},{include:"#where-construct"}]},"use-statement":{begin:"(?i)\\b(use)\\b",beginCaptures:{1:{name:"keyword.control.use.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.use.fortran",patterns:[{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",contentName:"meta.attribute-list.namelist.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,;!\\n])",patterns:[{include:"#intrinsic-attribute"},{include:"#non-intrinsic-attribute"},{include:"#invalid-word"}]}]},{begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.class.module.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[;!\\n])",patterns:[{begin:"(?i)\\s*\\b(only\\s*:)",beginCaptures:{1:{name:"keyword.control.only.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#operator-keyword"},{include:"$base"}]},{begin:"(?i)(?=\\s*[a-z])",contentName:"meta.name-list.fortran",end:"(?=[;!\\n])",patterns:[{include:"#operator-keyword"},{include:"$base"}]}]}]}]},"user-defined-operators":{captures:{1:{name:"keyword.operator.user-defined.fortran"}},match:"(?i)\\s*(\\.[a-z]+\\.)"},"value-attribute":{captures:{1:{name:"storage.modifier.value.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(value)\\b"},variable:{applyEndPatternLast:1,begin:"(?i)\\b(?=[a-z])",end:"(?<!\\G)",name:"meta.parameter.fortran",patterns:[{include:"#brackets"},{include:"#derived-type-operators"},{include:"#parentheses-dummy-variables"},{include:"#word"}]},"volatile-attribute":{captures:{1:{name:"storage.modifier.volatile.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(volatile)\\b"},"where-construct":{patterns:[{applyEndPatternLast:1,begin:"(?i)\\b(where)\\b",beginCaptures:{1:{name:"keyword.control.where.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?<!\\G)",patterns:[{include:"#logical-control-expression"},{begin:"(?<=\\))(?=\\s*[;!\\n])",end:"(?i)\\b(end\\s*where)\\b",endCaptures:{1:{name:"keyword.control.endwhere.fortran"}},name:"meta.block.where.fortran",patterns:[{begin:"(?i)\\s*\\b(else\\s*where)\\b",beginCaptures:{1:{name:"keyword.control.elsewhere.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},{begin:"(?i)(?<=\\))(?!\\s*[;!\\n])",end:"\\n",name:"meta.statement.control.where.fortran",patterns:[{include:"$base"}]}]}]},"while-attribute":{begin:"(?i)\\G\\s*\\b(while)\\b",beginCaptures:{1:{name:"keyword.control.while.fortran"}},comment:"Introduced in the Fortran 1995 standard.",end:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{include:"#invalid-word"}]},word:{patterns:[{match:"(?i)(?:\\G|(?<=\\%))\\s*\\b([a-z]\\w*)\\b"}]}},s="source.fortran.free",c={displayName:e,fileTypes:n,firstLineMatch:t,injections:r,name:a,patterns:o,repository:i,scopeName:s};export{c as default,e as displayName,n as fileTypes,t as firstLineMatch,r as injections,a as name,o as patterns,i as repository,s as scopeName};
@@ -0,0 +1 @@
1
+ var e="F#",a="fsharp",n=[{include:"#compiler_directives"},{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#definition"},{include:"#abstract_definition"},{include:"#attributes"},{include:"#modules"},{include:"#anonymous_functions"},{include:"#du_declaration"},{include:"#record_declaration"},{include:"#records"},{include:"#strp_inlined"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}],t={abstract_definition:{begin:"\\b(static)?\\s+(abstract)\\s+(member)?(\\s+\\[\\<.*\\>\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(<)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"keyword.fsharp"},4:{name:"support.function.attribute.fsharp"},5:{name:"keyword.symbol.fsharp"}},end:"\\s*(with)\\b|=|$",endCaptures:{1:{name:"keyword.fsharp"}},name:"abstract.definition.fsharp",patterns:[{include:"#comments"},{include:"#common_declaration"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.type.fsharp"}},match:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}"},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:"(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)"},{include:"#keywords"}]},anonymous_functions:{patterns:[{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"keyword.fsharp"}},end:"(->)",endCaptures:{1:{name:"keyword.symbol.arrow.fsharp"}},name:"function.anonymous",patterns:[{include:"#comments"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"\\s*(?=(->))",endCaptures:{1:{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#variables"}]}]},anonymous_record_declaration:{begin:"(\\{\\|)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\|\\})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"keyword.symbol.fsharp"}},match:"[[:alpha:]0-9'`^_ ]+(:)"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^_ ]+)"},{include:"#anonymous_record_declaration"},{include:"#keywords"}]},attributes:{patterns:[{begin:"\\[\\<",end:"\\>\\]|\\]",name:"support.function.attribute.fsharp",patterns:[{include:"$self"}]}]},cexprs:{patterns:[{captures:{0:{name:"keyword.fsharp"}},match:"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)",name:"cexpr.fsharp"}]},chars:{patterns:[{captures:{1:{name:"string.quoted.single.fsharp"}},match:"('\\\\?.')",name:"char.fsharp"}]},comments:{patterns:[{beginCaptures:{1:{name:"comment.block.fsharp"}},match:"(\\(\\*{3}.*\\*{3}\\))",name:"comment.literate.command.fsharp"},{begin:"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$",beginCaptures:{1:{name:"comment.block.fsharp"}},endCaptures:{1:{name:"comment.block.fsharp"}},name:"comment.block.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:"^(?!\\s*(\\*)+\\)\\s*$)"},{begin:"(\\(\\*(?!\\)))",beginCaptures:{1:{name:"comment.block.fsharp"}},end:"(\\*+\\))",endCaptures:{1:{name:"comment.block.fsharp"}},name:"comment.block.fsharp",patterns:[{comments:"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",match:"//",name:"fast-capture.comment.line.double-slash.fsharp"},{comments:"Capture (*) when inside of (* *) so that it doesn't prematurely end the comment block.",match:"\\(\\*\\)",name:"fast-capture.comment.line.mul-operator.fsharp"},{include:"#comments"}]},{captures:{1:{name:"comment.block.fsharp"}},match:"((?<!\\()(\\*)+\\))",name:"comment.block.markdown.fsharp.end"},{begin:"(?<![!%&+-.<=>?@^|/])///(?!/)",name:"comment.line.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:"(?<![!%&+-.<=>?@^|/])///(?!/)"},{match:"(?<![!%&+-.<=>?@^|/])//(.*$)",name:"comment.line.double-slash.fsharp"}]},common_binding_definition:{patterns:[{include:"#comments"},{include:"#attributes"},{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{begin:"(:)\\s*(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))",endCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"},3:{name:"keyword.fsharp"}},end:"(?=:)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{captures:{1:{name:"entity.name.type.fsharp"}},comment:"Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition",match:"([[:alpha:]0-9'^._]+)"},{match:"(\\(|\\))",name:"keyword.symbol.fsharp"}]},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},match:"(:)\\s*([?[:alpha:]0-9'`^._ ]+)"},{captures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"entity.name.type.fsharp"}},match:"(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*"},{begin:"(\\*)\\s*(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))*)",endCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},end:"(?==)|(?=\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(<+(?![[:space:]]*\\)))",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},beginComment:"The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",end:"((?<!:)>|\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},endComment:"The group (?<!:) prevent us from stopping on :> when using SRTP synthax",patterns:[{include:"#generic_declaration"}]},{include:"#anonymous_record_declaration"},{begin:"({)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#record_signature"}]},{include:"#definition"},{include:"#variables"},{include:"#keywords"}]},common_declaration:{patterns:[{begin:"\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)",beginCaptures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"entity.name.type.fsharp"},3:{name:"keyword.symbol.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^._ ]+)"},{include:"#keywords"}]},{captures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"entity.name.type.fsharp"}},match:"\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)"},{include:"#anonymous_record_declaration"},{begin:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"keyword.symbol.fsharp"},5:{name:"entity.name.type.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^._ ]+)"},{include:"#keywords"}]}]},compiler_directives:{patterns:[{captures:{},match:"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)",name:"keyword.control.directive.fsharp"}]},constants:{patterns:[{match:"\\(\\)",name:"keyword.symbol.fsharp"},{match:"\\b-?[0-9][0-9_]*((\\.(?!\\.)([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))",name:"constant.numeric.float.fsharp"},{match:"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))",name:"constant.numeric.integer.nativeint.fsharp"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.fsharp"},{match:"\\b(null|void)\\b",name:"constant.other.fsharp"}]},definition:{patterns:[{begin:"\\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"support.function.attribute.fsharp"},4:{name:"storage.modifier.fsharp"},5:{name:"variable.fsharp"}},end:"\\s*((with\\b)|(=|\\n+=|(?<=\\=)))",endCaptures:{2:{name:"keyword.fsharp"},3:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"}},end:"\\s*(=)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{4:{name:"variable.fsharp"}},end:"\\s*(=|\\n+=|(?<=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(static val mutable|val mutable|val inline|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"support.function.attribute.fsharp"},4:{name:"storage.modifier.fsharp"},5:{name:"variable.fsharp"}},end:"\\n$",name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(new)\\b\\s+(\\()",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]}]},double_tick:{patterns:[{captures:{1:{name:"string.quoted.single.fsharp"},2:{name:"variable.other.binding.fsharp"},3:{name:"string.quoted.single.fsharp"}},match:"(``)([^`]*)(``)",name:"variable.other.binding.fsharp"}]},du_declaration:{patterns:[{begin:"\\b(of)\\b",beginCaptures:{1:{name:"keyword.fsharp"}},end:"$|(\\|)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"du_declaration.fsharp",patterns:[{include:"#comments"},{captures:{1:{name:"variable.parameter.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)"},{include:"#anonymous_record_declaration"},{include:"#keywords"}]}]},generic_declaration:{patterns:[{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{match:"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",name:"keyword.fsharp"},{match:":",name:"keyword.symbol.fsharp"},{include:"#constants"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{begin:"(<)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{include:"#tuple_signature"},{include:"#generic_declaration"}]},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{include:"#tuple_signature"}]},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words are allowed",match:"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)"},{captures:{1:{name:"keyword.symbol.fsharp"}},comments:"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",match:"(\\|)"},{include:"#keywords"}]},keywords:{patterns:[{match:"\\b(private|public|internal)\\b",name:"storage.modifier"},{match:"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",name:"keyword.fsharp"},{match:"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b",name:"keyword.control"},{match:"(\\->|\\<\\-)",name:"keyword.symbol.arrow.fsharp"},{match:"(&&&|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|&|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)",name:"keyword.symbol.fsharp"}]},member_declaration:{patterns:[{include:"#comments"},{include:"#common_declaration"},{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{match:"(\\(|\\))",name:"keyword.symbol.fsharp"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.type.fsharp"}},match:"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}"},{include:"#keywords"}]},modules:{patterns:[{begin:"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"storage.modifier.fsharp"},4:{name:"entity.name.section.fsharp"}},end:"(\\s?=|\\s|$)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"entity.name.section.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"}]},{begin:"\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"entity.name.section.fsharp"}},end:"(\\s|$)",name:"namespace.open.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"},{include:"#comments"}]},{begin:"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"entity.name.type.namespace.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.section.fsharp"}},end:"(\\s|$)",name:"namespace.alias.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"}]}]},record_declaration:{patterns:[{begin:"(\\{)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(?<=\\})",patterns:[{include:"#comments"},{begin:"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?<!:):(?!:))\\s*",beginCaptures:{3:{name:"keyword.fsharp"},4:{name:"keyword.symbol.fsharp"}},end:"$|(;|\\})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#comments"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^_ ]+)"},{include:"#keywords"}]},{include:"#compiler_directives"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#definition"},{include:"#attributes"},{include:"#anonymous_functions"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}]}]},record_signature:{patterns:[{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"}},match:"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)"},{begin:"({)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"}},match:"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)"},{include:"#record_signature"}]},{include:"#keywords"}]},records:{patterns:[{begin:"\\b(type)[\\s]+(private|internal|public)?\\s*",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"storage.modifier.fsharp"}},end:"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))",endCaptures:{2:{name:"keyword.fsharp"},3:{name:"keyword.fsharp"},4:{name:"keyword.fsharp"},5:{name:"variable.parameter.fsharp"},6:{name:"keyword.symbol.fsharp"},7:{name:"keyword.symbol.fsharp"}},name:"record.fsharp",patterns:[{include:"#comments"},{include:"#attributes"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)"},{begin:"(<)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"((?<!:)>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)"},{match:"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b",name:"keyword.fsharp"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"keyword.fsharp"}},match:"(static member|member|new)"},{include:"#common_binding_definition"}]},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:"([\\w0-9'`^._]+)"},{include:"#keywords"}]},{captures:{1:{name:"storage.modifier.fsharp"}},match:"\\s*(private|internal|public)"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#keywords"}]}]},string_formatter:{patterns:[{captures:{1:{name:"keyword.format.specifier.fsharp"}},match:"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))",name:"entity.name.type.format.specifier.fsharp"}]},strings:{patterns:[{begin:'(?=[^\\\\])(@")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(")(?!")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.literal.fsharp",patterns:[{match:'"(")',name:"constant.character.string.escape.fsharp"}]},{begin:'(?=[^\\\\])(""")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.triple.fsharp",patterns:[{include:"#string_formatter"}]},{begin:'(?=[^\\\\])(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.double.fsharp",patterns:[{match:"\\\\$[ \\t]*",name:"punctuation.separator.string.ignore-eol.fsharp"},{match:"\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))",name:"constant.character.string.escape.fsharp"},{match:"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])",name:"invalid.illegal.character.string.fsharp"},{include:"#string_formatter"}]}]},strp_inlined:{patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]}]},strp_inlined_body:{patterns:[{include:"#comments"},{include:"#anonymous_functions"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]},{captures:{1:{name:"keyword.fsharp"},2:{name:"variable.fsharp"},3:{name:"keyword.symbol.fsharp"}},match:"(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)"},{include:"#compiler_directives"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#keywords"},{include:"#text"},{include:"#definition"},{include:"#attributes"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}]},text:{patterns:[{match:"\\\\",name:"text.fsharp"}]},tuple_signature:{patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{include:"#tuple_signature"}]},{include:"#keywords"}]},variables:{patterns:[{match:"\\(\\)",name:"keyword.symbol.fsharp"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"}},match:"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)"}]}},r="source.fsharp",s={displayName:"F#",name:a,patterns:n,repository:t,scopeName:r};export{s as default,e as displayName,a as name,n as patterns,t as repository,r as scopeName};
@@ -0,0 +1 @@
1
+ var e="GDResource",a="gdresource",r=[{include:"#embedded_shader"},{include:"#embedded_gdscript"},{include:"#comment"},{include:"#heading"},{include:"#key_value"}],n={comment:{captures:{1:{name:"punctuation.definition.comment.gdresource"}},match:"(;).*$\\n?",name:"comment.line.gdresource"},data:{patterns:[{include:"#comment"},{begin:"(?<!\\w)(\\{)\\s*",beginCaptures:{1:{name:"punctuation.definition.table.inline.gdresource"}},end:"\\s*(\\})(?!\\w)",endCaptures:{1:{name:"punctuation.definition.table.inline.gdresource"}},patterns:[{include:"#key_value"},{include:"#data"}]},{begin:"(?<!\\w)(\\[)\\s*",beginCaptures:{1:{name:"punctuation.definition.array.gdresource"}},end:"\\s*(\\])(?!\\w)",endCaptures:{1:{name:"punctuation.definition.array.gdresource"}},patterns:[{include:"#data"}]},{begin:'"""',end:'"""',name:"string.quoted.triple.basic.block.gdresource",patterns:[{match:'\\\\([btnfr"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.gdresource"},{match:'\\\\[^btnfr/"\\\\\\n]',name:"invalid.illegal.escape.gdresource"}]},{match:'"res:\\/\\/[^"\\\\]*(?:\\\\.[^"\\\\]*)*"',name:"support.function.any-method.gdresource"},{match:'(?<=type=)"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"',name:"support.class.library.gdresource"},{match:'(?<=NodePath\\(|parent=|name=)"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"',name:"constant.character.escape.gdresource"},{begin:'"',end:'"',name:"string.quoted.double.basic.line.gdresource",patterns:[{match:'\\\\([btnfr"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.gdresource"},{match:'\\\\[^btnfr/"\\\\\\n]',name:"invalid.illegal.escape.gdresource"}]},{match:"'.*?'",name:"string.quoted.single.literal.line.gdresource"},{match:"(?<!\\w)(true|false)(?!\\w)",name:"constant.language.gdresource"},{match:"(?<!\\w)([\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\\.(0|([1-9](([0-9]|_[0-9])+)?)))?[eE][\\+\\-]?[1-9]_?[0-9]*|(?:\\.[0-9_]*)))(?!\\w)",name:"constant.numeric.float.gdresource"},{match:"(?<!\\w)((?:[\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))))(?!\\w)",name:"constant.numeric.integer.gdresource"},{match:"(?<!\\w)([\\+\\-]?inf)(?!\\w)",name:"constant.numeric.inf.gdresource"},{match:"(?<!\\w)([\\+\\-]?nan)(?!\\w)",name:"constant.numeric.nan.gdresource"},{match:"(?<!\\w)((?:0x(([0-9a-fA-F](([0-9a-fA-F]|_[0-9a-fA-F])+)?))))(?!\\w)",name:"constant.numeric.hex.gdresource"},{match:"(?<!\\w)(0o[0-7](_?[0-7])*)(?!\\w)",name:"constant.numeric.oct.gdresource"},{match:"(?<!\\w)(0b[01](_?[01])*)(?!\\w)",name:"constant.numeric.bin.gdresource"},{begin:"(?<!\\w)(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\\()\\s?",beginCaptures:{1:{name:"support.class.library.gdresource"}},end:"\\s?(\\))",patterns:[{include:"#key_value"},{include:"#data"}]},{begin:"(?<!\\w)(ExtResource|SubResource)(\\()\\s?",beginCaptures:{1:{name:"keyword.control.gdresource"}},end:"\\s?(\\))",patterns:[{include:"#key_value"},{include:"#data"}]}]},embedded_gdscript:{begin:'(script/source) = "',beginCaptures:{1:{name:"variable.other.property.gdresource"}},comment:"meta.embedded.block.gdscript",end:'"',patterns:[{include:"source.gdscript"}]},embedded_shader:{begin:'(code) = "',beginCaptures:{1:{name:"variable.other.property.gdresource"}},end:'"',name:"meta.embedded.block.gdshader",patterns:[{include:"source.gdshader"}]},heading:{begin:"\\[([a-z_]*)\\s?",beginCaptures:{1:{name:"keyword.control.gdresource"}},end:"\\]",patterns:[{include:"#heading_properties"},{include:"#data"}]},heading_properties:{patterns:[{match:"(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)",name:"invalid.illegal.noValue.gdresource"},{begin:"\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*",beginCaptures:{1:{name:"variable.other.property.gdresource"},2:{name:"punctuation.definition.keyValue.gdresource"}},end:"($|(?==)|\\,?|\\s*(?=\\}))",patterns:[{include:"#data"}]}]},key_value:{patterns:[{match:"(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)",name:"invalid.illegal.noValue.gdresource"},{begin:"\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*",beginCaptures:{1:{name:"variable.other.property.gdresource"},2:{name:"punctuation.definition.keyValue.gdresource"}},end:"($|(?==)|\\,|\\s*(?=\\}))",patterns:[{include:"#data"}]}]}},t="source.gdresource",c={displayName:e,name:a,patterns:r,repository:n,scopeName:t};export{c as default,e as displayName,a as name,r as patterns,n as repository,t as scopeName};
@@ -0,0 +1 @@
1
+ var e="GDScript",n=["gd"],t="gdscript",a=[{include:"#statement"},{include:"#expression"}],r={annotated_parameter:{begin:"(?x)\n\\s* ([a-zA-Z_]\\w*) \\s* (:)\\s* ([a-zA-Z_]\\w*)?\n",beginCaptures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.annotation.gdscript"},3:{name:"entity.name.type.class.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"}]},annotations:{captures:{1:{name:"entity.name.function.decorator.gdscript"},2:{name:"entity.name.function.decorator.gdscript"}},match:"(@)(export|export_color_no_alpha|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|icon|onready|rpc|tool|warning_ignore|abstract)\\b"},any_method:{match:"\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))",name:"entity.name.function.other.gdscript"},any_property:{captures:{1:{name:"punctuation.accessor.gdscript"},2:{name:"constant.language.gdscript"},3:{name:"variable.other.property.gdscript"}},match:"\\b(\\.)\\s*(?<![@\\$#%])(?:([A-Z_][A-Z_0-9]*)|([A-Za-z_]\\w*))\\b(?![(])"},any_variable:{match:"\\b(?<![@\\$#%])([A-Za-z_]\\w*)\\b(?![(])",name:"variable.other.gdscript"},arithmetic_operator:{match:"->|\\+=|-=|\\*=|\\^=|/=|%=|&=|~=|\\|=|\\*\\*|\\*|/|%|\\+|-",name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:"=",name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#builtin_classes"},{include:"#const_vars"},{include:"#keywords"},{include:"#operators"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#match_keyword"},{include:"#curly_braces"},{include:"#square_braces"},{include:"#round_braces"},{include:"#function_call"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},bitwise_operator:{match:"&|\\||<<=|>>=|<<|>>|\\^|~",name:"keyword.operator.bitwise.gdscript"},boolean_operator:{match:"(&&|\\|\\|)",name:"keyword.operator.boolean.gdscript"},builtin_classes:{match:"(?<![^.]\\.|:)\\b(OS|GDScript|Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray|super)\\b",name:"entity.name.type.class.builtin.gdscript"},builtin_get_node_shorthand:{patterns:[{include:"#builtin_get_node_shorthand_quoted"},{include:"#builtin_get_node_shorthand_bare"},{include:"#builtin_get_node_shorthand_bare_multi"}]},builtin_get_node_shorthand_bare:{captures:{1:{name:"keyword.control.flow.gdscript"},2:{name:"constant.character.escape.gdscript"},3:{name:"constant.character.escape.gdscript"}},match:"(?<!/\\s*)(\\$|%|\\$%)([a-zA-Z_]\\w*)\\b(?!\\s*/)",name:"meta.literal.nodepath.gdscript"},builtin_get_node_shorthand_bare_multi:{begin:"(\\$|%|\\$%)([a-zA-Z_]\\w*)",beginCaptures:{1:{name:"keyword.control.flow.gdscript"},2:{name:"constant.character.escape.gdscript"}},end:"(?!\\s*/\\s*%?\\s*[a-zA-Z_]\\w*)",name:"meta.literal.nodepath.gdscript",patterns:[{captures:{1:{name:"constant.character.escape.gdscript"},2:{name:"keyword.control.flow.gdscript"},3:{name:"constant.character.escape.gdscript"}},match:"(/)\\s*(%)?\\s*([a-zA-Z_]\\w*)\\s*"}]},builtin_get_node_shorthand_quoted:{begin:"(?:(\\$)|(&|\\^|@))(\"|')",beginCaptures:{1:{name:"keyword.control.flow.gdscript"},2:{name:"variable.other.enummember.gdscript"}},end:"(\\3)",name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape.gdscript",patterns:[{match:"%",name:"keyword.control.flow"}]},class_declaration:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"class.other.gdscript"}},match:"(?<=^class)\\s+([a-zA-Z_]\\w*)\\s*(?=:)"},class_enum:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"constant.language.gdscript"}},match:"\\b([A-Z][a-zA-Z_0-9]*)\\.([A-Z_0-9]+)"},class_is:{captures:{1:{name:"storage.type.is.gdscript"},2:{name:"entity.name.type.class.gdscript"}},match:"\\s+(is)\\s+([a-zA-Z_]\\w*)"},class_name:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"class.other.gdscript"}},match:"(?<=class_name)\\s+([a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?)"},class_new:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"storage.type.new.gdscript"},3:{name:"punctuation.parenthesis.begin.gdscript"}},match:"\\b([a-zA-Z_]\\w*).(new)\\("},comment:{captures:{1:{name:"punctuation.definition.comment.number-sign.gdscript"}},match:"(##|#).*$\\n?",name:"comment.line.number-sign.gdscript"},compare_operator:{match:"<=|>=|==|<|>|!=|!",name:"keyword.operator.comparison.gdscript"},const_vars:{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.gdscript"},control_flow:{match:"\\b(?:if|elif|else|while|break|continue|pass|return|when|yield|await)\\b",name:"keyword.control.gdscript"},curly_braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.gdscript"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},expression:{patterns:[{include:"#base_expression"},{include:"#getter_setter_godot4"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{1:{name:"keyword.language.gdscript"},2:{name:"entity.other.inherited-class.gdscript"}},match:"(extends)\\s+([a-zA-Z_]\\w*\\.[a-zA-Z_]\\w*)?"},func:{match:"\\bfunc\\b",name:"keyword.language.gdscript"},function_arguments:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.gdscript"},{captures:{1:{name:"variable.parameter.function-call.gdscript"},2:{name:"keyword.operator.assignment.gdscript"}},match:"\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{1:{name:"punctuation.definition.arguments.end.gdscript"},2:{name:"punctuation.definition.arguments.begin.gdscript"}},match:"\\s*(\\))\\s*(\\()"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:"(?=\\b[a-zA-Z_]\\w*\\b\\()",comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:"(?x) \\s*\n(func) \\s+\n([a-zA-Z_]\\w*) \\s*\n(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:"(:|(?=[#'\"\\n]))",end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{match:"\\b(preload)\\b",name:"keyword.language.gdscript"},{comment:"Some color schemas support meta.function-call.generic scope",match:"\\b([a-zA-Z_]\\w*)\\b",name:"entity.name.function.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{1:{name:"entity.name.function.gdscript"}},match:"\\b(get):"},{begin:"(?x) \\s+\n(set) \\s*\n(?=\\()",beginCaptures:{1:{name:"entity.name.function.gdscript"}},end:"(:|(?=[#'\"\\n]))",name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]}]},in_keyword:{patterns:[{begin:"\\b(for)\\b",captures:{1:{name:"keyword.control.gdscript"}},end:":",patterns:[{match:"\\bin\\b",name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:"\\bin\\b",name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:"\\b(?:class|class_name|is|onready|tool|static|export|as|void|enum|assert|breakpoint|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b",name:"keyword.language.gdscript"},lambda_declaration:{begin:"(func)\\s?(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:"(:|(?=[#'\"\\n]))",end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:"\\b(?:true|false|null)\\b",name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.gdscript"},2:{name:"invalid.illegal.line.continuation.gdscript"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.gdscript"}},end:"(?x)\n(?=^\\s*$)\n|\n(?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n|\n(\\G $) (?# '\\G' is necessary for ST)\n)\n",patterns:[{include:"#base_expression"}]}]},loose_default:{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"}]},match_keyword:{captures:{1:{name:"keyword.control.gdscript"}},match:"^\n\\s*(match)"},nodepath_function:{begin:"(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.gdscript"},2:{name:"punctuation.definition.parameters.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.gdscript",patterns:[{begin:"(\"|')",end:"\\1",name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:"%",name:"keyword.control.flow"}]},{include:"#base_expression"}]},nodepath_object:{begin:"(NodePath)\\s*(?:\\()",beginCaptures:{1:{name:"support.class.library.gdscript"}},end:"(?:\\))",name:"meta.literal.nodepath.gdscript",patterns:[{begin:"(\"|')",end:"\\1",name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:"%",name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:"0b[01_]+",name:"constant.numeric.integer.binary.gdscript"},{match:"0x[0-9A-Fa-f_]+",name:"constant.numeric.integer.hexadecimal.gdscript"},{match:"[-]?([0-9][0-9_]+\\.[0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?(\\.[0-9][0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?([0-9][0-9_]*e[\\-\\+]?\\[0-9_])",name:"constant.numeric.float.gdscript"},{match:"[-]?[0-9][0-9_]*",name:"constant.numeric.integer.gdscript"}]},operators:{patterns:[{include:"#wordlike_operator"},{include:"#boolean_operator"},{include:"#arithmetic_operator"},{include:"#bitwise_operator"},{include:"#compare_operator"}]},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.parameters.gdscript"}},match:"(?x)\n([a-zA-Z_]\\w*)\n\\s* (?: (,) | (?=[)#\\n=]))\n"},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:"\\b([A-Z]+[a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\b",name:"entity.name.type.class.gdscript"},round_braces:{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.gdscript"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:"\\bself\\b",name:"variable.language.gdscript"},signal_declaration:{begin:"(?x) \\s*\n(signal) \\s+\n([a-zA-Z_]\\w*) \\s*\n(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:"((?=[#'\"\\n]))",name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},match:"(?x) \\s*\n(signal) \\s+\n([a-zA-Z_]\\w*)(?=[\\n\\s])",name:"meta.signal.gdscript"},square_braces:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.gdscript"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:"(?x)\n\\b(?<!\\.)(\ncontinue | assert | break | elif | else | if | pass | return | while )\\b\n",name:"keyword.control.flow.gdscript"},{match:"\\b(?<!\\.)(class)\\b",name:"storage.type.class.gdscript"},{captures:{1:{name:"keyword.control.flow.gdscript"}},match:"(?x)\n^\\s*(\ncase | match\n)(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n"}]},string_bracket_placeholders:{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.gdscript"},3:{name:"storage.type.format.gdscript"},4:{name:"storage.type.format.gdscript"}},match:"(?x)\n(\n{{ | }}\n| (?:\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n})\n)\n",name:"meta.format.brace.gdscript"},{captures:{1:{name:"constant.character.format.placeholder.other.gdscript"},3:{name:"storage.type.format.gdscript"},4:{name:"storage.type.format.gdscript"}},match:"(?x)\n(\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n(:)\n[^'\"{}\\n]* (?:\n\\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n)*\n}\n)\n",name:"meta.format.brace.gdscript"}]},string_percent_placeholders:{captures:{1:{name:"constant.character.format.placeholder.other.gdscript"}},match:"(?x)\n(\n% (\\([\\w\\s]*\\))?\n[-+#0 ]*\n(\\d+|\\*)? (\\.(\\d+|\\*))?\n([hlL])?\n[diouxXeEfFgGcrsab%]\n)\n",name:"meta.format.percent.gdscript"},strings:{begin:"(r)?(\"\"\"|'''|\"|')",beginCaptures:{1:{name:"constant.character.escape.gdscript"}},end:"\\2",name:"string.quoted.gdscript",patterns:[{match:"\\\\.",name:"constant.character.escape.gdscript"},{include:"#string_percent_placeholders"},{include:"#string_bracket_placeholders"}]},variable_declaration:{begin:"\\b(?:(var)|(const))\\b",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.var.gdscript"},2:{name:"keyword.language.gdscript storage.type.const.gdscript"}},end:"$|;",name:"meta.variable.declaration.gdscript",patterns:[{captures:{1:{name:"punctuation.separator.annotation.gdscript"},2:{name:"keyword.language.gdscript storage.type.const.gdscript"},3:{name:"entity.name.function.gdscript"}},match:"(:)?\\s*(set|get)\\s+=\\s+([a-zA-Z_]\\w*)"},{match:":=|=(?!=)",name:"keyword.operator.assignment.gdscript"},{captures:{1:{name:"punctuation.separator.annotation.gdscript"},2:{name:"entity.name.type.class.gdscript"}},match:"(:)\\s*([a-zA-Z_]\\w*)?"},{captures:{1:{name:"keyword.language.gdscript storage.type.const.gdscript"},2:{name:"entity.name.function.gdscript"},3:{name:"entity.name.function.gdscript"}},match:"(setget)\\s+([a-zA-Z_]\\w*)(?:[,]\\s*([a-zA-Z_]\\w*))?"},{include:"#expression"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},wordlike_operator:{match:"\\b(and|or|not)\\b",name:"keyword.operator.wordlike.gdscript"}},s="source.gdscript",i={displayName:e,fileTypes:n,name:t,patterns:a,repository:r,scopeName:s};export{i as default,e as displayName,n as fileTypes,t as name,a as patterns,r as repository,s as scopeName};
@@ -0,0 +1 @@
1
+ var e="GDShader",a=["gdshader"],n="gdshader",t=[{include:"#any"}],i={any:{patterns:[{include:"#comment"},{include:"#enclosed"},{include:"#classifier"},{include:"#definition"},{include:"#keyword"},{include:"#element"},{include:"#separator"},{include:"#operator"}]},arraySize:{begin:"\\[",captures:{0:{name:"punctuation.bracket.gdshader"}},end:"\\]",name:"meta.array-size.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#element"},{include:"#separator"}]},classifier:{begin:"(?=\\b(?:shader_type|render_mode)\\b)",end:"(?<=;)",name:"meta.classifier.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#identifierClassification"},{include:"#separator"}]},classifierKeyword:{match:"\\b(?:shader_type|render_mode)\\b",name:"keyword.language.classifier.gdshader"},comment:{patterns:[{include:"#commentLine"},{include:"#commentBlock"}]},commentBlock:{begin:"/\\*",end:"\\*/",name:"comment.block.gdshader"},commentLine:{begin:"//",end:"$",name:"comment.line.double-slash.gdshader"},constantFloat:{match:"\\b(?:E|PI|TAU)\\b",name:"constant.language.float.gdshader"},constructor:{match:"\\b[a-zA-Z_]\\w*(?=\\s*\\[\\s*\\w*\\s*\\]\\s*[(])|\\b[A-Z]\\w*(?=\\s*[(])",name:"entity.name.type.constructor.gdshader"},controlKeyword:{match:"\\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\\b",name:"keyword.control.gdshader"},definition:{patterns:[{include:"#structDefinition"}]},element:{patterns:[{include:"#literalFloat"},{include:"#literalInt"},{include:"#literalBool"},{include:"#identifierType"},{include:"#constructor"},{include:"#processorFunction"},{include:"#identifierFunction"},{include:"#swizzling"},{include:"#identifierField"},{include:"#constantFloat"},{include:"#languageVariable"},{include:"#identifierVariable"}]},enclosed:{begin:"\\(",captures:{0:{name:"punctuation.parenthesis.gdshader"}},end:"\\)",name:"meta.parenthesis.gdshader",patterns:[{include:"#any"}]},fieldDefinition:{begin:"\\b[a-zA-Z_]\\w*\\b",beginCaptures:{0:{patterns:[{include:"#typeKeyword"},{match:".+",name:"entity.name.type.gdshader"}]}},end:"(?<=;)",name:"meta.definition.field.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#arraySize"},{include:"#fieldName"},{include:"#any"}]},fieldName:{match:"\\b[a-zA-Z_]\\w*\\b",name:"entity.name.variable.field.gdshader"},hintKeyword:{match:"\\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\\b",name:"support.type.annotation.gdshader"},identifierClassification:{match:"\\b[a-z_]+\\b",name:"entity.other.inherited-class.gdshader"},identifierField:{captures:{1:{name:"punctuation.accessor.gdshader"},2:{name:"entity.name.variable.field.gdshader"}},match:"([.])\\s*([a-zA-Z_]\\w*)\\b(?!\\s*\\()"},identifierFunction:{match:"\\b[a-zA-Z_]\\w*(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])",name:"entity.name.function.gdshader"},identifierType:{match:"\\b[a-zA-Z_]\\w*(?=(?:\\s*\\[\\s*\\w*\\s*\\])?\\s+[a-zA-Z_]\\w*\\b)",name:"entity.name.type.gdshader"},identifierVariable:{match:"\\b[a-zA-Z_]\\w*\\b",name:"variable.name.gdshader"},keyword:{patterns:[{include:"#classifierKeyword"},{include:"#structKeyword"},{include:"#controlKeyword"},{include:"#modifierKeyword"},{include:"#precisionKeyword"},{include:"#typeKeyword"},{include:"#hintKeyword"}]},languageVariable:{match:"\\b(?:[A-Z][A-Z_0-9]*)\\b",name:"variable.language.gdshader"},literalBool:{match:"\\b(?:false|true)\\b",name:"constant.language.boolean.gdshader"},literalFloat:{match:"\\b(?:\\d+[eE][-+]?\\d+|(?:\\d*[.]\\d+|\\d+[.])(?:[eE][-+]?\\d+)?)[fF]?",name:"constant.numeric.float.gdshader"},literalInt:{match:"\\b(?:0[xX][0-9A-Fa-f]+|\\d+[uU]?)\\b",name:"constant.numeric.integer.gdshader"},modifierKeyword:{match:"\\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\\b",name:"storage.modifier.gdshader"},operator:{match:"\\<\\<\\=?|\\>\\>\\=?|[-+*/&|<>=!]\\=|\\&\\&|[|][|]|[-+~!*/%<>&^|=]",name:"keyword.operator.gdshader"},precisionKeyword:{match:"\\b(?:low|medium|high)p\\b",name:"storage.type.built-in.primitive.precision.gdshader"},processorFunction:{match:"\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])",name:"support.function.gdshader"},separator:{patterns:[{match:"[.]",name:"punctuation.accessor.gdshader"},{include:"#separatorComma"},{match:"[;]",name:"punctuation.terminator.statement.gdshader"},{match:"[:]",name:"keyword.operator.type.annotation.gdshader"}]},separatorComma:{match:"[,]",name:"punctuation.separator.comma.gdshader"},structDefinition:{begin:"(?=\\b(?:struct)\\b)",end:"(?<=;)",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#structName"},{include:"#structDefinitionBlock"},{include:"#separator"}]},structDefinitionBlock:{begin:"\\{",captures:{0:{name:"punctuation.definition.block.struct.gdshader"}},end:"\\}",name:"meta.definition.block.struct.gdshader",patterns:[{include:"#comment"},{include:"#precisionKeyword"},{include:"#fieldDefinition"},{include:"#keyword"},{include:"#any"}]},structKeyword:{match:"\\b(?:struct)\\b",name:"keyword.other.struct.gdshader"},structName:{match:"\\b[a-zA-Z_]\\w*\\b",name:"entity.name.type.struct.gdshader"},swizzling:{captures:{1:{name:"punctuation.accessor.gdshader"},2:{name:"variable.other.property.gdshader"}},match:"([.])\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\b"},typeKeyword:{match:"\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\b",name:"support.type.gdshader"}},r="source.gdshader",d={displayName:e,fileTypes:a,name:n,patterns:t,repository:i,scopeName:r};export{d as default,e as displayName,a as fileTypes,n as name,t as patterns,i as repository,r as scopeName};
@@ -0,0 +1 @@
1
+ var e="Genie",a=["gs"],t="genie",n=[{include:"#code"}],i={code:{patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#keywords"},{include:"#types"},{include:"#functions"},{include:"#variables"}]},comments:{patterns:[{captures:{0:{name:"punctuation.definition.comment.vala"}},match:"/\\*\\*/",name:"comment.block.empty.vala"},{include:"text.html.javadoc"},{include:"#comments-inline"}]},"comments-inline":{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.vala"}},end:"\\*/",name:"comment.block.vala"},{captures:{1:{name:"comment.line.double-slash.vala"},2:{name:"punctuation.definition.comment.vala"}},match:"\\s*((//).*$\\n?)"}]},constants:{patterns:[{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",name:"constant.numeric.vala"},{match:"\\b([A-Z][A-Z0-9_]+)\\b",name:"variable.other.constant.vala"}]},functions:{patterns:[{match:"(\\w+)(?=\\s*(<[\\s\\w.]+>\\s*)?\\()",name:"entity.name.function.vala"}]},keywords:{patterns:[{match:"(?<=^|[^@\\w\\.])(as|do|if|in|is|of|or|to|and|def|for|get|isa|new|not|out|ref|set|try|var|case|dict|else|enum|init|list|lock|null|pass|prop|self|true|uses|void|weak|when|array|async|break|class|const|event|false|final|owned|print|super|raise|while|yield|assert|delete|downto|except|extern|inline|params|public|raises|return|sealed|sizeof|static|struct|typeof|default|dynamic|ensures|finally|private|unowned|virtual|abstract|continue|delegate|internal|override|readonly|requires|volatile|construct|errordomain|interface|namespace|protected|implements)\\b",name:"keyword.vala"},{match:"(?<=^|[^@\\w\\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b",name:"keyword.vala"},{match:"(#if|#elif|#else|#endif)",name:"keyword.vala"}]},strings:{patterns:[{begin:'"""',end:'"""',name:"string.quoted.triple.vala"},{begin:'@"',end:'"',name:"string.quoted.interpolated.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"},{match:"\\$\\w+",name:"constant.character.escape.vala"},{match:"\\$\\(([^)(]|\\(([^)(]|\\([^)]*\\))*\\))*\\)",name:"constant.character.escape.vala"}]},{begin:'"',end:'"',name:"string.quoted.double.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"}]},{begin:"'",end:"'",name:"string.quoted.single.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"}]},{match:"/((\\\\/)|([^/]))*/(?=\\s*[,;)\\.\\n])",name:"string.regexp.vala"}]},types:{patterns:[{match:"(?<=^|[^@\\w\\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b",name:"storage.type.primitive.vala"},{match:"\\b([A-Z]+\\w*)\\b",name:"entity.name.type.vala"}]},variables:{patterns:[{match:"\\b([_a-z]+\\w*)\\b",name:"variable.other.vala"}]}},s="source.genie",r={displayName:e,fileTypes:a,name:t,patterns:n,repository:i,scopeName:s};export{r as default,e as displayName,a as fileTypes,t as name,n as patterns,i as repository,s as scopeName};