@aquera/nile-elements 0.0.104 → 0.0.105
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.
- package/README.md +5 -0
- package/dist/apl-21d06901.cjs.js +2 -0
- package/dist/apl-21d06901.cjs.js.map +1 -0
- package/dist/apl-d16c7537.esm.js +1 -0
- package/dist/{asciidoc-e0d3b314.cjs.js → asciidoc-001fd7c1.cjs.js} +2 -2
- package/dist/{asciidoc-e0d3b314.cjs.js.map → asciidoc-001fd7c1.cjs.js.map} +1 -1
- package/dist/{asciidoc-6be99424.esm.js → asciidoc-0966d4dc.esm.js} +1 -1
- package/dist/{blade-3208a46d.esm.js → blade-11ab018c.esm.js} +1 -1
- package/dist/{blade-edfc0fdd.cjs.js → blade-8db809ca.cjs.js} +2 -2
- package/dist/blade-8db809ca.cjs.js.map +1 -0
- package/dist/c-8cfe7ebc.esm.js +1 -0
- package/dist/c-b1a3514f.cjs.js +2 -0
- package/dist/c-b1a3514f.cjs.js.map +1 -0
- package/dist/codeql-48a19368.cjs.js +2 -0
- package/dist/codeql-48a19368.cjs.js.map +1 -0
- package/dist/codeql-535d71a2.esm.js +1 -0
- package/dist/cpp-62f58e5c.cjs.js +2 -0
- package/dist/cpp-62f58e5c.cjs.js.map +1 -0
- package/dist/cpp-ee96ee92.esm.js +1 -0
- package/dist/crystal-4277175c.cjs.js +2 -0
- package/dist/crystal-4277175c.cjs.js.map +1 -0
- package/dist/crystal-c89e4ade.esm.js +1 -0
- package/dist/{csharp-fe9efa9d.cjs.js → csharp-36e7912d.cjs.js} +2 -2
- package/dist/csharp-36e7912d.cjs.js.map +1 -0
- package/dist/{csharp-2f739c17.esm.js → csharp-78bc1c6a.esm.js} +1 -1
- package/dist/dream-maker-19eb7025.esm.js +1 -0
- package/dist/dream-maker-8dcd65d8.cjs.js +2 -0
- package/dist/dream-maker-8dcd65d8.cjs.js.map +1 -0
- package/dist/elixir-971d0fb3.esm.js +1 -0
- package/dist/elixir-de3ce4da.cjs.js +2 -0
- package/dist/elixir-de3ce4da.cjs.js.map +1 -0
- package/dist/{elm-0c5dbed5.cjs.js → elm-53838edc.cjs.js} +2 -2
- package/dist/{elm-0c5dbed5.cjs.js.map → elm-53838edc.cjs.js.map} +1 -1
- package/dist/{elm-3dbc06e2.esm.js → elm-9874a65c.esm.js} +1 -1
- package/dist/emacs-lisp-acd28b05.esm.js +1 -0
- package/dist/emacs-lisp-cfcfbca4.cjs.js +2 -0
- package/dist/emacs-lisp-cfcfbca4.cjs.js.map +1 -0
- package/dist/{erb-c397c5b8.cjs.js → erb-a42121e2.cjs.js} +2 -2
- package/dist/{erb-c397c5b8.cjs.js.map → erb-a42121e2.cjs.js.map} +1 -1
- package/dist/{erb-3df2a1e4.esm.js → erb-f580df2b.esm.js} +1 -1
- package/dist/{fortran-fixed-form-5221c659.cjs.js → fortran-fixed-form-a480dd28.cjs.js} +2 -2
- package/dist/{fortran-fixed-form-5221c659.cjs.js.map → fortran-fixed-form-a480dd28.cjs.js.map} +1 -1
- package/dist/{fortran-fixed-form-de2fa930.esm.js → fortran-fixed-form-f1691b9f.esm.js} +1 -1
- package/dist/fortran-free-form-a777429e.esm.js +1 -0
- package/dist/fortran-free-form-ffdde287.cjs.js +2 -0
- package/dist/fortran-free-form-ffdde287.cjs.js.map +1 -0
- package/dist/{fsharp-f129bbeb.esm.js → fsharp-69c4fb5c.esm.js} +1 -1
- package/dist/{fsharp-09a5f785.cjs.js → fsharp-d59a3c1f.cjs.js} +2 -2
- package/dist/{fsharp-09a5f785.cjs.js.map → fsharp-d59a3c1f.cjs.js.map} +1 -1
- package/dist/{git-rebase-1f689746.cjs.js → git-rebase-7589e873.cjs.js} +2 -2
- package/dist/{git-rebase-1f689746.cjs.js.map → git-rebase-7589e873.cjs.js.map} +1 -1
- package/dist/{git-rebase-a3a21dac.esm.js → git-rebase-bb01fb7b.esm.js} +1 -1
- package/dist/{glsl-f391b342.esm.js → glsl-1493bfc0.esm.js} +1 -1
- package/dist/{glsl-018c76d4.cjs.js → glsl-c588b399.cjs.js} +2 -2
- package/dist/{glsl-018c76d4.cjs.js.map → glsl-c588b399.cjs.js.map} +1 -1
- package/dist/{go-09393d7b.cjs.js → go-a05e58ea.cjs.js} +2 -2
- package/dist/go-a05e58ea.cjs.js.map +1 -0
- package/dist/{go-327b8b08.esm.js → go-ecfc5b99.esm.js} +1 -1
- package/dist/haml-2253a1bd.cjs.js +2 -0
- package/dist/haml-2253a1bd.cjs.js.map +1 -0
- package/dist/haml-43d9b125.esm.js +1 -0
- package/dist/hcl-595d9f51.cjs.js +2 -0
- package/dist/hcl-595d9f51.cjs.js.map +1 -0
- package/dist/hcl-6a14c75f.esm.js +1 -0
- package/dist/hjson-c3c357d7.cjs.js +2 -0
- package/dist/hjson-c3c357d7.cjs.js.map +1 -0
- package/dist/hjson-d42502da.esm.js +1 -0
- package/dist/{http-c5198897.esm.js → http-05cedc24.esm.js} +1 -1
- package/dist/{http-4370aef9.cjs.js → http-6aabe313.cjs.js} +2 -2
- package/dist/{http-4370aef9.cjs.js.map → http-6aabe313.cjs.js.map} +1 -1
- package/dist/{julia-5e4ea542.cjs.js → julia-24e685eb.cjs.js} +2 -2
- package/dist/{julia-5e4ea542.cjs.js.map → julia-24e685eb.cjs.js.map} +1 -1
- package/dist/{julia-e630ba73.esm.js → julia-944cceb2.esm.js} +1 -1
- package/dist/{latex-1adfa940.cjs.js → latex-bbf47f0d.cjs.js} +2 -2
- package/dist/{latex-1adfa940.cjs.js.map → latex-bbf47f0d.cjs.js.map} +1 -1
- package/dist/{latex-edebd2cc.esm.js → latex-c78294e0.esm.js} +1 -1
- package/dist/liquid-5e828fc2.cjs.js +2 -0
- package/dist/liquid-5e828fc2.cjs.js.map +1 -0
- package/dist/liquid-c0372db6.esm.js +1 -0
- package/dist/{lua-125b4f95.esm.js → lua-1393b713.esm.js} +1 -1
- package/dist/{lua-1990ffc7.cjs.js → lua-2512266d.cjs.js} +2 -2
- package/dist/{lua-1990ffc7.cjs.js.map → lua-2512266d.cjs.js.map} +1 -1
- package/dist/{markdown-9f728eba.esm.js → markdown-09aa0843.esm.js} +1 -1
- package/dist/{markdown-844e62a0.cjs.js → markdown-3ee08af9.cjs.js} +2 -2
- package/dist/{markdown-844e62a0.cjs.js.map → markdown-3ee08af9.cjs.js.map} +1 -1
- package/dist/matlab-534739f2.cjs.js +2 -0
- package/dist/matlab-534739f2.cjs.js.map +1 -0
- package/dist/matlab-97eddcfd.esm.js +1 -0
- package/dist/{mdc-89c1812c.cjs.js → mdc-7262ea7f.cjs.js} +2 -2
- package/dist/{mdc-89c1812c.cjs.js.map → mdc-7262ea7f.cjs.js.map} +1 -1
- package/dist/{mdc-78460ad2.esm.js → mdc-a46ebf55.esm.js} +1 -1
- package/dist/{nginx-d4fde8c7.cjs.js → nginx-33da8d52.cjs.js} +2 -2
- package/dist/{nginx-d4fde8c7.cjs.js.map → nginx-33da8d52.cjs.js.map} +1 -1
- package/dist/{nginx-4e240995.esm.js → nginx-9eb574b4.esm.js} +1 -1
- package/dist/nile-chip/nile-chip.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.css.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.css.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.css.esm.js +18 -3
- package/dist/nile-dialog/nile-dialog.esm.js +6 -4
- package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
- package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
- package/dist/nile-loader/nile-loader.cjs.js +1 -1
- package/dist/nile-loader/nile-loader.cjs.js.map +1 -1
- package/dist/nile-loader/nile-loader.esm.js +5 -6
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
- package/dist/{nim-2d3e58bd.esm.js → nim-19ded5b2.esm.js} +1 -1
- package/dist/{nim-68123944.cjs.js → nim-d17fab7b.cjs.js} +2 -2
- package/dist/{nim-68123944.cjs.js.map → nim-d17fab7b.cjs.js.map} +1 -1
- package/dist/php-61f68171.esm.js +1 -0
- package/dist/php-cc873410.cjs.js +2 -0
- package/dist/php-cc873410.cjs.js.map +1 -0
- package/dist/{racket-7b394aba.cjs.js → racket-0c9d5c0f.cjs.js} +2 -2
- package/dist/{racket-7b394aba.cjs.js.map → racket-0c9d5c0f.cjs.js.map} +1 -1
- package/dist/{racket-81dda9e5.esm.js → racket-55a31f6b.esm.js} +1 -1
- package/dist/{razor-1b5232cc.cjs.js → razor-a2425731.cjs.js} +2 -2
- package/dist/{razor-1b5232cc.cjs.js.map → razor-a2425731.cjs.js.map} +1 -1
- package/dist/{razor-d377d825.esm.js → razor-b33c609c.esm.js} +1 -1
- package/dist/{rst-7ca0bc88.cjs.js → rst-328f0cf1.cjs.js} +2 -2
- package/dist/{rst-7ca0bc88.cjs.js.map → rst-328f0cf1.cjs.js.map} +1 -1
- package/dist/{rst-0c779bb4.esm.js → rst-c0bca969.esm.js} +1 -1
- package/dist/{ruby-a3bdb75e.esm.js → ruby-0ae8b3e3.esm.js} +1 -1
- package/dist/{ruby-951187c3.cjs.js → ruby-82f6fde2.cjs.js} +2 -2
- package/dist/{ruby-951187c3.cjs.js.map → ruby-82f6fde2.cjs.js.map} +1 -1
- package/dist/{scala-f087204d.esm.js → scala-09ae48a2.esm.js} +1 -1
- package/dist/{scala-b2ea8aa7.cjs.js → scala-44c4b612.cjs.js} +2 -2
- package/dist/{scala-b2ea8aa7.cjs.js.map → scala-44c4b612.cjs.js.map} +1 -1
- package/dist/{shellscript-ac23285d.esm.js → shellscript-279f3c20.esm.js} +1 -1
- package/dist/{shellscript-cd92245f.cjs.js → shellscript-fbbc671d.cjs.js} +2 -2
- package/dist/{shellscript-cd92245f.cjs.js.map → shellscript-fbbc671d.cjs.js.map} +1 -1
- package/dist/{shellsession-396c6681.esm.js → shellsession-c6d86b76.esm.js} +1 -1
- package/dist/{shellsession-223fd590.cjs.js → shellsession-d64b6377.cjs.js} +2 -2
- package/dist/{shellsession-223fd590.cjs.js.map → shellsession-d64b6377.cjs.js.map} +1 -1
- package/dist/src/nile-chip/nile-chip.js +10 -7
- package/dist/src/nile-chip/nile-chip.js.map +1 -1
- package/dist/src/nile-dialog/nile-dialog.css.js +18 -3
- package/dist/src/nile-dialog/nile-dialog.css.js.map +1 -1
- package/dist/src/nile-dialog/nile-dialog.d.ts +1 -0
- package/dist/src/nile-dialog/nile-dialog.js +10 -2
- package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
- package/dist/src/nile-loader/nile-loader.js +0 -1
- package/dist/src/nile-loader/nile-loader.js.map +1 -1
- package/dist/src/nile-tab-group/nile-tab-group.js +4 -1
- package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
- package/dist/stata-149110fb.esm.js +1 -0
- package/dist/stata-b4a1937c.cjs.js +2 -0
- package/dist/stata-b4a1937c.cjs.js.map +1 -0
- package/dist/{svelte-70f34f63.esm.js → svelte-1048eb5a.esm.js} +1 -1
- package/dist/{svelte-fac37669.cjs.js → svelte-4fd29bd3.cjs.js} +2 -2
- package/dist/{svelte-fac37669.cjs.js.map → svelte-4fd29bd3.cjs.js.map} +1 -1
- package/dist/swift-502aad80.cjs.js +2 -0
- package/dist/{swift-73991d74.cjs.js.map → swift-502aad80.cjs.js.map} +1 -1
- package/dist/swift-c090b356.esm.js +1 -0
- package/dist/{templ-d3b439bb.esm.js → templ-628e79a2.esm.js} +1 -1
- package/dist/{templ-07af4f95.cjs.js → templ-d270ba1d.cjs.js} +2 -2
- package/dist/{templ-07af4f95.cjs.js.map → templ-d270ba1d.cjs.js.map} +1 -1
- package/dist/terraform-500d20b0.esm.js +1 -0
- package/dist/terraform-e5570e0d.cjs.js +2 -0
- package/dist/terraform-e5570e0d.cjs.js.map +1 -0
- package/dist/{ts-tags-dd626bee.esm.js → ts-tags-5da8755a.esm.js} +1 -1
- package/dist/{ts-tags-060f8b3f.cjs.js → ts-tags-df3e88d7.cjs.js} +2 -2
- package/dist/{ts-tags-060f8b3f.cjs.js.map → ts-tags-df3e88d7.cjs.js.map} +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/twig-5bc34a9a.esm.js +1 -0
- package/dist/twig-af3abed5.cjs.js +2 -0
- package/dist/twig-af3abed5.cjs.js.map +1 -0
- package/dist/{vue-0bf65993.cjs.js → vue-09163277.cjs.js} +2 -2
- package/dist/{vue-0bf65993.cjs.js.map → vue-09163277.cjs.js.map} +1 -1
- package/dist/{vue-9a567043.esm.js → vue-dbfc25c6.esm.js} +1 -1
- package/dist/{vue-html-87c1aa08.cjs.js → vue-html-8d140150.cjs.js} +2 -2
- package/dist/{vue-html-87c1aa08.cjs.js.map → vue-html-8d140150.cjs.js.map} +1 -1
- package/dist/{vue-html-5432e63a.esm.js → vue-html-9284886a.esm.js} +1 -1
- package/dist/wasm-69304cd7.cjs.js +2 -0
- package/dist/{wasm-2b3accdb.cjs.js.map → wasm-69304cd7.cjs.js.map} +1 -1
- package/dist/{wasm-ec34668d.esm.js → wasm-aabb0cac.esm.js} +1 -1
- package/dist/{wikitext-bc11a136.cjs.js → wikitext-1ea78c25.cjs.js} +2 -2
- package/dist/{wikitext-bc11a136.cjs.js.map → wikitext-1ea78c25.cjs.js.map} +1 -1
- package/dist/{wikitext-0150fba4.esm.js → wikitext-3fe603e5.esm.js} +1 -1
- package/package.json +1 -1
- package/src/nile-chip/nile-chip.ts +13 -7
- package/src/nile-dialog/nile-dialog.css.ts +18 -3
- package/src/nile-dialog/nile-dialog.ts +8 -2
- package/src/nile-loader/nile-loader.ts +0 -1
- package/src/nile-tab-group/nile-tab-group.ts +2 -1
- package/dist/apl-41950f78.cjs.js +0 -2
- package/dist/apl-41950f78.cjs.js.map +0 -1
- package/dist/apl-c55a4361.esm.js +0 -1
- package/dist/blade-edfc0fdd.cjs.js.map +0 -1
- package/dist/c-3ee6456a.esm.js +0 -1
- package/dist/c-da3bb8a6.cjs.js +0 -2
- package/dist/c-da3bb8a6.cjs.js.map +0 -1
- package/dist/codeql-842eb6cf.esm.js +0 -1
- package/dist/codeql-d89527b8.cjs.js +0 -2
- package/dist/codeql-d89527b8.cjs.js.map +0 -1
- package/dist/cpp-08227984.esm.js +0 -1
- package/dist/cpp-cf2e9ff3.cjs.js +0 -2
- package/dist/cpp-cf2e9ff3.cjs.js.map +0 -1
- package/dist/crystal-38a7d086.cjs.js +0 -2
- package/dist/crystal-38a7d086.cjs.js.map +0 -1
- package/dist/crystal-39a9e1ea.esm.js +0 -1
- package/dist/csharp-fe9efa9d.cjs.js.map +0 -1
- package/dist/dream-maker-03e02970.cjs.js +0 -2
- package/dist/dream-maker-03e02970.cjs.js.map +0 -1
- package/dist/dream-maker-d074d317.esm.js +0 -1
- package/dist/elixir-677f91c1.cjs.js +0 -2
- package/dist/elixir-677f91c1.cjs.js.map +0 -1
- package/dist/elixir-e6f892c0.esm.js +0 -1
- package/dist/emacs-lisp-acc9d1bf.esm.js +0 -1
- package/dist/emacs-lisp-ba2192a6.cjs.js +0 -2
- package/dist/emacs-lisp-ba2192a6.cjs.js.map +0 -1
- package/dist/fortran-free-form-662642e8.cjs.js +0 -2
- package/dist/fortran-free-form-662642e8.cjs.js.map +0 -1
- package/dist/fortran-free-form-b8908a2e.esm.js +0 -1
- package/dist/go-09393d7b.cjs.js.map +0 -1
- package/dist/haml-44312b9e.cjs.js +0 -2
- package/dist/haml-44312b9e.cjs.js.map +0 -1
- package/dist/haml-ce8f521d.esm.js +0 -1
- package/dist/hcl-659b5ff4.esm.js +0 -1
- package/dist/hcl-93dee28c.cjs.js +0 -2
- package/dist/hcl-93dee28c.cjs.js.map +0 -1
- package/dist/hjson-e5dbb832.cjs.js +0 -2
- package/dist/hjson-e5dbb832.cjs.js.map +0 -1
- package/dist/hjson-ff155aeb.esm.js +0 -1
- package/dist/liquid-1369a009.cjs.js +0 -2
- package/dist/liquid-1369a009.cjs.js.map +0 -1
- package/dist/liquid-e48eb0ca.esm.js +0 -1
- package/dist/matlab-52886ffe.esm.js +0 -1
- package/dist/matlab-71a4c00e.cjs.js +0 -2
- package/dist/matlab-71a4c00e.cjs.js.map +0 -1
- package/dist/php-1beee6c8.esm.js +0 -1
- package/dist/php-580a8f27.cjs.js +0 -2
- package/dist/php-580a8f27.cjs.js.map +0 -1
- package/dist/stata-5d259eca.cjs.js +0 -2
- package/dist/stata-5d259eca.cjs.js.map +0 -1
- package/dist/stata-ce57a14a.esm.js +0 -1
- package/dist/swift-22135585.esm.js +0 -1
- package/dist/swift-73991d74.cjs.js +0 -2
- package/dist/terraform-5a5bfeae.esm.js +0 -1
- package/dist/terraform-73471876.cjs.js +0 -2
- package/dist/terraform-73471876.cjs.js.map +0 -1
- package/dist/twig-8f9f15f7.cjs.js +0 -2
- package/dist/twig-8f9f15f7.cjs.js.map +0 -1
- package/dist/twig-964ce7ee.esm.js +0 -1
- package/dist/wasm-2b3accdb.cjs.js +0 -2
@@ -1 +0,0 @@
|
|
1
|
-
var e=[Object.freeze({displayName:"Fortran (Free Form)",fileTypes:["f90","F90","f95","F95","f03","F03","f08","F08","f18","F18","fpp","FPP",".pf",".PF"],firstLineMatch:"(?i)-[*]- mode: fortran free -[*]-",injections:{"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"}]}},name:"fortran-free-form",patterns:[{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"}],repository:{"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:"(?i)\\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:"(?i)(?=\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)(?=\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)(\\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:"(?i)\\s*\\b(module)\\b(?=\\s*(?:[;!\\n]|[^'\";!\\n]*\\b(?:function|procedure|subroutine)\\b))"},"module-definition":{begin:"(?i)(?=\\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:"(?i)\\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:"(?i)([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:"(?i)[+\\-]?(\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)\\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:"(?i)(?=\\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"}]}},scopeName:"source.fortran.free",aliases:["f90","f95","f03","f08","f18"]})];export{e as default};
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"go-09393d7b.cjs.js","sources":["../../../node_modules/shiki/dist/langs/go.mjs"],"sourcesContent":["const lang = Object.freeze({ \"displayName\": \"Go\", \"name\": \"go\", \"patterns\": [{ \"include\": \"#statements\" }], \"repository\": { \"after_control_variables\": { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"variable.other.go\" }] } }, \"comment\": \"After control variables, to not highlight as a struct/interface (before formatting with gofmt)\", \"match\": \"(?:(?<=\\\\brange\\\\b|\\\\bswitch\\\\b|\\\\;|\\\\bif\\\\b|\\\\bfor\\\\b|<|>|<=|>=|==|!=|\\\\w(?:\\\\+|/|-|\\\\*|\\\\%)|\\\\w(?:\\\\+|/|-|\\\\*|\\\\%)=|\\\\|\\\\||\\\\&\\\\&)(?:\\\\s*)((?![\\\\[\\\\]]+)[0-9A-Za-z\\\\-_!\\\\.\\\\[\\\\]<>=\\\\*/+\\\\%:]+)(?:\\\\s*)(?=\\\\{))\" }, \"brackets\": { \"patterns\": [{ \"begin\": \"\\\\{\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.curly.go\" } }, \"end\": \"\\\\}\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.curly.go\" } }, \"patterns\": [{ \"include\": \"$self\" }] }, { \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"$self\" }] }, { \"begin\": \"\\\\[\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.square.go\" } }, \"end\": \"\\\\]\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.square.go\" } }, \"patterns\": [{ \"include\": \"$self\" }] }] }, \"built_in_functions\": { \"comment\": \"Built-in functions\", \"patterns\": [{ \"match\": \"\\\\b(append|cap|close|complex|copy|delete|imag|len|panic|print|println|real|recover|min|max|clear)\\\\b(?=\\\\()\", \"name\": \"entity.name.function.support.builtin.go\" }, { \"begin\": \"(?:(\\\\bnew\\\\b)(\\\\())\", \"beginCaptures\": { \"1\": { \"name\": \"entity.name.function.support.builtin.go\" }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"comment\": \"new keyword\", \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#functions\" }, { \"include\": \"#struct_variables_types\" }, { \"include\": \"#type-declarations\" }, { \"include\": \"#generic_types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }, { \"include\": \"$self\" }] }, { \"begin\": \"(?:(\\\\bmake\\\\b)(?:(\\\\()((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?:[\\\\[\\\\]\\\\*]+)?(?:(?!\\\\bmap\\\\b)(?:[\\\\w\\\\.]+))?(\\\\[(?:(?:[\\\\S]+)(?:(?:\\\\,\\\\s*(?:[\\\\S]+))*))?\\\\])?(?:\\\\,)?)?))\", \"beginCaptures\": { \"1\": { \"name\": \"entity.name.function.support.builtin.go\" }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" }, \"3\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"make keyword\", \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"$self\" }] }] }, \"comments\": { \"patterns\": [{ \"begin\": \"(\\\\/\\\\*)\", \"beginCaptures\": { \"1\": { \"name\": \"punctuation.definition.comment.go\" } }, \"end\": \"(\\\\*\\\\/)\", \"endCaptures\": { \"1\": { \"name\": \"punctuation.definition.comment.go\" } }, \"name\": \"comment.block.go\" }, { \"begin\": \"(\\\\/\\\\/)\", \"beginCaptures\": { \"1\": { \"name\": \"punctuation.definition.comment.go\" } }, \"end\": \"(?:\\\\n|$)\", \"name\": \"comment.line.double-slash.go\" }] }, \"delimiters\": { \"patterns\": [{ \"match\": \"\\\\,\", \"name\": \"punctuation.other.comma.go\" }, { \"match\": \"\\\\.(?!\\\\.\\\\.)\", \"name\": \"punctuation.other.period.go\" }, { \"match\": \":(?!=)\", \"name\": \"punctuation.other.colon.go\" }] }, \"double_parentheses_types\": { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"match\": \"\\\\(\", \"name\": \"punctuation.definition.begin.bracket.round.go\" }, { \"match\": \"\\\\)\", \"name\": \"punctuation.definition.end.bracket.round.go\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"double parentheses types\", \"match\": \"(?:(?<!\\\\w)(\\\\((?:[\\\\w\\\\.\\\\[\\\\]\\\\*\\\\&]+)\\\\))(?=\\\\())\" }, \"field_hover\": { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.property.go\" }] }, \"2\": { \"patterns\": [{ \"match\": \"\\\\binvalid\\\\b\\\\s+\\\\btype\\\\b\", \"name\": \"invalid.field.go\" }, { \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"struct field property and types when hovering with the mouse\", \"match\": \"(?:(?<=^\\\\bfield\\\\b)\\\\s+([\\\\w\\\\*\\\\.]+)\\\\s+([\\\\s\\\\S]+))\" }, \"function_declaration\": { \"begin\": \"(?:^(\\\\bfunc\\\\b)(?:\\\\s*(\\\\([^)]+\\\\)\\\\s*)?(?:(\\\\w+)(?=\\\\(|\\\\[))?))\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.function.go\" }, \"2\": { \"patterns\": [{ \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"captures\": { \"1\": { \"name\": \"variable.parameter.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"match\": \"(?:(\\\\w+(?:\\\\s+))?((?:[\\\\w\\\\.\\\\*]+)(?:\\\\[(?:(?:(?:[\\\\w\\\\.\\\\*]+)(?:\\\\,\\\\s+)?)+)?\\\\])?))\" }, { \"include\": \"$self\" }] }] }, \"3\": { \"patterns\": [{ \"match\": \"\\\\d\\\\w*\", \"name\": \"invalid.illegal.identifier.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.function.go\" }] } }, \"comment\": \"Function declarations\", \"end\": \"(?:(?<=\\\\))\\\\s*((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?!(?:[\\\\[\\\\]\\\\*]+)?(?:\\\\bstruct\\\\b|\\\\binterface\\\\b))[\\\\w\\\\.\\\\-\\\\*\\\\[\\\\]]+)?\\\\s*(?=\\\\{))\", \"endCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"patterns\": [{ \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#function_param_types\" }] }, { \"begin\": \"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))\", \"beginCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.square.go\" } }, \"end\": \"\\\\]\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.square.go\" } }, \"patterns\": [{ \"include\": \"#generic_param_types\" }] }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"single function as a type returned type(s) declaration\", \"match\": \"(?:(?<=\\\\))(?:\\\\s*)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?[\\\\w\\\\*\\\\.\\\\[\\\\]<>\\\\-]+(?:\\\\s*)(?:\\\\/(?:\\\\/|\\\\*).*)?)$)\" }, { \"include\": \"$self\" }] }, \"function_param_types\": { \"comment\": \"function parameter variables and types\", \"patterns\": [{ \"include\": \"#struct_variables_types\" }, { \"include\": \"#interface_variables_types\" }, { \"include\": \"#type-declarations-without-brackets\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.parameter.go\" }] } }, \"comment\": \"struct/interface type declaration\", \"match\": \"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.parameter.go\" }] } }, \"comment\": \"multiple parameters one type -with multilines\", \"match\": \"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.parameter.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"multiple params and types | multiple params one type | one param one type\", \"match\": \"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.\\\\[\\\\]]+)|(?:\\\\((?:[^)]+)?\\\\))))?)|(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\*\\\\.]+(?:\\\\[(?:[^\\\\]]+)\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)+)))\" }, { \"include\": \"#parameter-variable-types\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"other types\", \"match\": \"([\\\\w\\\\.]+)\" }, { \"include\": \"$self\" }] }, \"functions\": { \"begin\": \"(?:(\\\\bfunc\\\\b)(?=\\\\())\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.function.go\" } }, \"comment\": \"Functions\", \"end\": \"(?:(?<=\\\\))(\\\\s*(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?((?:(?:\\\\s*(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\.\\\\*]+)?(?:(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])|(?:\\\\((?:[^)]+)?\\\\)))?(?:[\\\\w\\\\.\\\\*]+)?)(?:\\\\s*)(?=\\\\{))|(?:\\\\s*(?:(?:(?:[\\\\[\\\\]\\\\*]+)?(?!\\\\bfunc\\\\b)(?:[\\\\w\\\\.\\\\*]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)|(?:\\\\((?:[^)]+)?\\\\)))))?)\", \"endCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"patterns\": [{ \"include\": \"#parameter-variable-types\" }] }, \"functions_inline\": { \"captures\": { \"1\": { \"name\": \"keyword.function.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#function_param_types\" }, { \"include\": \"$self\" }] }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\{\", \"name\": \"punctuation.definition.begin.bracket.curly.go\" }, { \"match\": \"\\\\}\", \"name\": \"punctuation.definition.end.bracket.curly.go\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"functions in-line with multi return types\", \"match\": \"(?:(\\\\bfunc\\\\b)((?:\\\\((?:[^/]*?)\\\\))(?:\\\\s+)(?:\\\\((?:[^/]*?)\\\\)))(?:\\\\s+)(?=\\\\{))\" }, \"generic_param_types\": { \"comment\": \"generic parameter variables and types\", \"patterns\": [{ \"include\": \"#struct_variables_types\" }, { \"include\": \"#interface_variables_types\" }, { \"include\": \"#type-declarations-without-brackets\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.parameter.go\" }] } }, \"comment\": \"struct/interface type declaration\", \"match\": \"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.parameter.go\" }] } }, \"comment\": \"multiple parameters one type -with multilines\", \"match\": \"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.parameter.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] }, \"3\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"multiple params and types | multiple types one param\", \"match\": \"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.]+)|(?:\\\\((?:[^)]+)?\\\\))))?)|(?:(?:(?:[\\\\w\\\\*\\\\.\\\\~]+)|(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\]))(?:[\\\\w\\\\.\\\\*]+)?)+)))\" }, { \"include\": \"#parameter-variable-types\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"other types\", \"match\": \"(?:\\\\b([\\\\w\\\\.]+))\" }, { \"include\": \"$self\" }] }, \"generic_types\": { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#parameter-variable-types\" }] } }, \"comment\": \"Generic support for all types\", \"match\": \"(?:([\\\\w\\\\.\\\\*]+)(\\\\[(?:[^\\\\]]+)?\\\\]))\" }, \"group-functions\": { \"comment\": \"all statements related to functions\", \"patterns\": [{ \"include\": \"#function_declaration\" }, { \"include\": \"#functions_inline\" }, { \"include\": \"#functions\" }, { \"include\": \"#built_in_functions\" }, { \"include\": \"#support_functions\" }] }, \"group-types\": { \"comment\": \"all statements related to types\", \"patterns\": [{ \"include\": \"#other_struct_interface_expressions\" }, { \"include\": \"#type_assertion_inline\" }, { \"include\": \"#struct_variables_types\" }, { \"include\": \"#interface_variables_types\" }, { \"include\": \"#single_type\" }, { \"include\": \"#multi_types\" }, { \"include\": \"#struct_interface_declaration\" }, { \"include\": \"#double_parentheses_types\" }, { \"include\": \"#switch_types\" }, { \"include\": \"#type-declarations\" }] }, \"group-variables\": { \"comment\": \"all statements related to variables\", \"patterns\": [{ \"include\": \"#var_const_assignment\" }, { \"include\": \"#variable_assignment\" }, { \"include\": \"#label_loop_variables\" }, { \"include\": \"#slice_index_variables\" }, { \"include\": \"#property_variables\" }, { \"include\": \"#switch_select_case_variables\" }, { \"include\": \"#other_variables\" }] }, \"import\": { \"comment\": \"import\", \"patterns\": [{ \"begin\": \"\\\\b(import)\\\\s+\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.control.import.go\" } }, \"comment\": \"import\", \"end\": \"(?!\\\\G)\", \"patterns\": [{ \"include\": \"#imports\" }] }] }, \"imports\": { \"comment\": \"import package(s)\", \"patterns\": [{ \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"variable.other.import.go\" }] }, \"2\": { \"name\": \"string.quoted.double.go\" }, \"3\": { \"name\": \"punctuation.definition.string.begin.go\" }, \"4\": { \"name\": \"entity.name.import.go\" }, \"5\": { \"name\": \"punctuation.definition.string.end.go\" } }, \"match\": '(\\\\s*[\\\\w\\\\.]+)?\\\\s*((\")([^\"]*)(\"))' }, { \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.imports.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.imports.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#comments\" }, { \"include\": \"#imports\" }] }, { \"include\": \"$self\" }] }, \"interface_variables_types\": { \"begin\": \"(\\\\binterface\\\\b)\\\\s*(\\\\{)\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.interface.go\" }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.curly.go\" } }, \"comment\": \"interface variable types\", \"end\": \"\\\\}\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.curly.go\" } }, \"patterns\": [{ \"include\": \"#interface_variables_types_field\" }, { \"include\": \"$self\" }] }, \"interface_variables_types_field\": { \"comment\": \"interface variable type fields\", \"patterns\": [{ \"include\": \"#support_functions\" }, { \"include\": \"#type-declarations-without-brackets\" }, { \"begin\": \"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))\", \"beginCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.square.go\" } }, \"end\": \"\\\\]\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.square.go\" } }, \"patterns\": [{ \"include\": \"#generic_param_types\" }] }, { \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#function_param_types\" }] }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"other types\", \"match\": \"([\\\\w\\\\.]+)\" }] }, \"keywords\": { \"patterns\": [{ \"comment\": \"Flow control keywords\", \"match\": \"\\\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\\\b\", \"name\": \"keyword.control.go\" }, { \"match\": \"\\\\bchan\\\\b\", \"name\": \"keyword.channel.go\" }, { \"match\": \"\\\\bconst\\\\b\", \"name\": \"keyword.const.go\" }, { \"match\": \"\\\\bvar\\\\b\", \"name\": \"keyword.var.go\" }, { \"match\": \"\\\\bfunc\\\\b\", \"name\": \"keyword.function.go\" }, { \"match\": \"\\\\binterface\\\\b\", \"name\": \"keyword.interface.go\" }, { \"match\": \"\\\\bmap\\\\b\", \"name\": \"keyword.map.go\" }, { \"match\": \"\\\\bstruct\\\\b\", \"name\": \"keyword.struct.go\" }, { \"match\": \"\\\\bimport\\\\b\", \"name\": \"keyword.control.import.go\" }, { \"match\": \"\\\\btype\\\\b\", \"name\": \"keyword.type.go\" }] }, \"label_loop_variables\": { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.label.go\" }] } }, \"comment\": \"labeled loop variable name\", \"match\": \"((?:^\\\\s*\\\\w+:\\\\s*$)|(?:^\\\\s*(?:\\\\bbreak\\\\b|\\\\bgoto\\\\b|\\\\bcontinue\\\\b)\\\\s+\\\\w+(?:\\\\s*/(?:/|\\\\*)\\\\s*.*)?$))\" }, \"language_constants\": { \"captures\": { \"1\": { \"name\": \"constant.language.boolean.go\" }, \"2\": { \"name\": \"constant.language.null.go\" }, \"3\": { \"name\": \"constant.language.iota.go\" } }, \"comment\": \"Language constants\", \"match\": \"\\\\b(?:(true|false)|(nil)|(iota))\\\\b\" }, \"map_types\": { \"begin\": \"(?:(\\\\bmap\\\\b)(\\\\[))\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.map.go\" }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.square.go\" } }, \"comment\": \"map types\", \"end\": \"(?:(\\\\])((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:func|struct|map)\\\\b)(?:[\\\\*\\\\[\\\\]]+)?(?:[\\\\w\\\\.]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+))*))?\\\\])?)?)\", \"endCaptures\": { \"1\": { \"name\": \"punctuation.definition.end.bracket.square.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"include\": \"#functions\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\{\", \"name\": \"punctuation.definition.begin.bracket.curly.go\" }, { \"match\": \"\\\\}\", \"name\": \"punctuation.definition.end.bracket.curly.go\" }, { \"match\": \"\\\\(\", \"name\": \"punctuation.definition.begin.bracket.round.go\" }, { \"match\": \"\\\\)\", \"name\": \"punctuation.definition.end.bracket.round.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] }, \"multi_types\": { \"begin\": \"(\\\\btype\\\\b)\\\\s*(\\\\()\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.type.go\" }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"comment\": \"multi type declaration\", \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#struct_variables_types\" }, { \"include\": \"#interface_variables_types\" }, { \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] }, \"numeric_literals\": { \"captures\": { \"0\": { \"patterns\": [{ \"begin\": \"(?=.)\", \"end\": \"(?:\\\\n|$)\", \"patterns\": [{ \"captures\": { \"1\": { \"name\": \"constant.numeric.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"2\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"3\": { \"name\": \"constant.numeric.decimal.point.go\" }, \"4\": { \"name\": \"constant.numeric.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"5\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"6\": { \"name\": \"keyword.other.unit.exponent.decimal.go\" }, \"7\": { \"name\": \"keyword.operator.plus.exponent.decimal.go\" }, \"8\": { \"name\": \"keyword.operator.minus.exponent.decimal.go\" }, \"9\": { \"name\": \"constant.numeric.exponent.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"10\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"11\": { \"name\": \"constant.numeric.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"12\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"13\": { \"name\": \"keyword.other.unit.exponent.decimal.go\" }, \"14\": { \"name\": \"keyword.operator.plus.exponent.decimal.go\" }, \"15\": { \"name\": \"keyword.operator.minus.exponent.decimal.go\" }, \"16\": { \"name\": \"constant.numeric.exponent.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"17\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"18\": { \"name\": \"constant.numeric.decimal.point.go\" }, \"19\": { \"name\": \"constant.numeric.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"20\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"21\": { \"name\": \"keyword.other.unit.exponent.decimal.go\" }, \"22\": { \"name\": \"keyword.operator.plus.exponent.decimal.go\" }, \"23\": { \"name\": \"keyword.operator.minus.exponent.decimal.go\" }, \"24\": { \"name\": \"constant.numeric.exponent.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"25\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"26\": { \"name\": \"keyword.other.unit.hexadecimal.go\" }, \"27\": { \"name\": \"constant.numeric.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"28\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"29\": { \"name\": \"constant.numeric.hexadecimal.go\" }, \"30\": { \"name\": \"constant.numeric.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"31\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"32\": { \"name\": \"keyword.other.unit.exponent.hexadecimal.go\" }, \"33\": { \"name\": \"keyword.operator.plus.exponent.hexadecimal.go\" }, \"34\": { \"name\": \"keyword.operator.minus.exponent.hexadecimal.go\" }, \"35\": { \"name\": \"constant.numeric.exponent.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"36\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"37\": { \"name\": \"keyword.other.unit.hexadecimal.go\" }, \"38\": { \"name\": \"constant.numeric.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"39\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"40\": { \"name\": \"keyword.other.unit.exponent.hexadecimal.go\" }, \"41\": { \"name\": \"keyword.operator.plus.exponent.hexadecimal.go\" }, \"42\": { \"name\": \"keyword.operator.minus.exponent.hexadecimal.go\" }, \"43\": { \"name\": \"constant.numeric.exponent.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"44\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"45\": { \"name\": \"keyword.other.unit.hexadecimal.go\" }, \"46\": { \"name\": \"constant.numeric.hexadecimal.go\" }, \"47\": { \"name\": \"constant.numeric.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"48\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"49\": { \"name\": \"keyword.other.unit.exponent.hexadecimal.go\" }, \"50\": { \"name\": \"keyword.operator.plus.exponent.hexadecimal.go\" }, \"51\": { \"name\": \"keyword.operator.minus.exponent.hexadecimal.go\" }, \"52\": { \"name\": \"constant.numeric.exponent.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"53\": { \"name\": \"keyword.other.unit.imaginary.go\" } }, \"match\": \"(?:(?:(?:(?:(?:\\\\G(?=[0-9.])(?!0[xXbBoO])([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])))*)))?(i(?!\\\\w))?(?:\\\\n|$)|\\\\G(?=[0-9.])(?!0[xXbBoO])([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])))*))(i(?!\\\\w))?(?:\\\\n|$))|\\\\G((?:(?<=[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])))*)))?(i(?!\\\\w))?(?:\\\\n|$))|(\\\\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])))*))(i(?!\\\\w))?(?:\\\\n|$))|(\\\\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])))*))(i(?!\\\\w))?(?:\\\\n|$))|(\\\\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])))*)(?<!_)([pP])(\\\\+?)(\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))\" }, { \"captures\": { \"1\": { \"name\": \"constant.numeric.decimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"2\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"3\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"4\": { \"name\": \"keyword.other.unit.binary.go\" }, \"5\": { \"name\": \"constant.numeric.binary.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"6\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"7\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"8\": { \"name\": \"keyword.other.unit.octal.go\" }, \"9\": { \"name\": \"constant.numeric.octal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"10\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"11\": { \"name\": \"keyword.other.unit.imaginary.go\" }, \"12\": { \"name\": \"keyword.other.unit.hexadecimal.go\" }, \"13\": { \"name\": \"constant.numeric.hexadecimal.go\", \"patterns\": [{ \"match\": \"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\", \"name\": \"punctuation.separator.constant.numeric.go\" }] }, \"14\": { \"name\": \"punctuation.separator.constant.numeric.go\" }, \"15\": { \"name\": \"keyword.other.unit.imaginary.go\" } }, \"match\": \"(?:(?:(?:\\\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$)|(\\\\G0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$))\" }, { \"match\": \"(?:(?:[0-9a-zA-Z_\\\\.])|(?<=[eEpP])[+-])+\", \"name\": \"invalid.illegal.constant.numeric.go\" }] }] } }, \"match\": \"(?<!\\\\w)\\\\.?\\\\d(?:(?:[0-9a-zA-Z_\\\\.])|(?<=[eEpP])[+-])*\" }, \"operators\": { \"comment\": \"Note that the order here is very important!\", \"patterns\": [{ \"match\": \"((?:\\\\*|\\\\&)+)(?:(?!\\\\d)(?=(?:[\\\\w\\\\[\\\\]])|(?:<-)))\", \"name\": \"keyword.operator.address.go\" }, { \"match\": \"<-\", \"name\": \"keyword.operator.channel.go\" }, { \"match\": \"--\", \"name\": \"keyword.operator.decrement.go\" }, { \"match\": \"\\\\+\\\\+\", \"name\": \"keyword.operator.increment.go\" }, { \"match\": \"(==|!=|<=|>=|<(?!<)|>(?!>))\", \"name\": \"keyword.operator.comparison.go\" }, { \"match\": \"(&&|\\\\|\\\\||!)\", \"name\": \"keyword.operator.logical.go\" }, { \"match\": \"(=|\\\\+=|-=|\\\\|=|\\\\^=|\\\\*=|/=|:=|%=|<<=|>>=|&\\\\^=|&=)\", \"name\": \"keyword.operator.assignment.go\" }, { \"match\": \"(\\\\+|-|\\\\*|/|%)\", \"name\": \"keyword.operator.arithmetic.go\" }, { \"match\": \"(&(?!\\\\^)|\\\\||\\\\^|&\\\\^|<<|>>|\\\\~)\", \"name\": \"keyword.operator.arithmetic.bitwise.go\" }, { \"match\": \"\\\\.\\\\.\\\\.\", \"name\": \"keyword.operator.ellipsis.go\" }] }, \"other_struct_interface_expressions\": { \"comment\": \"struct and interface expression in-line (before curly bracket)\", \"patterns\": [{ \"comment\": \"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)\", \"include\": \"#after_control_variables\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] }, \"2\": { \"patterns\": [{ \"begin\": \"\\\\[\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.square.go\" } }, \"end\": \"\\\\]\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.square.go\" } }, \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }, { \"include\": \"$self\" }] }] } }, \"match\": \"(\\\\b[\\\\w\\\\.]+)(\\\\[(?:[^\\\\]]+)?\\\\])?(?=\\\\{)(?<!\\\\bstruct\\\\b|\\\\binterface\\\\b)\" }] }, \"other_variables\": { \"comment\": \"all other variables\", \"match\": \"\\\\w+\", \"name\": \"variable.other.go\" }, \"package_name\": { \"patterns\": [{ \"begin\": \"\\\\b(package)\\\\s+\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.package.go\" } }, \"comment\": \"package name\", \"end\": \"(?!\\\\G)\", \"patterns\": [{ \"match\": \"\\\\d\\\\w*\", \"name\": \"invalid.illegal.identifier.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.package.go\" }] }] }, \"parameter-variable-types\": { \"comment\": \"function and generic parameter types\", \"patterns\": [{ \"match\": \"\\\\{\", \"name\": \"punctuation.definition.begin.bracket.curly.go\" }, { \"match\": \"\\\\}\", \"name\": \"punctuation.definition.end.bracket.curly.go\" }, { \"begin\": \"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))\", \"beginCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.square.go\" } }, \"end\": \"\\\\]\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.square.go\" } }, \"patterns\": [{ \"include\": \"#generic_param_types\" }] }, { \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#function_param_types\" }] }] }, \"property_variables\": { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.property.go\" }] } }, \"comment\": \"Property variables in struct\", \"match\": \"((?:\\\\b[\\\\w\\\\.]+)(?::(?!=)))\" }, \"raw_string_literals\": { \"begin\": \"`\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.begin.go\" } }, \"comment\": \"Raw string literals\", \"end\": \"`\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.end.go\" } }, \"name\": \"string.quoted.raw.go\", \"patterns\": [{ \"include\": \"#string_placeholder\" }] }, \"runes\": { \"patterns\": [{ \"begin\": \"'\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.begin.go\" } }, \"end\": \"'\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.end.go\" } }, \"name\": \"string.quoted.rune.go\", \"patterns\": [{ \"match\": `\\\\G(\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')`, \"name\": \"constant.other.rune.go\" }, { \"match\": \"[^']+\", \"name\": \"invalid.illegal.unknown-rune.go\" }] }] }, \"single_type\": { \"patterns\": [{ \"captures\": { \"1\": { \"name\": \"keyword.type.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] }, \"3\": { \"patterns\": [{ \"begin\": \"\\\\(\", \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#function_param_types\" }, { \"include\": \"$self\" }] }, { \"include\": \"#type-declarations\" }, { \"include\": \"#generic_types\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"single type declaration\", \"match\": \"(?:(?:^\\\\s*)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.\\\\*]+)(?:\\\\s+)(?!(?:=\\\\s*)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b)([\\\\s\\\\S]+))\" }, { \"begin\": \"(?:(?:^|\\\\s+)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.\\\\*]+)(?=\\\\[))\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.type.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"single type declaration with generics\", \"end\": \"(?:(?<=\\\\])((?:\\\\s+)(?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?!(?:[\\\\[\\\\]\\\\*]+)?(?:\\\\bstruct\\\\b|\\\\binterface\\\\b|\\\\bfunc\\\\b))[\\\\w\\\\.\\\\-\\\\*\\\\[\\\\]]+(?:\\\\,\\\\s+[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*))?)\", \"endCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"patterns\": [{ \"include\": \"#struct_variables_types\" }, { \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\{\", \"name\": \"punctuation.definition.begin.bracket.curly.go\" }, { \"match\": \"\\\\}\", \"name\": \"punctuation.definition.end.bracket.curly.go\" }, { \"match\": \"\\\\(\", \"name\": \"punctuation.definition.begin.bracket.round.go\" }, { \"match\": \"\\\\)\", \"name\": \"punctuation.definition.end.bracket.round.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] }] }, \"slice_index_variables\": { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.go\" }] } }, \"comment\": \"slice index and capacity variables, to not scope them as property variables\", \"match\": \"(?<=\\\\w\\\\[)((?:(?:\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+:)|(?::\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+))(?:\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+)?(?::\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+)?)(?=\\\\])\" }, \"statements\": { \"patterns\": [{ \"include\": \"#package_name\" }, { \"include\": \"#import\" }, { \"include\": \"#syntax_errors\" }, { \"include\": \"#group-functions\" }, { \"include\": \"#group-types\" }, { \"include\": \"#group-variables\" }, { \"include\": \"#field_hover\" }] }, \"storage_types\": { \"patterns\": [{ \"match\": \"\\\\bbool\\\\b\", \"name\": \"storage.type.boolean.go\" }, { \"match\": \"\\\\bbyte\\\\b\", \"name\": \"storage.type.byte.go\" }, { \"match\": \"\\\\berror\\\\b\", \"name\": \"storage.type.error.go\" }, { \"match\": \"\\\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\\\b\", \"name\": \"storage.type.numeric.go\" }, { \"match\": \"\\\\brune\\\\b\", \"name\": \"storage.type.rune.go\" }, { \"match\": \"\\\\bstring\\\\b\", \"name\": \"storage.type.string.go\" }, { \"match\": \"\\\\buintptr\\\\b\", \"name\": \"storage.type.uintptr.go\" }, { \"match\": \"\\\\bany\\\\b\", \"name\": \"entity.name.type.any.go\" }] }, \"string_escaped_char\": { \"patterns\": [{ \"match\": `\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})`, \"name\": \"constant.character.escape.go\" }, { \"match\": `\\\\\\\\[^0-7xuUabfnrtv\\\\'\"]`, \"name\": \"invalid.illegal.unknown-escape.go\" }] }, \"string_literals\": { \"patterns\": [{ \"begin\": '\"', \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.begin.go\" } }, \"comment\": \"Interpreted string literals\", \"end\": '\"', \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.end.go\" } }, \"name\": \"string.quoted.double.go\", \"patterns\": [{ \"include\": \"#string_escaped_char\" }, { \"include\": \"#string_placeholder\" }] }] }, \"string_placeholder\": { \"patterns\": [{ \"match\": \"%(\\\\[\\\\d+\\\\])?([+#\\\\-0\\\\x20]{,2}((\\\\d+|\\\\*)?(\\\\.?(\\\\d+|\\\\*|(\\\\[\\\\d+\\\\])\\\\*?)?(\\\\[\\\\d+\\\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]\", \"name\": \"constant.other.placeholder.go\" }] }, \"struct_interface_declaration\": { \"captures\": { \"1\": { \"name\": \"keyword.type.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)\", \"match\": \"(?:(?:^\\\\s*)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.]+))\" }, \"struct_variable_types_fields_multi\": { \"comment\": \"struct variable and type fields with multi lines\", \"patterns\": [{ \"begin\": \"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bstruct\\\\b)(?:\\\\s*)(\\\\{))\", \"beginCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.property.go\" }] }, \"2\": { \"name\": \"keyword.struct.go\" }, \"3\": { \"name\": \"punctuation.definition.begin.bracket.curly.go\" } }, \"comment\": \"struct in struct types\", \"end\": \"\\\\}\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.curly.go\" } }, \"patterns\": [{ \"include\": \"#struct_variables_types_fields\" }, { \"include\": \"$self\" }] }, { \"begin\": \"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\binterface\\\\b)(?:\\\\s*)(\\\\{))\", \"beginCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.property.go\" }] }, \"2\": { \"name\": \"keyword.interface.go\" }, \"3\": { \"name\": \"punctuation.definition.begin.bracket.curly.go\" } }, \"comment\": \"interface in struct types\", \"end\": \"\\\\}\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.curly.go\" } }, \"patterns\": [{ \"include\": \"#interface_variables_types_field\" }, { \"include\": \"$self\" }] }, { \"begin\": \"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bfunc\\\\b)(?:\\\\s*)(\\\\())\", \"beginCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.property.go\" }] }, \"2\": { \"name\": \"keyword.function.go\" }, \"3\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"comment\": \"function in struct types\", \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"include\": \"#function_param_types\" }, { \"include\": \"$self\" }] }, { \"include\": \"#parameter-variable-types\" }] }, \"struct_variables_types\": { \"begin\": \"(\\\\bstruct\\\\b)\\\\s*(\\\\{)\", \"beginCaptures\": { \"1\": { \"name\": \"keyword.struct.go\" }, \"2\": { \"name\": \"punctuation.definition.begin.bracket.curly.go\" } }, \"comment\": \"Struct variable type\", \"end\": \"\\\\}\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.curly.go\" } }, \"patterns\": [{ \"include\": \"#struct_variables_types_fields\" }, { \"include\": \"$self\" }] }, \"struct_variables_types_fields\": { \"comment\": \"Struct variable type fields\", \"patterns\": [{ \"include\": \"#struct_variable_types_fields_multi\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"one line - single type\", \"match\": \"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"variable.other.property.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"one line - property variables and types\", \"match\": \"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"variable.other.property.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"match\": \"(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))\" }] } }, \"comment\": \"one line with semicolon(;) without formatting gofmt - single type | property variables and types\", \"match\": \"(?:(?<=\\\\{)((?:\\\\s*(?:(?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?(?:(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))+)\\\\s*(?=\\\\}))\" }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"one type only\", \"match\": '(?:((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*]+)\\\\s*)(?:(?=\\\\`|\\\\/|\")|$))' }, { \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"variable.other.property.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#parameter-variable-types\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"property variables and types\", \"match\": '(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))([^\\\\`\"\\\\/]+))' }] }, \"support_functions\": { \"captures\": { \"1\": { \"name\": \"entity.name.function.support.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\d\\\\w*\", \"name\": \"invalid.illegal.identifier.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.function.support.go\" }] }, \"3\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\{\", \"name\": \"punctuation.definition.begin.bracket.curly.go\" }, { \"match\": \"\\\\}\", \"name\": \"punctuation.definition.end.bracket.curly.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"Support Functions\", \"match\": `(?:(?:((?<=\\\\.)\\\\b\\\\w+)|(\\\\b\\\\w+))(\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}\"\\\\']+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+))*))?\\\\])?(?=\\\\())` }, \"switch_select_case_variables\": { \"captures\": { \"1\": { \"name\": \"keyword.control.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"include\": \"#support_functions\" }, { \"include\": \"#variable_assignment\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.go\" }] } }, \"comment\": \"variables after case control keyword in switch/select expression, to not scope them as property variables\", \"match\": \"(?:(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\s\\\\S]+(?::)\\\\s*(?:/(?:/|\\\\*).*)?)$)\" }, \"switch_types\": { \"begin\": \"(?<=\\\\bswitch\\\\b)(?:\\\\s*)(?:(\\\\w+\\\\s*:=)?\\\\s*([\\\\w\\\\.\\\\*()\\\\[\\\\]+/\\\\-\\\\%<>\\\\|\\\\&]+))(\\\\.\\\\(\\\\btype\\\\b\\\\)\\\\s*)(\\\\{)\", \"beginCaptures\": { \"1\": { \"patterns\": [{ \"include\": \"#operators\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.assignment.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#support_functions\" }, { \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.go\" }] }, \"3\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"include\": \"#brackets\" }, { \"match\": \"\\\\btype\\\\b\", \"name\": \"keyword.type.go\" }] }, \"4\": { \"name\": \"punctuation.definition.begin.bracket.curly.go\" } }, \"comment\": \"switch type assertions, only highlights types after case keyword\", \"end\": \"(?:\\\\})\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.curly.go\" } }, \"patterns\": [{ \"captures\": { \"1\": { \"name\": \"keyword.control.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] }, \"3\": { \"name\": \"punctuation.other.colon.go\" }, \"4\": { \"patterns\": [{ \"include\": \"#comments\" }] } }, \"comment\": \"types after case keyword with single line\", \"match\": \"(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\w\\\\.\\\\,\\\\*=<>!\\\\s]+)(:)(\\\\s*/(?:/|\\\\*)\\\\s*.*)?$\" }, { \"begin\": \"\\\\bcase\\\\b\", \"beginCaptures\": { \"0\": { \"name\": \"keyword.control.go\" } }, \"comment\": \"types after case keyword with multi lines\", \"end\": \":\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.other.colon.go\" } }, \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] }, { \"include\": \"$self\" }] }, \"syntax_errors\": { \"patterns\": [{ \"captures\": { \"1\": { \"name\": \"invalid.illegal.slice.go\" } }, \"comment\": \"Syntax error using slices\", \"match\": \"\\\\[\\\\](\\\\s+)\" }, { \"comment\": \"Syntax error numeric literals\", \"match\": \"\\\\b0[0-7]*[89]\\\\d*\\\\b\", \"name\": \"invalid.illegal.numeric.go\" }] }, \"terminators\": { \"comment\": \"Terminators\", \"match\": \";\", \"name\": \"punctuation.terminator.go\" }, \"type-declarations\": { \"comment\": \"includes all type declarations\", \"patterns\": [{ \"include\": \"#language_constants\" }, { \"include\": \"#comments\" }, { \"include\": \"#map_types\" }, { \"include\": \"#brackets\" }, { \"include\": \"#delimiters\" }, { \"include\": \"#keywords\" }, { \"include\": \"#operators\" }, { \"include\": \"#runes\" }, { \"include\": \"#storage_types\" }, { \"include\": \"#raw_string_literals\" }, { \"include\": \"#string_literals\" }, { \"include\": \"#numeric_literals\" }, { \"include\": \"#terminators\" }] }, \"type-declarations-without-brackets\": { \"comment\": \"includes all type declarations without brackets (in some cases, brackets need to be captured manually)\", \"patterns\": [{ \"include\": \"#language_constants\" }, { \"include\": \"#comments\" }, { \"include\": \"#map_types\" }, { \"include\": \"#delimiters\" }, { \"include\": \"#keywords\" }, { \"include\": \"#operators\" }, { \"include\": \"#runes\" }, { \"include\": \"#storage_types\" }, { \"include\": \"#raw_string_literals\" }, { \"include\": \"#string_literals\" }, { \"include\": \"#numeric_literals\" }, { \"include\": \"#terminators\" }] }, \"type_assertion_inline\": { \"captures\": { \"1\": { \"name\": \"keyword.type.go\" }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations\" }, { \"match\": \"(?:\\\\w+)\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"struct/interface types in-line (type assertion) | switch type keyword\", \"match\": \"(?:(?<=\\\\.\\\\()(?:(\\\\btype\\\\b)|((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?[\\\\w\\\\.\\\\[\\\\]\\\\*]+))(?=\\\\)))\" }, \"var_const_assignment\": { \"comment\": \"variable assignment with var and const keyword\", \"patterns\": [{ \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.assignment.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#generic_types\" }, { \"match\": \"\\\\(\", \"name\": \"punctuation.definition.begin.bracket.round.go\" }, { \"match\": \"\\\\)\", \"name\": \"punctuation.definition.end.bracket.round.go\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"comment\": \"var and const with single type assignment\", \"match\": \"(?:(?<=\\\\bvar\\\\b|\\\\bconst\\\\b)(?:\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:=)?)?)\" }, { \"begin\": \"(?:(?<=\\\\bvar\\\\b|\\\\bconst\\\\b)(?:\\\\s*)(\\\\())\", \"beginCaptures\": { \"1\": { \"name\": \"punctuation.definition.begin.bracket.round.go\" } }, \"comment\": \"var and const with multi type assignment\", \"end\": \"\\\\)\", \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.end.bracket.round.go\" } }, \"patterns\": [{ \"captures\": { \"1\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.assignment.go\" }] }, \"2\": { \"patterns\": [{ \"include\": \"#type-declarations-without-brackets\" }, { \"include\": \"#generic_types\" }, { \"match\": \"\\\\(\", \"name\": \"punctuation.definition.begin.bracket.round.go\" }, { \"match\": \"\\\\)\", \"name\": \"punctuation.definition.end.bracket.round.go\" }, { \"match\": \"\\\\[\", \"name\": \"punctuation.definition.begin.bracket.square.go\" }, { \"match\": \"\\\\]\", \"name\": \"punctuation.definition.end.bracket.square.go\" }, { \"match\": \"\\\\w+\", \"name\": \"entity.name.type.go\" }] } }, \"match\": \"(?:(?:^\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:=)?)?)\" }, { \"include\": \"$self\" }] }] }, \"variable_assignment\": { \"comment\": \"variable assignment\", \"patterns\": [{ \"captures\": { \"0\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"match\": \"\\\\d\\\\w*\", \"name\": \"invalid.illegal.identifier.go\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.assignment.go\" }] } }, \"comment\": \"variable assignment with :=\", \"match\": \"\\\\b\\\\w+(?:\\\\,\\\\s*\\\\w+)*(?=\\\\s*:=)\" }, { \"captures\": { \"0\": { \"patterns\": [{ \"include\": \"#delimiters\" }, { \"include\": \"#operators\" }, { \"match\": \"\\\\d\\\\w*\", \"name\": \"invalid.illegal.identifier.go\" }, { \"match\": \"\\\\w+\", \"name\": \"variable.other.assignment.go\" }] } }, \"comment\": \"variable assignment with =\", \"match\": \"\\\\b[\\\\w\\\\.\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\*]+)*(?=\\\\s*=(?!=))\" }] } }, \"scopeName\": \"source.go\" });\nvar go = [\n lang\n];\n\nexport { go as default };\n"],"names":["go","Object","freeze","displayName","name","patterns","include","repository","after_control_variables","captures","match","comment","brackets","begin","beginCaptures","end","endCaptures","built_in_functions","comments","delimiters","double_parentheses_types","field_hover","function_declaration","function_param_types","functions","functions_inline","generic_param_types","generic_types","import","imports","interface_variables_types","interface_variables_types_field","keywords","label_loop_variables","language_constants","map_types","multi_types","numeric_literals","operators","other_struct_interface_expressions","other_variables","package_name","property_variables","raw_string_literals","runes","single_type","slice_index_variables","statements","storage_types","string_escaped_char","string_literals","string_placeholder","struct_interface_declaration","struct_variable_types_fields_multi","struct_variables_types","struct_variables_types_fields","support_functions","switch_select_case_variables","switch_types","syntax_errors","terminators","type_assertion_inline","var_const_assignment","variable_assignment","scopeName"],"mappings":"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","x_google_ignoreList":[0]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
System.register(["./ruby-951187c3.cjs.js","./javascript-86304e1b.cjs.js","./sass-3099fa6b.cjs.js","./coffee-2572e062.cjs.js","./markdown-844e62a0.cjs.js","./css-29043e92.cjs.js","./html-ea7b5a6d.cjs.js","./xml-1938a4d8.cjs.js","./java-5bfb7c2a.cjs.js","./sql-43113b01.cjs.js","./c-da3bb8a6.cjs.js","./shellscript-cd92245f.cjs.js","./lua-1990ffc7.cjs.js"],function(_export,_context){"use strict";var e,n,t,a,s,r,m;function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2;}return{setters:[function(_ruby00KCjsJs){e=_ruby00KCjsJs["default"];},function(_javascript009CjsJs){n=_javascript009CjsJs["default"];},function(_sass00MCjsJs){t=_sass00MCjsJs["default"];},function(_coffee00pCjsJs){a=_coffee00pCjsJs["default"];},function(_markdown01yCjsJs){s=_markdown01yCjsJs["default"];},function(_css00aCjsJs){r=_css00aCjsJs["default"];},function(_html008CjsJs){},function(_xml00fCjsJs){},function(_java00hCjsJs){},function(_sql00PCjsJs){},function(_c00nCjsJs){},function(_shellscript00OCjsJs){},function(_lua00VCjsJs){}],execute:function execute(){_export("default",m=[].concat(_toConsumableArray(e),_toConsumableArray(n),_toConsumableArray(t),_toConsumableArray(a),_toConsumableArray(s),_toConsumableArray(r),[Object.freeze({displayName:"Ruby Haml",fileTypes:["haml","html.haml"],foldingStartMarker:"^\\s*([-%#\\:\\.\\w\\=].*)\\s$",foldingStopMarker:"^\\s*$",name:"haml",patterns:[{begin:"^(\\s*)==",contentName:"string.quoted.double.ruby",end:"$\\n*",patterns:[{include:"#interpolated_ruby"}]},{begin:"^(\\s*):ruby",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{captures:{1:{name:"punctuation.definition.prolog.haml"}},match:"^(!!!)($|\\s.*)",name:"meta.prolog.haml"},{begin:"^(\\s*):javascript",end:"^(?!\\1\\s+|$\\n*)",name:"js.haml",patterns:[{include:"source.js"}]},{begin:"^(\\s*)%script",end:"^(?!\\1\\s+|$\\n*)",name:"js.inline.haml",patterns:[{include:"source.js"}]},{begin:"^(\\s*):ruby$",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{captures:{1:{name:"punctuation.section.comment.haml"}},match:"^(\\s*)(\\/\\[[^\\]].*?$\\n?)",name:"comment.line.slash.haml"},{begin:"^(\\s*)(-\\#|\\/|-\\s*\\/\\*+)",beginCaptures:{2:{name:"punctuation.section.comment.haml"}},end:"^(?!\\1\\s+|\\n)",name:"comment.block.haml",patterns:[{include:"text.haml"}]},{begin:"^\\s*(?:((%)([-\\w:]+))|(?=\\.|#))",captures:{1:{name:"meta.tag.haml"},2:{name:"punctuation.definition.tag.haml"},3:{name:"entity.name.tag.haml"}},end:"$|(?!\\.|#|\\{|\\(|\\[|&|=|-|~|!=|&=|/)",patterns:[{begin:"==",contentName:"string.quoted.double.ruby",end:"$\\n?",patterns:[{include:"#interpolated_ruby"}]},{captures:{1:{name:"entity.other.attribute-name.class"}},match:"(\\.[\\w\\-:]+)",name:"meta.selector.css"},{captures:{1:{name:"entity.other.attribute-name.id"}},match:"(#[\\w-]+)",name:"meta.selector.css"},{begin:"(?<!\\#)\\{(?=.*(,|(do)|\\{|\\}|\\||(\\#.*)|\\R)\\s*)",end:"\\s*\\}(?!\\s*\\,)(?!\\s*\\|)(?!\\#\\{.*\\})",name:"meta.section.attributes.haml",patterns:[{include:"source.ruby"},{include:"#continuation"},{include:"#rubyline"}]},{begin:"\\(",end:"\\)",name:"meta.section.attributes.plain.haml",patterns:[{match:"([\\w-]+)",name:"constant.other.symbol.ruby"},{match:"=",name:"punctuation"},{include:"#variables"},{begin:'"',end:'"',name:"string.quoted.double.ruby",patterns:[{match:"\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",name:"constant.character.escape.ruby"},{include:"#interpolated_ruby"}]},{include:"#interpolated_ruby"}]},{begin:"\\[(?=.+(,|\\[|\\]|\\||(\\#.*))\\s*)",end:"\\s*\\](?!.*(?!\\#\\[)\\])",name:"meta.section.object.haml",patterns:[{include:"source.ruby"},{include:"#continuation"},{include:"#rubyline"}]},{include:"#interpolated_ruby_line"},{include:"#rubyline"},{match:"/",name:"punctuation.terminator.tag.haml"}]},{begin:"^(\\s*):(ruby|opal)$",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{begin:"^(\\s*):ruby$",end:"^(?!\\1\\s+|$\\n*)",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{begin:"^(\\s*):(style|sass)$",end:"^(?=\\1\\s+|$\\n*)",name:"source.sass.embedded.filter.haml",patterns:[{include:"source.sass"}]},{begin:"^(\\s*):coffee(script)?",end:"^(?!\\1\\s+|$\\n*)",name:"source.coffee.embedded.filter.haml",patterns:[{include:"source.coffee"}]},{begin:"^(\\s*):plain$",end:"^(?=\\1\\s+|$\\n*)",name:"text.plain.embedded.filter.haml",patterns:[{include:"text.plain"}]},{begin:"^(\\s*)(:ruby)",beginCaptures:{2:{name:"keyword.control.filter.haml"}},end:"(?m:(?<=\\n)(?!\\1\\s+|$\\n*))",name:"source.ruby.embedded.filter.haml",patterns:[{include:"source.ruby"}]},{begin:"^(\\s*)(:sass)",beginCaptures:{2:{name:"keyword.control.filter.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"source.embedded.filter.sass",patterns:[{include:"source.sass"}]},{begin:"^(\\s*):(styles|sass)$",end:"^(?=\\1\\s+|$\\n*)",name:"source.sass.embedded.filter.haml",patterns:[{include:"source.sass"}]},{begin:"^(\\s*):plain$",end:"^(?=\\1\\s+|$\\n*)",name:"text.plain.embedded.filter.haml",patterns:[{include:"text.plain"}]},{captures:{1:{name:"meta.escape.haml"}},match:"^\\s*(\\.)"},{begin:"^\\s*(?==|-|~|!=|&=)",end:"$",patterns:[{include:"#interpolated_ruby_line"},{include:"#rubyline"}]},{begin:"^(\\s*)(:php)",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.php",patterns:[{include:"text.html.php#language"}]},{begin:"^(\\s*)(:markdown)",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.markdown",patterns:[{include:"text.html.markdown"}]},{begin:"^(\\s*)(:(css|styles?))$",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"^(\\s*)(:sass)$",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.sass",patterns:[{include:"source.sass"}]},{begin:"^(\\s*)(:scss)$",captures:{2:{name:"entity.name.tag.haml"}},end:"^(?!\\1\\s+|$\\n*)",name:"meta.embedded.scss",patterns:[{include:"source.scss"}]}],repository:{continuation:{captures:{1:{name:"punctuation.separator.continuation.haml"}},match:"(\\|)\\s*\\n"},interpolated_ruby:{patterns:[{captures:{0:{name:"punctuation.section.embedded.ruby"},1:{name:"source.ruby.embedded.source.empty"}},match:"#\\{(\\})",name:"source.ruby.embedded.source"},{begin:"#\\{",captures:{0:{name:"punctuation.section.embedded.ruby"}},end:"(\\})",name:"source.ruby.embedded.source",patterns:[{include:"#nest_curly_and_self"},{include:"source.ruby"}]},{include:"#variables"}]},interpolated_ruby_line:{begin:"!?==",contentName:"string.source.ruby.embedded.haml",end:"$",name:"meta.line.ruby.interpolated.haml",patterns:[{include:"#interpolated_ruby"},{include:"source.ruby#escaped_char"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"},{include:"source.ruby"}]}]},rubyline:{begin:"(&|!)?(=|-|~)",contentName:"source.ruby.embedded.haml",end:"((do|\\{)( \\|[.*]+\\|)?)$|$|^(?!.*\\|\\s*)$\\n?",endCaptures:{1:{name:"source.ruby.embedded.html"},2:{name:"keyword.control.ruby.start-block"}},name:"meta.line.ruby.haml",patterns:[{captures:{1:{name:"keyword.control.php"}},match:"\\s+((elseif|foreach|switch|declare|default|use))(?=\\s|\\()"},{captures:{1:{name:"keyword.control.import.include.php"}},match:"\\s+(require_once|include_once)(?=\\s|\\()"},{match:"\\s+(catch|try|throw|exception|finally|die)(?=\\s|\\(|\\n*)",name:"keyword.control.exception.php"},{captures:{1:{name:"storage.type.function.php"}},match:"\\s+(function\\s*)((?=\\())"},{captures:{1:{name:"keyword.control.php"}},match:"\\s+(use\\s*)((?=\\())"},{match:"(\\||,|<|do|\\{)\\s*(\\#.*)?$\\n*",name:"source.ruby",patterns:[{include:"#rubyline"}]},{comment:"Hack to let ruby comments work in this context properly",match:"#.*$",name:"comment.line.number-sign.ruby"},{include:"source.ruby"},{include:"#continuation"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]}},scopeName:"text.haml",embeddedLangs:["ruby","javascript","sass","coffee","markdown","css"]})]));}};});
|
2
|
-
//# sourceMappingURL=haml-44312b9e.cjs.js.map
|