@shikijs/langs-precompiled 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +15 -0
- package/dist/1c-query.d.mts +3 -0
- package/dist/1c-query.mjs +2 -0
- package/dist/1c.d.mts +3 -0
- package/dist/1c.mjs +2 -0
- package/dist/abap.d.mts +3 -0
- package/dist/abap.mjs +5 -0
- package/dist/actionscript-3.d.mts +3 -0
- package/dist/actionscript-3.mjs +5 -0
- package/dist/ada.d.mts +3 -0
- package/dist/ada.mjs +5 -0
- package/dist/adoc.d.mts +3 -0
- package/dist/adoc.mjs +2 -0
- package/dist/angular-expression.d.mts +3 -0
- package/dist/angular-expression.mjs +5 -0
- package/dist/angular-html.d.mts +3 -0
- package/dist/angular-html.mjs +16 -0
- package/dist/angular-inline-style.d.mts +3 -0
- package/dist/angular-inline-style.mjs +8 -0
- package/dist/angular-inline-template.d.mts +3 -0
- package/dist/angular-inline-template.mjs +10 -0
- package/dist/angular-let-declaration.d.mts +3 -0
- package/dist/angular-let-declaration.mjs +8 -0
- package/dist/angular-template-blocks.d.mts +3 -0
- package/dist/angular-template-blocks.mjs +10 -0
- package/dist/angular-template.d.mts +3 -0
- package/dist/angular-template.mjs +8 -0
- package/dist/angular-ts.d.mts +3 -0
- package/dist/angular-ts.mjs +19 -0
- package/dist/apache.d.mts +3 -0
- package/dist/apache.mjs +5 -0
- package/dist/apex.d.mts +3 -0
- package/dist/apex.mjs +7 -0
- package/dist/apl.d.mts +3 -0
- package/dist/apl.mjs +17 -0
- package/dist/applescript.d.mts +3 -0
- package/dist/applescript.mjs +7 -0
- package/dist/ara.d.mts +3 -0
- package/dist/ara.mjs +7 -0
- package/dist/asciidoc.d.mts +3 -0
- package/dist/asciidoc.mjs +7 -0
- package/dist/asm.d.mts +3 -0
- package/dist/asm.mjs +7 -0
- package/dist/astro.d.mts +3 -0
- package/dist/astro.mjs +17 -0
- package/dist/awk.d.mts +3 -0
- package/dist/awk.mjs +5 -0
- package/dist/ballerina.d.mts +3 -0
- package/dist/ballerina.mjs +5 -0
- package/dist/bash.d.mts +3 -0
- package/dist/bash.mjs +2 -0
- package/dist/bat.d.mts +3 -0
- package/dist/bat.mjs +5 -0
- package/dist/batch.d.mts +3 -0
- package/dist/batch.mjs +2 -0
- package/dist/be.d.mts +3 -0
- package/dist/be.mjs +2 -0
- package/dist/beancount.d.mts +3 -0
- package/dist/beancount.mjs +5 -0
- package/dist/berry.d.mts +3 -0
- package/dist/berry.mjs +5 -0
- package/dist/bibtex.d.mts +3 -0
- package/dist/bibtex.mjs +5 -0
- package/dist/bicep.d.mts +3 -0
- package/dist/bicep.mjs +5 -0
- package/dist/blade.d.mts +3 -0
- package/dist/blade.mjs +19 -0
- package/dist/bsl.d.mts +3 -0
- package/dist/bsl.mjs +8 -0
- package/dist/c.d.mts +3 -0
- package/dist/c.mjs +7 -0
- package/dist/cadence.d.mts +3 -0
- package/dist/cadence.mjs +7 -0
- package/dist/cairo.d.mts +3 -0
- package/dist/cairo.mjs +8 -0
- package/dist/cdc.d.mts +3 -0
- package/dist/cdc.mjs +2 -0
- package/dist/clarity.d.mts +3 -0
- package/dist/clarity.mjs +5 -0
- package/dist/clj.d.mts +3 -0
- package/dist/clj.mjs +2 -0
- package/dist/clojure.d.mts +3 -0
- package/dist/clojure.mjs +5 -0
- package/dist/closure-templates.d.mts +3 -0
- package/dist/closure-templates.mjs +2 -0
- package/dist/cmake.d.mts +3 -0
- package/dist/cmake.mjs +5 -0
- package/dist/cmd.d.mts +3 -0
- package/dist/cmd.mjs +2 -0
- package/dist/cobol.d.mts +3 -0
- package/dist/cobol.mjs +10 -0
- package/dist/codeowners.d.mts +3 -0
- package/dist/codeowners.mjs +5 -0
- package/dist/codeql.d.mts +3 -0
- package/dist/codeql.mjs +7 -0
- package/dist/coffee.d.mts +3 -0
- package/dist/coffee.mjs +8 -0
- package/dist/coffeescript.d.mts +3 -0
- package/dist/coffeescript.mjs +2 -0
- package/dist/common-lisp.d.mts +3 -0
- package/dist/common-lisp.mjs +7 -0
- package/dist/console.d.mts +3 -0
- package/dist/console.mjs +2 -0
- package/dist/coq.d.mts +3 -0
- package/dist/coq.mjs +5 -0
- package/dist/cpp-macro.d.mts +3 -0
- package/dist/cpp-macro.mjs +13 -0
- package/dist/cpp.d.mts +3 -0
- package/dist/cpp.mjs +15 -0
- package/dist/cql.d.mts +3 -0
- package/dist/cql.mjs +2 -0
- package/dist/crystal.d.mts +3 -0
- package/dist/crystal.mjs +19 -0
- package/dist/cs.d.mts +3 -0
- package/dist/cs.mjs +2 -0
- package/dist/csharp.d.mts +3 -0
- package/dist/csharp.mjs +3 -0
- package/dist/css.d.mts +3 -0
- package/dist/css.mjs +7 -0
- package/dist/csv.d.mts +3 -0
- package/dist/csv.mjs +5 -0
- package/dist/cue.d.mts +3 -0
- package/dist/cue.mjs +5 -0
- package/dist/cypher.d.mts +3 -0
- package/dist/cypher.mjs +5 -0
- package/dist/d.d.mts +3 -0
- package/dist/d.mjs +5 -0
- package/dist/dart.d.mts +3 -0
- package/dist/dart.mjs +5 -0
- package/dist/dax.d.mts +3 -0
- package/dist/dax.mjs +5 -0
- package/dist/desktop.d.mts +3 -0
- package/dist/desktop.mjs +5 -0
- package/dist/diff.d.mts +3 -0
- package/dist/diff.mjs +5 -0
- package/dist/docker.d.mts +3 -0
- package/dist/docker.mjs +5 -0
- package/dist/dockerfile.d.mts +3 -0
- package/dist/dockerfile.mjs +2 -0
- package/dist/dotenv.d.mts +3 -0
- package/dist/dotenv.mjs +5 -0
- package/dist/dream-maker.d.mts +3 -0
- package/dist/dream-maker.mjs +7 -0
- package/dist/edge.d.mts +3 -0
- package/dist/edge.mjs +12 -0
- package/dist/elisp.d.mts +3 -0
- package/dist/elisp.mjs +2 -0
- package/dist/elixir.d.mts +3 -0
- package/dist/elixir.mjs +9 -0
- package/dist/elm.d.mts +3 -0
- package/dist/elm.mjs +8 -0
- package/dist/emacs-lisp.d.mts +3 -0
- package/dist/emacs-lisp.mjs +7 -0
- package/dist/erb.d.mts +3 -0
- package/dist/erb.mjs +10 -0
- package/dist/erl.d.mts +3 -0
- package/dist/erl.mjs +2 -0
- package/dist/erlang.d.mts +3 -0
- package/dist/erlang.mjs +7 -0
- package/dist/es-tag-css.d.mts +3 -0
- package/dist/es-tag-css.mjs +12 -0
- package/dist/es-tag-glsl.d.mts +3 -0
- package/dist/es-tag-glsl.mjs +12 -0
- package/dist/es-tag-html.d.mts +3 -0
- package/dist/es-tag-html.mjs +12 -0
- package/dist/es-tag-sql.d.mts +3 -0
- package/dist/es-tag-sql.mjs +10 -0
- package/dist/es-tag-xml.d.mts +3 -0
- package/dist/es-tag-xml.mjs +8 -0
- package/dist/f.d.mts +3 -0
- package/dist/f.mjs +2 -0
- package/dist/f03.d.mts +3 -0
- package/dist/f03.mjs +2 -0
- package/dist/f08.d.mts +3 -0
- package/dist/f08.mjs +2 -0
- package/dist/f18.d.mts +3 -0
- package/dist/f18.mjs +2 -0
- package/dist/f77.d.mts +3 -0
- package/dist/f77.mjs +2 -0
- package/dist/f90.d.mts +3 -0
- package/dist/f90.mjs +2 -0
- package/dist/f95.d.mts +3 -0
- package/dist/f95.mjs +2 -0
- package/dist/fennel.d.mts +3 -0
- package/dist/fennel.mjs +5 -0
- package/dist/fish.d.mts +3 -0
- package/dist/fish.mjs +5 -0
- package/dist/fluent.d.mts +3 -0
- package/dist/fluent.mjs +5 -0
- package/dist/for.d.mts +3 -0
- package/dist/for.mjs +2 -0
- package/dist/fortran-fixed-form.d.mts +3 -0
- package/dist/fortran-fixed-form.mjs +8 -0
- package/dist/fortran-free-form.d.mts +3 -0
- package/dist/fortran-free-form.mjs +7 -0
- package/dist/fs.d.mts +3 -0
- package/dist/fs.mjs +2 -0
- package/dist/fsharp.d.mts +3 -0
- package/dist/fsharp.mjs +8 -0
- package/dist/fsl.d.mts +3 -0
- package/dist/fsl.mjs +2 -0
- package/dist/ftl.d.mts +3 -0
- package/dist/ftl.mjs +2 -0
- package/dist/gdresource.d.mts +3 -0
- package/dist/gdresource.mjs +10 -0
- package/dist/gdscript.d.mts +3 -0
- package/dist/gdscript.mjs +5 -0
- package/dist/gdshader.d.mts +3 -0
- package/dist/gdshader.mjs +5 -0
- package/dist/genie.d.mts +3 -0
- package/dist/genie.mjs +5 -0
- package/dist/gherkin.d.mts +3 -0
- package/dist/gherkin.mjs +5 -0
- package/dist/git-commit.d.mts +3 -0
- package/dist/git-commit.mjs +8 -0
- package/dist/git-rebase.d.mts +3 -0
- package/dist/git-rebase.mjs +8 -0
- package/dist/gjs.d.mts +3 -0
- package/dist/gjs.mjs +2 -0
- package/dist/gleam.d.mts +3 -0
- package/dist/gleam.mjs +5 -0
- package/dist/glimmer-js.d.mts +3 -0
- package/dist/glimmer-js.mjs +15 -0
- package/dist/glimmer-ts.d.mts +3 -0
- package/dist/glimmer-ts.mjs +15 -0
- package/dist/glsl.d.mts +3 -0
- package/dist/glsl.mjs +8 -0
- package/dist/gnuplot.d.mts +3 -0
- package/dist/gnuplot.mjs +5 -0
- package/dist/go.d.mts +3 -0
- package/dist/go.mjs +7 -0
- package/dist/gql.d.mts +3 -0
- package/dist/gql.mjs +2 -0
- package/dist/graphql.d.mts +3 -0
- package/dist/graphql.mjs +15 -0
- package/dist/groovy.d.mts +3 -0
- package/dist/groovy.mjs +5 -0
- package/dist/gts.d.mts +3 -0
- package/dist/gts.mjs +2 -0
- package/dist/hack.d.mts +3 -0
- package/dist/hack.mjs +3 -0
- package/dist/haml.d.mts +3 -0
- package/dist/haml.mjs +11 -0
- package/dist/handlebars.d.mts +3 -0
- package/dist/handlebars.mjs +14 -0
- package/dist/haskell.d.mts +3 -0
- package/dist/haskell.mjs +7 -0
- package/dist/haxe.d.mts +3 -0
- package/dist/haxe.mjs +5 -0
- package/dist/hbs.d.mts +3 -0
- package/dist/hbs.mjs +2 -0
- package/dist/hcl.d.mts +3 -0
- package/dist/hcl.mjs +5 -0
- package/dist/hjson.d.mts +3 -0
- package/dist/hjson.mjs +5 -0
- package/dist/hlsl.d.mts +3 -0
- package/dist/hlsl.mjs +5 -0
- package/dist/hs.d.mts +3 -0
- package/dist/hs.mjs +2 -0
- package/dist/html-derivative.d.mts +3 -0
- package/dist/html-derivative.mjs +8 -0
- package/dist/html.d.mts +3 -0
- package/dist/html.mjs +11 -0
- package/dist/http.d.mts +3 -0
- package/dist/http.mjs +14 -0
- package/dist/hxml.d.mts +3 -0
- package/dist/hxml.mjs +8 -0
- package/dist/hy.d.mts +3 -0
- package/dist/hy.mjs +5 -0
- package/dist/imba.d.mts +3 -0
- package/dist/imba.mjs +9 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +239 -0
- package/dist/ini.d.mts +3 -0
- package/dist/ini.mjs +7 -0
- package/dist/jade.d.mts +3 -0
- package/dist/jade.mjs +2 -0
- package/dist/java.d.mts +3 -0
- package/dist/java.mjs +7 -0
- package/dist/javascript.d.mts +3 -0
- package/dist/javascript.mjs +7 -0
- package/dist/jinja-html.d.mts +3 -0
- package/dist/jinja-html.mjs +8 -0
- package/dist/jinja.d.mts +3 -0
- package/dist/jinja.mjs +8 -0
- package/dist/jison.d.mts +3 -0
- package/dist/jison.mjs +8 -0
- package/dist/jl.d.mts +3 -0
- package/dist/jl.mjs +2 -0
- package/dist/js.d.mts +3 -0
- package/dist/js.mjs +2 -0
- package/dist/json.d.mts +3 -0
- package/dist/json.mjs +5 -0
- package/dist/json5.d.mts +3 -0
- package/dist/json5.mjs +5 -0
- package/dist/jsonc.d.mts +3 -0
- package/dist/jsonc.mjs +5 -0
- package/dist/jsonl.d.mts +3 -0
- package/dist/jsonl.mjs +5 -0
- package/dist/jsonnet.d.mts +3 -0
- package/dist/jsonnet.mjs +5 -0
- package/dist/jssm.d.mts +3 -0
- package/dist/jssm.mjs +5 -0
- package/dist/jsx.d.mts +3 -0
- package/dist/jsx.mjs +7 -0
- package/dist/julia.d.mts +3 -0
- package/dist/julia.mjs +17 -0
- package/dist/kotlin.d.mts +3 -0
- package/dist/kotlin.mjs +7 -0
- package/dist/kql.d.mts +3 -0
- package/dist/kql.mjs +2 -0
- package/dist/kt.d.mts +3 -0
- package/dist/kt.mjs +2 -0
- package/dist/kts.d.mts +3 -0
- package/dist/kts.mjs +2 -0
- package/dist/kusto.d.mts +3 -0
- package/dist/kusto.mjs +7 -0
- package/dist/latex.d.mts +3 -0
- package/dist/latex.mjs +8 -0
- package/dist/lean.d.mts +3 -0
- package/dist/lean.mjs +5 -0
- package/dist/lean4.d.mts +3 -0
- package/dist/lean4.mjs +2 -0
- package/dist/less.d.mts +3 -0
- package/dist/less.mjs +5 -0
- package/dist/liquid.d.mts +3 -0
- package/dist/liquid.mjs +14 -0
- package/dist/lisp.d.mts +3 -0
- package/dist/lisp.mjs +2 -0
- package/dist/lit.d.mts +3 -0
- package/dist/lit.mjs +2 -0
- package/dist/log.d.mts +3 -0
- package/dist/log.mjs +5 -0
- package/dist/logo.d.mts +3 -0
- package/dist/logo.mjs +7 -0
- package/dist/lua.d.mts +3 -0
- package/dist/lua.mjs +9 -0
- package/dist/luau.d.mts +3 -0
- package/dist/luau.mjs +5 -0
- package/dist/make.d.mts +3 -0
- package/dist/make.mjs +7 -0
- package/dist/makefile.d.mts +3 -0
- package/dist/makefile.mjs +2 -0
- package/dist/markdown-vue.d.mts +3 -0
- package/dist/markdown-vue.mjs +7 -0
- package/dist/markdown.d.mts +3 -0
- package/dist/markdown.mjs +7 -0
- package/dist/marko.d.mts +3 -0
- package/dist/marko.mjs +14 -0
- package/dist/matlab.d.mts +3 -0
- package/dist/matlab.mjs +7 -0
- package/dist/md.d.mts +3 -0
- package/dist/md.mjs +2 -0
- package/dist/mdc.d.mts +3 -0
- package/dist/mdc.mjs +13 -0
- package/dist/mdx.d.mts +3 -0
- package/dist/mdx.mjs +7 -0
- package/dist/mediawiki.d.mts +3 -0
- package/dist/mediawiki.mjs +2 -0
- package/dist/mermaid.d.mts +3 -0
- package/dist/mermaid.mjs +7 -0
- package/dist/mips.d.mts +3 -0
- package/dist/mips.mjs +2 -0
- package/dist/mipsasm.d.mts +3 -0
- package/dist/mipsasm.mjs +7 -0
- package/dist/mmd.d.mts +3 -0
- package/dist/mmd.mjs +2 -0
- package/dist/mojo.d.mts +3 -0
- package/dist/mojo.mjs +7 -0
- package/dist/move.d.mts +3 -0
- package/dist/move.mjs +5 -0
- package/dist/nar.d.mts +3 -0
- package/dist/nar.mjs +2 -0
- package/dist/narrat.d.mts +3 -0
- package/dist/narrat.mjs +5 -0
- package/dist/nextflow.d.mts +3 -0
- package/dist/nextflow.mjs +5 -0
- package/dist/nf.d.mts +3 -0
- package/dist/nf.mjs +2 -0
- package/dist/nginx.d.mts +3 -0
- package/dist/nginx.mjs +8 -0
- package/dist/nim.d.mts +3 -0
- package/dist/nim.mjs +21 -0
- package/dist/nix.d.mts +3 -0
- package/dist/nix.mjs +5 -0
- package/dist/nu.d.mts +3 -0
- package/dist/nu.mjs +2 -0
- package/dist/nushell.d.mts +3 -0
- package/dist/nushell.mjs +7 -0
- package/dist/objc.d.mts +3 -0
- package/dist/objc.mjs +2 -0
- package/dist/objective-c.d.mts +3 -0
- package/dist/objective-c.mjs +7 -0
- package/dist/objective-cpp.d.mts +3 -0
- package/dist/objective-cpp.mjs +7 -0
- package/dist/ocaml.d.mts +3 -0
- package/dist/ocaml.mjs +5 -0
- package/dist/pascal.d.mts +3 -0
- package/dist/pascal.mjs +7 -0
- package/dist/perl.d.mts +3 -0
- package/dist/perl.mjs +17 -0
- package/dist/perl6.d.mts +3 -0
- package/dist/perl6.mjs +2 -0
- package/dist/php.d.mts +3 -0
- package/dist/php.mjs +19 -0
- package/dist/plsql.d.mts +3 -0
- package/dist/plsql.mjs +5 -0
- package/dist/po.d.mts +3 -0
- package/dist/po.mjs +7 -0
- package/dist/polar.d.mts +3 -0
- package/dist/polar.mjs +7 -0
- package/dist/postcss.d.mts +3 -0
- package/dist/postcss.mjs +5 -0
- package/dist/pot.d.mts +3 -0
- package/dist/pot.mjs +2 -0
- package/dist/potx.d.mts +3 -0
- package/dist/potx.mjs +2 -0
- package/dist/powerquery.d.mts +3 -0
- package/dist/powerquery.mjs +5 -0
- package/dist/powershell.d.mts +3 -0
- package/dist/powershell.mjs +7 -0
- package/dist/prisma.d.mts +3 -0
- package/dist/prisma.mjs +5 -0
- package/dist/prolog.d.mts +3 -0
- package/dist/prolog.mjs +5 -0
- package/dist/properties.d.mts +3 -0
- package/dist/properties.mjs +2 -0
- package/dist/proto.d.mts +3 -0
- package/dist/proto.mjs +5 -0
- package/dist/protobuf.d.mts +3 -0
- package/dist/protobuf.mjs +2 -0
- package/dist/ps.d.mts +3 -0
- package/dist/ps.mjs +2 -0
- package/dist/ps1.d.mts +3 -0
- package/dist/ps1.mjs +2 -0
- package/dist/pug.d.mts +3 -0
- package/dist/pug.mjs +12 -0
- package/dist/puppet.d.mts +3 -0
- package/dist/puppet.mjs +5 -0
- package/dist/purescript.d.mts +3 -0
- package/dist/purescript.mjs +3 -0
- package/dist/py.d.mts +3 -0
- package/dist/py.mjs +2 -0
- package/dist/python.d.mts +3 -0
- package/dist/python.mjs +7 -0
- package/dist/ql.d.mts +3 -0
- package/dist/ql.mjs +2 -0
- package/dist/qml.d.mts +3 -0
- package/dist/qml.mjs +8 -0
- package/dist/qmldir.d.mts +3 -0
- package/dist/qmldir.mjs +5 -0
- package/dist/qss.d.mts +3 -0
- package/dist/qss.mjs +5 -0
- package/dist/r.d.mts +3 -0
- package/dist/r.mjs +7 -0
- package/dist/racket.d.mts +3 -0
- package/dist/racket.mjs +5 -0
- package/dist/raku.d.mts +3 -0
- package/dist/raku.mjs +7 -0
- package/dist/razor.d.mts +3 -0
- package/dist/razor.mjs +3 -0
- package/dist/rb.d.mts +3 -0
- package/dist/rb.mjs +2 -0
- package/dist/reg.d.mts +3 -0
- package/dist/reg.mjs +5 -0
- package/dist/regex.d.mts +3 -0
- package/dist/regex.mjs +2 -0
- package/dist/regexp.d.mts +3 -0
- package/dist/regexp.mjs +5 -0
- package/dist/rel.d.mts +3 -0
- package/dist/rel.mjs +5 -0
- package/dist/riscv.d.mts +3 -0
- package/dist/riscv.mjs +7 -0
- package/dist/rs.d.mts +3 -0
- package/dist/rs.mjs +2 -0
- package/dist/rst.d.mts +3 -0
- package/dist/rst.mjs +22 -0
- package/dist/ruby.d.mts +3 -0
- package/dist/ruby.mjs +31 -0
- package/dist/rust.d.mts +3 -0
- package/dist/rust.mjs +5 -0
- package/dist/sas.d.mts +3 -0
- package/dist/sas.mjs +8 -0
- package/dist/sass.d.mts +3 -0
- package/dist/sass.mjs +5 -0
- package/dist/scala.d.mts +3 -0
- package/dist/scala.mjs +7 -0
- package/dist/scheme.d.mts +3 -0
- package/dist/scheme.mjs +7 -0
- package/dist/scss.d.mts +3 -0
- package/dist/scss.mjs +9 -0
- package/dist/sdbl.d.mts +3 -0
- package/dist/sdbl.mjs +5 -0
- package/dist/sh.d.mts +3 -0
- package/dist/sh.mjs +2 -0
- package/dist/shader.d.mts +3 -0
- package/dist/shader.mjs +2 -0
- package/dist/shaderlab.d.mts +3 -0
- package/dist/shaderlab.mjs +8 -0
- package/dist/shell.d.mts +3 -0
- package/dist/shell.mjs +2 -0
- package/dist/shellscript.d.mts +3 -0
- package/dist/shellscript.mjs +7 -0
- package/dist/shellsession.d.mts +3 -0
- package/dist/shellsession.mjs +8 -0
- package/dist/smalltalk.d.mts +3 -0
- package/dist/smalltalk.mjs +7 -0
- package/dist/solidity.d.mts +3 -0
- package/dist/solidity.mjs +5 -0
- package/dist/soy.d.mts +3 -0
- package/dist/soy.mjs +8 -0
- package/dist/sparql.d.mts +3 -0
- package/dist/sparql.mjs +8 -0
- package/dist/spl.d.mts +3 -0
- package/dist/spl.mjs +2 -0
- package/dist/splunk.d.mts +3 -0
- package/dist/splunk.mjs +5 -0
- package/dist/sql.d.mts +3 -0
- package/dist/sql.mjs +7 -0
- package/dist/ssh-config.d.mts +3 -0
- package/dist/ssh-config.mjs +7 -0
- package/dist/stata.d.mts +3 -0
- package/dist/stata.mjs +8 -0
- package/dist/styl.d.mts +3 -0
- package/dist/styl.mjs +2 -0
- package/dist/stylus.d.mts +3 -0
- package/dist/stylus.mjs +7 -0
- package/dist/svelte.d.mts +3 -0
- package/dist/svelte.mjs +15 -0
- package/dist/swift.d.mts +3 -0
- package/dist/swift.mjs +3 -0
- package/dist/system-verilog.d.mts +3 -0
- package/dist/system-verilog.mjs +5 -0
- package/dist/systemd.d.mts +3 -0
- package/dist/systemd.mjs +5 -0
- package/dist/talon.d.mts +3 -0
- package/dist/talon.mjs +2 -0
- package/dist/talonscript.d.mts +3 -0
- package/dist/talonscript.mjs +5 -0
- package/dist/tasl.d.mts +3 -0
- package/dist/tasl.mjs +5 -0
- package/dist/tcl.d.mts +3 -0
- package/dist/tcl.mjs +5 -0
- package/dist/templ.d.mts +3 -0
- package/dist/templ.mjs +13 -0
- package/dist/terraform.d.mts +3 -0
- package/dist/terraform.mjs +5 -0
- package/dist/tex.d.mts +3 -0
- package/dist/tex.mjs +9 -0
- package/dist/tf.d.mts +3 -0
- package/dist/tf.mjs +2 -0
- package/dist/tfvars.d.mts +3 -0
- package/dist/tfvars.mjs +2 -0
- package/dist/toml.d.mts +3 -0
- package/dist/toml.mjs +7 -0
- package/dist/ts-tags.d.mts +3 -0
- package/dist/ts-tags.mjs +18 -0
- package/dist/ts.d.mts +3 -0
- package/dist/ts.mjs +2 -0
- package/dist/tsp.d.mts +3 -0
- package/dist/tsp.mjs +2 -0
- package/dist/tsv.d.mts +3 -0
- package/dist/tsv.mjs +5 -0
- package/dist/tsx.d.mts +3 -0
- package/dist/tsx.mjs +7 -0
- package/dist/turtle.d.mts +3 -0
- package/dist/turtle.mjs +5 -0
- package/dist/twig.d.mts +3 -0
- package/dist/twig.mjs +19 -0
- package/dist/typ.d.mts +3 -0
- package/dist/typ.mjs +2 -0
- package/dist/typescript.d.mts +3 -0
- package/dist/typescript.mjs +7 -0
- package/dist/typespec.d.mts +3 -0
- package/dist/typespec.mjs +5 -0
- package/dist/typst.d.mts +3 -0
- package/dist/typst.mjs +5 -0
- package/dist/v.d.mts +3 -0
- package/dist/v.mjs +7 -0
- package/dist/vala.d.mts +3 -0
- package/dist/vala.mjs +5 -0
- package/dist/vb.d.mts +3 -0
- package/dist/vb.mjs +7 -0
- package/dist/verilog.d.mts +3 -0
- package/dist/verilog.mjs +7 -0
- package/dist/vhdl.d.mts +3 -0
- package/dist/vhdl.mjs +5 -0
- package/dist/vim.d.mts +3 -0
- package/dist/vim.mjs +2 -0
- package/dist/viml.d.mts +3 -0
- package/dist/viml.mjs +5 -0
- package/dist/vimscript.d.mts +3 -0
- package/dist/vimscript.mjs +2 -0
- package/dist/vue-directives.d.mts +3 -0
- package/dist/vue-directives.mjs +5 -0
- package/dist/vue-html.d.mts +3 -0
- package/dist/vue-html.mjs +11 -0
- package/dist/vue-interpolations.d.mts +3 -0
- package/dist/vue-interpolations.mjs +5 -0
- package/dist/vue-sfc-style-variable-injection.d.mts +3 -0
- package/dist/vue-sfc-style-variable-injection.mjs +8 -0
- package/dist/vue.d.mts +3 -0
- package/dist/vue.mjs +27 -0
- package/dist/vy.d.mts +3 -0
- package/dist/vy.mjs +2 -0
- package/dist/vyper.d.mts +3 -0
- package/dist/vyper.mjs +7 -0
- package/dist/wasm.d.mts +3 -0
- package/dist/wasm.mjs +5 -0
- package/dist/wenyan.d.mts +3 -0
- package/dist/wenyan.mjs +5 -0
- package/dist/wgsl.d.mts +3 -0
- package/dist/wgsl.mjs +5 -0
- package/dist/wiki.d.mts +3 -0
- package/dist/wiki.mjs +2 -0
- package/dist/wikitext.d.mts +3 -0
- package/dist/wikitext.mjs +7 -0
- package/dist/wl.d.mts +3 -0
- package/dist/wl.mjs +2 -0
- package/dist/wolfram.d.mts +3 -0
- package/dist/wolfram.mjs +7 -0
- package/dist/xml.d.mts +3 -0
- package/dist/xml.mjs +8 -0
- package/dist/xsl.d.mts +3 -0
- package/dist/xsl.mjs +8 -0
- package/dist/yaml.d.mts +3 -0
- package/dist/yaml.mjs +7 -0
- package/dist/yml.d.mts +3 -0
- package/dist/yml.mjs +2 -0
- package/dist/zenscript.d.mts +3 -0
- package/dist/zenscript.mjs +5 -0
- package/dist/zig.d.mts +3 -0
- package/dist/zig.mjs +5 -0
- package/dist/zsh.d.mts +3 -0
- package/dist/zsh.mjs +2 -0
- package/package.json +358 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EmulatedRegExp } from 'oniguruma-to-es'
|
|
2
|
+
|
|
3
|
+
const lang = Object.freeze({displayName:"Fortran (Free Form)",fileTypes:["f90","F90","f95","F95","f03","F03","f08","F08","f18","F18","fpp","FPP",".pf",".PF"],firstLineMatch:/-[\*]- mode: fortran free -[\*]-/dgiv,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:/(?=\p{space}*[a-z0-9"'])/dgiv,comment:"Name list.",contentName:"meta.name-list.fortran",end:/(?=[\)\;\!\n])/dgv,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:/\p{space}*\b(?:(read)|(write))\p{space}*(\()/dgivy,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:/(\))/dgv,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:/\p{space}*\b(?:(formatted)|(unformatted))\b/dgivy},{include:"#invalid-word"}]},"IO-statements":{patterns:[{begin:/\b(?:(backspace)|(close)|(endfile)|(format)|(inquire)|(open)|(read)|(rewind)|(write))\p{space}*(?=\()/dgiv,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])/dgv,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:/\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\b/dgiv},{begin:/\b(?:(flush)|(wait))\p{space}*(?=\()/dgiv,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\b(flush)\b/dgiv}]},"abstract-attribute":{captures:{"1":{name:"storage.modifier.fortran.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:/\p{space}*\b(abstract)\b/dgivy},"abstract-interface-block-construct":{begin:/\b(abstract)\p{space}+(interface)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.attribute.fortran.modern"},"2":{name:"keyword.control.interface.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:/\b(end\p{space}*interface)\b/dgiv,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:/\p{space}*\b(allocatable)\b/dgiv},"allocate-statement":{begin:/\b(allocate)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"keyword.control.allocate.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/(-)|(\+)|\/(?!\/|=|\\)|(\*\*)|(\*)/dgv},"array-constructor":{begin:/(?=\p{space}*(\[|\(\/))/dgv,end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.contructor.array",patterns:[{include:"#brackets"},{begin:/\p{space}*(\(\/)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.left.fortran"}},end:/(\/\))/dgv,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:/\b(assign)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.assign.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.control.assign.fortran",patterns:[{captures:{"1":{name:"keyword.control.to.fortran"}},match:/\p{space}*\b(to)\b/dgiv},{include:"$base"}]}]},"assignment-keyword":{begin:/\p{space}*\b(assignment)\p{space}*(\()/dgivy,beginCaptures:{"1":{name:"keyword.control.generic-spec.assignment.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Assignment generic specification.",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#assignment-operator"},{include:"#invalid-word"}]},"assignment-operator":{comment:"Introduced in the Fortran 1977 standard.",match:/(?<!\/|=|<|>)(=)(?!=|>)/dgv,name:"keyword.operator.assignment.fortran"},"associate-construct":{begin:/\b(associate)\b(?=\p{space}*\()/dgiv,beginCaptures:{"1":{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2003 standard.",contentName:"meta.block.associate.fortran",end:/\b(end\p{space}*associate)\b/dgiv,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:/\p{space}*\b(asynchronous)\b/dgivy},"attribute-specification-statement":{begin:/(?=\b(?:allocatable|asynchronous|contiguous|external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\b|(bind|dimension|intent)\p{space}*\(|(codimension)\p{space}*\[)/dgiv,end:/(?=[\;\!\n])/dgv,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:/(?=\p{space}*::)/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.normal.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{include:"#invalid-word"}]},{include:"#name-list"}]},"block-construct":{begin:/\b(block)\b(?!\p{space}*\bdata\b)/dgiv,beginCaptures:{"1":{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2008 standard.",contentName:"meta.block.block.fortran",end:/\b(end\p{space}*block)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"block-data-definition":{begin:/\b(block\p{space}*data)\b(?:\p{space}+([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b)?/dgiv,beginCaptures:{"1":{name:"keyword.control.block-data.fortran"},"2":{name:"entity.name.block-data.fortran"}},end:/\b(?:(end\p{space}*block\p{space}*data)(?:\p{space}+((?!)))?|(end))\b(?:\p{space}*(\P{space}((?!\n)[^\n])*))?/dgiv,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:/\p{space}*(\[)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.left.fortran"}},end:/(\])/dgv,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:/\p{space}*\b(call)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.call.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.control.call.fortran",patterns:[{begin:/\p{space}*([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)(%)([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b\p{space}*(?=\()/dgivy,beginCaptures:{"1":{name:"variable.other.fortran"},"2":{name:"keyword.accessor.fortran"},"3":{name:"entity.name.function.subroutine.fortran"}},comment:"type-bound subroutines",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{include:"#intrinsic-subroutines"},{begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=\()/dgivy,beginCaptures:{"1":{name:"entity.name.function.subroutine.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"User defined subroutine.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?=\p{space}*[\;\!\n])/dgivy},{include:"$base"}]}]},"character-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:/\b(character)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"storage.type.character.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\b(character)\b(?:\p{space}*(\*)\p{space}*(\p{Nd}*))?/dgiv}]},"codimension-attribute":{begin:/\p{space}*\b(codimension)(?=\p{space}*\[)/dgivy,beginCaptures:{"1":{name:"storage.modifier.codimension.fortran"}},comment:"Introduced in the Fortran 2008 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{include:"#brackets"}]},comments:{begin:/!/dgv,end:/(?=\n)/dgv,name:"comment.line.fortran"},"common-statement":{begin:/\b(common)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.common.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"$base"}]},"concurrent-attribute":{begin:/\p{space}*\b(concurrent)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.while.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:/(?=[\;\!\n])/dgv,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:/\p{space}*\b(contiguous)\b/dgivy},"continue-statement":{patterns:[{begin:/\p{space}*\b(continue)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.continue.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,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:/(?=[^\n])/dgv,beginCaptures:{},end:/(?=$|\n)/dgv,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])/dgv,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])/dgv,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])/dgv,name:"punctuation.separator.constant.numeric.cpp"}]},"11":{name:"keyword.other.unit.suffix.floating-point.cpp"},"12":{name:"keyword.other.unit.user-defined.cpp"}},match:/(0[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])((?:\+)?)((?:-)?)(\p{Nd}(?:\p{Nd}|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?![\p{L}\p{M}\p{N}\p{Pc}]))?((?:[\p{L}\p{M}\p{N}\p{Pc}](?<![0-9a-fA-FpP])[\p{L}\p{M}\p{N}\p{Pc}]*)?(?=$|\n))/dgvy},{captures:{"1":{name:"constant.numeric.decimal.cpp",patterns:[{match:/(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])/dgv,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])/dgv,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])/dgv,name:"punctuation.separator.constant.numeric.cpp"}]},"10":{name:"keyword.other.unit.suffix.floating-point.cpp"},"11":{name:"keyword.other.unit.user-defined.cpp"}},match:/(?=[0-9\.])(?!0[xXbB])(\p{Nd}(?:\p{Nd}|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=\p{Nd})\.|\.(?=\p{Nd})))(\p{Nd}(?:\p{Nd}|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\+)?)((?:-)?)(\p{Nd}(?:\p{Nd}|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?![\p{L}\p{M}\p{N}\p{Pc}]))?((?:[\p{L}\p{M}\p{N}\p{Pc}](?<![0-9eE])[\p{L}\p{M}\p{N}\p{Pc}]*)?(?=$|\n))/dgvy},{captures:{"1":{name:"keyword.other.unit.binary.cpp"},"2":{name:"constant.numeric.binary.cpp",patterns:[{match:/(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])/dgv,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:/(0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|[uU]ll?|[uU]LL?|ll?[uU]?|LL?[uU]?|[fF])(?![\p{L}\p{M}\p{N}\p{Pc}]))?((?:[\p{L}\p{M}\p{N}\p{Pc}](?<!\p{Nd})[\p{L}\p{M}\p{N}\p{Pc}]*)?(?=$|\n))/dgvy},{captures:{"1":{name:"keyword.other.unit.octal.cpp"},"2":{name:"constant.numeric.octal.cpp",patterns:[{match:/(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])/dgv,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:/(0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|[uU]ll?|[uU]LL?|ll?[uU]?|LL?[uU]?|[fF])(?![\p{L}\p{M}\p{N}\p{Pc}]))?((?:[\p{L}\p{M}\p{N}\p{Pc}](?<!\p{Nd})[\p{L}\p{M}\p{N}\p{Pc}]*)?(?=$|\n))/dgvy},{captures:{"1":{name:"keyword.other.unit.hexadecimal.cpp"},"2":{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:/(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])/dgv,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])/dgv,name:"punctuation.separator.constant.numeric.cpp"}]},"8":{name:"keyword.other.unit.suffix.integer.cpp"},"9":{name:"keyword.other.unit.user-defined.cpp"}},match:/(0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\+)?)((?:-)?)(\p{Nd}(?:\p{Nd}|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|[uU]ll?|[uU]LL?|ll?[uU]?|LL?[uU]?|[fF])(?![\p{L}\p{M}\p{N}\p{Pc}]))?((?:[\p{L}\p{M}\p{N}\p{Pc}](?<![0-9a-fA-FpP])[\p{L}\p{M}\p{N}\p{Pc}]*)?(?=$|\n))/dgvy},{captures:{"1":{name:"constant.numeric.decimal.cpp",patterns:[{match:/(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])/dgv,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])/dgv,name:"punctuation.separator.constant.numeric.cpp"}]},"7":{name:"keyword.other.unit.suffix.integer.cpp"},"8":{name:"keyword.other.unit.user-defined.cpp"}},match:/(?=[0-9\.])(?!0[xXbB])(\p{Nd}(?:\p{Nd}|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\+)?)((?:-)?)(\p{Nd}(?:\p{Nd}|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|[uU]ll?|[uU]LL?|ll?[uU]?|LL?[uU]?|[fF])(?![\p{L}\p{M}\p{N}\p{Pc}]))?((?:[\p{L}\p{M}\p{N}\p{Pc}](?<![0-9eE])[\p{L}\p{M}\p{N}\p{Pc}]*)?(?=$|\n))/dgvy},{match:/(?:(?:[0-9a-zA-Z_\.]|')|(?<=[eEpP])[\+\-])+/dgv,name:"invalid.illegal.constant.numeric.cpp"}]}]}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])\.?\p{Nd}(?:(?:[0-9a-zA-Z_\.]|')|(?<=[eEpP])[\+\-])*/dgv},"critical-construct":{begin:/\b(critical)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2008 standard.",contentName:"meta.block.critical.fortran",end:/\b(end\p{space}*critical)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"cycle-statement":{patterns:[{begin:/\p{space}*\b(cycle)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.cycle.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.control.fortran",patterns:[]}]},"data-statement":{begin:/\b(data)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.data.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"$base"}]},"deallocate-statement":{begin:/\b(deallocate)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"keyword.control.deallocate.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\p{space}*\b(deferred)\b/dgiv},"derived-type":{begin:/\b(?:(class)|(type))\p{space}*(\()\p{space}*(([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)|\*)/dgiv,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:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},name:"meta.specification.type.derived.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"derived-type-component-attribute-specification":{begin:/(?=\p{space}*\b(?:private|sequence)\b)/dgiv,comment:"Introduced in the Fortran 1995 standard.",end:/(?=[\;\!\n])/dgv,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:/\b(integer)\p{space}*(,)\p{space}*(kind|len)\p{space}*(?:(::)\p{space}*([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)?)?\p{space}*(?=[\;\!\n])/dgiv},"derived-type-component-procedure-specification":{begin:/(?=\bprocedure\b)/dgiv,comment:"Introduced in the Fortran 2003 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:/(?=\p{space}*(,|::|\())/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-component-procedure.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\;\!\n])/dgv,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:/(?=\b(?:character|class|complex|double\p{space}*precision|double\p{space}*complex|integer|logical|real|type)\b(?![^\:'"\;\!\n]*\bfunction\b))/dgiv,comment:"Introduced in the Fortran 1995 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.specification.derived-type.fortran",patterns:[{include:"#types"},{include:"#line-continuation-operator"},{begin:/(?=\p{space}*(,|::))/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-component-type.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\;\!\n])/dgv,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:/(?=\bprivate\b)/dgiv,comment:"Introduced in the Fortran 1995 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.attribute-specification.fortran",patterns:[{include:"#access-attribute"},{include:"#invalid-character"}]},"derived-type-contains-final-procedure-specification":{begin:/\b(final)\b/dgiv,beginCaptures:{"1":{name:"storage.type.final-procedure.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.specification.procedure.final.fortran",patterns:[{begin:/(?=\p{space}*(::))/dgv,comment:"Attribute list.",end:/(::)|(?=[\;\!\n])/dgv,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:/\b(generic)\b/dgiv,beginCaptures:{"1":{name:"storage.type.procedure.generic.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.specification.procedure.generic.fortran",patterns:[{begin:/(?=\p{space}*(,|::|\())/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-contains-generic-procedure.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)|(?<=^|\n(?!$))|(?<=&)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\&\;\!\n])/dgv,patterns:[{include:"#access-attribute"},{include:"#invalid-word"}]}]},{begin:/(?=\p{space}*[a-z])/dgv,comment:"Name list.",contentName:"meta.name-list.fortran",end:/(?=[\;\!\n])/dgv,patterns:[{include:"#IO-keywords"},{include:"#assignment-keyword"},{include:"#operator-keyword"},{include:"#procedure-name"},{include:"#pointer-operators"}]}]},"derived-type-contains-procedure-specification":{begin:/(?=\bprocedure\b)/dgiv,comment:"Introduced in the Fortran 2003 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:/(?=\p{space}*(,|::|\())/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.derived-type-contains-procedure.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)|(?<=^|\n(?!$))|(?<=&)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\&\;\!\n])/dgv,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:/\b(type)\b(?!\p{space}*(\(|is\b|=))/dgiv,beginCaptures:{"1":{name:"keyword.control.type.fortran"}},end:/(?=[\;\!\n])/dgv,name:"meta.derived-type.definition.fortran",patterns:[{begin:/(?=\p{space}*(,|::))/dgvy,comment:"Attribute list.",contentName:"meta.attribute-list.derived-type.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\;\!\n])/dgv,patterns:[{include:"#access-attribute"},{include:"#abstract-attribute"},{include:"#language-binding-attribute"},{include:"#extends-attribute"},{include:"#invalid-word"}]}]},{begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv,beginCaptures:{"1":{name:"entity.name.type.fortran"}},end:/(?:(?<=^|\n(?!$))|(?<=;))\p{space}*(end\p{space}*type)(?:\p{space}+(?:(\1)|([\p{L}\p{M}\p{N}\p{Pc}]+)))?\b/dgiv,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:/(?<=^|\n(?!$))(?!\p{space}*\b(?:contains|end\p{space}*type)\b)/dgiv,comment:"Derived type specification block.",end:/(?<=^|\n(?!$))(?=\p{space}*\b(?:contains|end\p{space}*type)\b)/dgiv,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:/\b(contains)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.contains.fortran"}},comment:"Derived type contains block.",end:/(?=\p{space}*end\p{space}*type\b)/dgiv,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:/\p{space}*(%)/dgv},"dimension-attribute":{begin:/\p{space}*\b(dimension)(?=\p{space}*\()/dgiv,beginCaptures:{"1":{name:"storage.modifier.dimension.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{include:"#parentheses-dummy-variables"}]},"do-construct":{patterns:[{captures:{"1":{name:"keyword.control.enddo.fortran"}},match:/\b(end\p{space}*do)\b/dgiv},{begin:/\b(do)\p{space}+(\p{Nd}{1,5})/dgiv,beginCaptures:{"1":{name:"keyword.control.do.fortran"},"2":{name:"constant.numeric.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?:(?<=^|\n(?!$))|(?<=;))(?=\p{space}*\b\2\b)()()/dgiv,name:"meta.do.labeled.fortran",patterns:[{begin:/(?:\p{space}*(,)|(?!\p{space}*[\;\!\n]))/dgvy,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},comment:"Loop control.",end:/(?=[\;\!\n])/dgv,patterns:[{include:"#concurrent-attribute"},{include:"#while-attribute"},{include:"$base"}]},{include:"$base"}]},{begin:/\b(do)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.do.fortran"}},comment:"Introduced in the Fortran 1995 standard.",end:/\b(?:(continue)|(end\p{space}*do))\b/dgiv,endCaptures:{"1":{name:"keyword.control.continue.fortran"},"2":{name:"keyword.control.enddo.fortran"}},name:"meta.block.do.unlabeled.fortran",patterns:[{begin:/(?:\p{space}*(,)|(?!\p{space}*[\;\!\n]))/dgvy,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},comment:"Loop control.",end:/(?=[\;\!\n])/dgv,name:"meta.loop-control.fortran",patterns:[{include:"#concurrent-attribute"},{include:"#while-attribute"},{include:"$base"}]},{begin:/(?!\p{space}*\b(continue|end\p{space}*do)\b)/dgiv,comment:"Loop body.",end:/(?=\p{space}*\b(continue|end\p{space}*do)\b)/dgiv,patterns:[{include:"$base"}]}]}]},"dummy-variable":{captures:{"1":{name:"variable.parameter.fortran"}},comment:"dummy variable",match:/(?:(?<=^|\n(?!$))|(?<=[\&\,\(]))\p{space}*([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgiv},"dummy-variable-list":{begin:/\p{space}*(\()/dgvy,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.fortran"}},end:/\)|(?=\n)/dgv,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:/\p{space}*\b(elemental)\b/dgiv},"entry-statement":{patterns:[{begin:/\p{space}*\b(entry)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.entry.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.control.entry.fortran",patterns:[{begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv,beginCaptures:{"1":{name:"entity.name.function.entry.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"#dummy-variable-list"},{include:"#result-statement"},{include:"#language-binding-attribute"}]}]}]},"enum-block-construct":{begin:/\b(enum)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.enum.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:/\b(end\p{space}*enum)\b/dgiv,endCaptures:{"1":{name:"keyword.control.end-enum.fortran"}},name:"meta.enum.fortran",patterns:[{begin:/\p{space}*(,)/dgvy,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"#language-binding-attribute"},{include:"#invalid-word"}]},{begin:/(?!\p{space}*\b(end\p{space}*enum)\b)/dgiv,end:/(?=\b(end\p{space}*enum)\b)/dgiv,name:"meta.block.specification.enum.fortran",patterns:[{include:"#comments"},{begin:/\b(enumerator)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.enumerator.fortran"}},end:/(?=[\;\!\n])/dgv,name:"meta.statement.enumerator-specification.fortran",patterns:[{begin:/(?=\p{space}*(,|::))/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.enum.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{include:"#invalid-word"}]},{include:"#comments"},{include:"#name-list"}]}]}]},"equivalence-statement":{begin:/\b(equivalence)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.common.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{begin:/(?:|(,))/dgv,beginCaptures:{"1":{name:"puntuation.comma.fortran"}},end:/(?=[\,\;\!\n])/dgv,patterns:[{include:"#parentheses-dummy-variables"}]}]},"error-stop-statement":{begin:/\p{space}*\b(error\p{space}+stop)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.errorstop.fortran"}},comment:"Introduced in the Fortran 2008 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.control.errorstop.fortran",patterns:[{include:"#constants"},{include:"#string-operators"},{include:"#variable"},{include:"#invalid-character"}]},"event-statement":{begin:/\b(event post|event wait)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"keyword.control.event.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\p{space}*\b(exit)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.exit.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.control.exit.fortran",patterns:[]},"explicit-interface-block-construct":{begin:/\b(interface)\b(?=\p{space}*[\;\!\n])/dgiv,beginCaptures:{"1":{name:"keyword.control.interface.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/\b(end\p{space}*interface)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endinterface.fortran.modern"}},name:"meta.interface.explicit.fortran",patterns:[{include:"$base"}]},"extends-attribute":{begin:/\p{space}*\b(extends)\p{space}*\(/dgiv,beginCaptures:{"1":{name:"storage.modifier.extends.fortran"}},end:/(?:\)|(?=\n))/dgv,patterns:[{match:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv,name:"entity.name.type.fortran"}]},"external-attribute":{captures:{"1":{name:"storage.modifier.external.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:/\p{space}*\b(external)\b/dgiv},"fail-image-statement":{captures:{"1":{name:"keyword.control.fail-image.fortran"}},comment:"Introduced in the Fortran 2018 standard.",match:/\b(fail image)\b/dgv,name:"meta.statement.fail-image.fortran"},"forall-construct":{applyEndPatternLast:1,begin:/\b(forall)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.forall.fortran"}},comment:"Introduced in the Fortran 1995 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{begin:/(?!\p{space}*[\;\!\n])/dgvy,comment:"Loop control.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.loop-control.fortran",patterns:[{include:"#parentheses"},{include:"#invalid-word"}]},{begin:/(?<=\))(?=\p{space}*[\;\!\n])/dgv,end:/\b(end\p{space}*forall)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endforall.fortran"}},name:"meta.block.forall.fortran",patterns:[{include:"$base"}]},{begin:/(?<=\))(?!\p{space}*[\;\!\n])/dgv,end:/\n/dgv,name:"meta.statement.control.forall.fortran",patterns:[{include:"$base"}]}]},"form-team-statement":{begin:/\b(form team)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"keyword.control.form-team.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.form-team.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"function-definition":{begin:/(?=([^\:'"\;\!\n](?!\bend)(?!\bsubroutine\b))*\bfunction\b)/dgiv,comment:"Function program unit. Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.function.fortran",patterns:[{begin:/(?=\p{space}*(?!\bfunction\b))/dgiv,comment:"Function attribute list.",end:/(?=\bfunction\b)/dgiv,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:/\b(function)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.function.fortran"}},comment:"Captures the function keyword",end:/(?=[\;\!\n])/dgv,patterns:[{begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgivy,beginCaptures:{"1":{name:"entity.name.function.fortran"}},comment:"Function body.",end:/\p{space}*\b(?:(end\p{space}*function)(?:\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*))?|(end))\b\p{space}*([^\;\!\n]+)?(?=[\;\!\n])/dgiv,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:/(?!\p{space}*[\;\!\n])/dgvy,comment:"Rest of the first line in function construct.",end:/(?=[\;\!\n])/dgv,name:"meta.function.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#result-statement"},{include:"#language-binding-attribute"}]},{begin:/(?!\b(?:end\p{space}*[\;\!\n]|end\p{space}*function\b))/dgiv,comment:"Specification and execution block.",end:/(?=\b(?:end\p{space}*[\;\!\n]|end\p{space}*function\b))/dgiv,name:"meta.block.specification.function.fortran",patterns:[{begin:/\b(contains)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:/(?=(?:end\p{space}*[\;\!\n]|end\p{space}*function\b))/dgiv,name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]}]},"generic-interface-block-construct":{begin:/\b(interface)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.interface.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.interface.generic.fortran",patterns:[{begin:/\p{space}*\b(assignment)\p{space}*(\()\p{space}*(?:(=)|(\P{space}[^\n]*))\p{space}*(\))/dgivy,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:/\b(end\p{space}*interface)\b(?:\p{space}*\b(\1)\b\p{space}*(\()\p{space}*(?:(\3)|(\P{space}[^\n]*))\p{space}*(\)))?/dgiv,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:/\p{space}*\b(operator)\p{space}*(\()\p{space}*(?:(\.[a-z]+\.|==|\/=|>=|>|<|<=|-|\+|\/|\/\/|\*\*|\*)|(\P{space}[^\n]*))\p{space}*(\))/dgivy,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:/\b(end\p{space}*interface)\b(?:\p{space}*\b(\1)\b\p{space}*(\()\p{space}*(?:(\3)|(\P{space}[^\n]*))\p{space}*(\)))?/dgiv,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:/\p{space}*\b(?:(read)|(write))\p{space}*(\()\p{space}*(?:(formatted)|(unformatted)|(\P{space}[^\n]*))\p{space}*(\))/dgivy,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:/\b(end\p{space}*interface)\b(?:\p{space}*\b(?:((?!))|((?!)))\b\p{space}*(\()\p{space}*(?:(\4)|((?!))|(\P{space}[^\n]*))\p{space}*(\)))?/dgiv,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:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgivy,beginCaptures:{"1":{name:"entity.name.function.fortran"}},comment:"Generic interface.",end:/\b(end\p{space}*interface)\b(?:\p{space}*\b(\1)\b)?/dgiv,endCaptures:{"1":{name:"keyword.control.endinterface.fortran"},"2":{name:"entity.name.function.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]}]},"goto-statement":{begin:/\p{space}*\b(go\p{space}*to)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.goto.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.control.goto.fortran",patterns:[{include:"$base"}]},"if-construct":{patterns:[{begin:/\b(if)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.if.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"#logical-control-expression"},{begin:/\p{space}*\b(then)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.then.fortran"}},contentName:"meta.block.if.fortran",end:/\b(end\p{space}*if)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endif.fortran"}},patterns:[{begin:/\b(else\p{space}*if)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.elseif.fortran"}},comment:"else if statement",end:/(?=[\;\!\n])/dgv,patterns:[{include:"#parentheses"},{captures:{"1":{name:"keyword.control.then.fortran"},"2":{name:"meta.label.elseif.fortran"}},comment:"capture the label if present",match:/\b(then)\b(\p{space}*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgiv},{include:"#invalid-word"}]},{begin:/\b(else)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.else.fortran"}},comment:"else block",end:/(?=\b(end\p{space}*if)\b)/dgiv,patterns:[{begin:/(?!(\p{space}*(;|!|\n)))/dgv,comment:"rest of else line",end:/(?=[\;\!\n])/dgv,patterns:[{captures:{"1":{name:"meta.label.else.fortran"},"2":{name:"invalid.error.label.else.fortran"}},comment:"capture the label if present",match:/\p{space}*([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)?\p{space}*\b([\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv},{include:"#invalid-word"}]},{begin:/(?!\b(end\p{space}*if)\b)/dgiv,end:/(?=\b(end\p{space}*if)\b)/dgiv,patterns:[{include:"$base"}]}]},{include:"$base"}]},{begin:/(?=\p{space}*[a-z])/dgiv,end:/(?=[\;\!\n])/dgv,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:/\b(implicit)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.implicit.fortran"}},end:/(?=[\;\!\n])/dgv,name:"meta.statement.implicit.fortran",patterns:[{captures:{"1":{name:"keyword.other.none.fortran"}},match:/\p{space}*\b(none)\b/dgiv},{include:"$base"}]},"import-statement":{begin:/\b(import)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.include.fortran",patterns:[{begin:/\p{space}*(?:(::)|(?=[a-z]))/dgivy,beginCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"#name-list"}]},{begin:/\p{space}*(,)/dgvy,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{captures:{"1":{name:"keyword.other.all.fortran"}},match:/\p{space}*\b(all)\b/dgivy},{captures:{"1":{name:"keyword.other.none.fortran"}},match:/\p{space}*\b(none)\b/dgivy},{begin:/\p{space}*\b(only)\p{space}*(:)/dgivy,beginCaptures:{"1":{name:"keyword.other.only.fortran"},"2":{name:"keyword.other.colon.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"#name-list"}]},{include:"#invalid-word"}]}]},"include-statement":{begin:/\b(include)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.include.fortran",patterns:[{include:"#string-constant"},{include:"#invalid-character"}]},"intent-attribute":{begin:/\p{space}*\b(intent)\p{space}*(\()/dgiv,beginCaptures:{"1":{name:"storage.modifier.intent.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(\))|(?=[\;\!\n])/dgv,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:/\b(?:(in\p{space}*out)|(in)|(out))\b/dgiv},{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:/(?=[^'"\;\!\n]*\bprocedure\b)/dgiv,comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.procedure.fortran",patterns:[{begin:/(?=\p{space}*(?!\bprocedure\b))/dgiv,comment:"Attribute list.",end:/(?=\bprocedure\b)/dgiv,name:"meta.attribute-list.interface.fortran",patterns:[{include:"#module-attribute"},{include:"#invalid-word"}]},{begin:/\p{space}*\b(procedure)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.procedure.fortran"}},comment:"Procedure statement.",end:/(?=[\;\!\n])/dgv,patterns:[{captures:{"1":{name:"keyword.operator.double-colon.fortran"}},match:/\p{space}*(::)/dgvy},{include:"#procedure-name-list"}]}]},"intrinsic-attribute":{captures:{"1":{name:"storage.modifier.intrinsic.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:/\p{space}*\b(intrinsic)\b/dgiv},"intrinsic-functions":{patterns:[{begin:/\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)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"support.function.intrinsic.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 2008 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\b(bessel_[jy][01n]|erf(c(_scaled)?)?|gamma|log_gamma)\p{space}*(?=\()/dgiv,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\b(command_argument_count|extends_type_of|is_iostat_end|is_iostat_eor|new_line|same_type_as|selected_char_kind)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"support.function.intrinsic.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 2003 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\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))\p{space}*(?=\()/dgiv,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\b(ieee_support_(flag|halting))\p{space}*(?=\()/dgiv,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\b(c_(associated|funloc|loc|sizeof))\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"support.function.intrinsic.fortran"}},comment:"Functions accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\b(compiler_(options|version))\p{space}*(?=\()/dgiv,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\b(null)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"support.function.intrinsic.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 1995 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\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)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"support.function.intrinsic.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 1990 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\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)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"support.function.intrinsic.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 1977 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]}]},"intrinsic-subroutines":{patterns:[{begin:/\p{space}*\b(date_and_time|mvbits|random_number|random_seed|system_clock)\p{space}*(?=\()/dgivy,beginCaptures:{"1":{name:"entity.name.function.subroutine.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic subroutines introduced in the Fortran 1990 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\p{space}*\b(cpu_time)\p{space}*(?=\()/dgivy,beginCaptures:{"1":{name:"entity.name.function.subroutine.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic subroutines introduced in the Fortran 1995 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\p{space}*\b(ieee_(get|set)_(rounding|underflow)_mode)\p{space}*(?=\()/dgivy,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\p{space}*\b(ieee_(get|set)_(flag|halting_mode|status))\p{space}*(?=\()/dgivy,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\p{space}*\b(c_f_(pointer|procpointer))\p{space}*(?=\()/dgivy,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]},{begin:/\p{space}*\b(execute_command_line|get_command|get_command_argument|get_environment_variable|move_alloc)\p{space}*(?=\()/dgivy,beginCaptures:{"1":{name:"entity.name.function.subroutine.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic subroutines introduced in the Fortran 2008 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#parentheses-dummy-variables"}]}]},"invalid-character":{match:/[^\p{space}\;\!\n]+/dgv,name:"invalid.error.character.fortran"},"invalid-word":{match:/\b[\p{L}\p{M}\p{N}\p{Pc}]+\b/dgv,name:"invalid.error.word.fortran"},"language-binding-attribute":{begin:/\p{space}*\b(bind)\p{space}*\(/dgiv,beginCaptures:{"1":{name:"storage.modifier.bind.fortran"}},comment:"Introduced in Fortran 2003 standard.",end:/(?:\)|(?=\n))/dgv,patterns:[{match:/\b(c)\b/dgiv,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:/(?:(?<=^|\n(?!$))|(?<=;))\p{space}*(&)/dgv},{begin:/\p{space}*(&)/dgv,beginCaptures:{"1":{name:"keyword.operator.line-continuation.fortran"}},contentName:"meta.line-continuation.fortran",end:/(?<=^|\n(?!$))(?:\p{space}*(&))?/dgv,endCaptures:{"1":{name:"keyword.operator.line-continuation.fortran"}},patterns:[{include:"#comments"},{match:/\P{space}[^\!]*/dgv,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:/\p{space}*(?:(\.false\.)|(\.true\.))/dgiv},"logical-control-expression":{begin:/(?=\p{space}*\()/dgvy,end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.expression.control.logical.fortran",patterns:[{include:"#parentheses"}]},"logical-operators":{patterns:[{comment:"Introduced in the Fortran 1977 standard.",match:/(\p{space}*\.(and|eq|eqv|le|lt|ge|gt|ne|neqv|not|or)\.)/dgiv,name:"keyword.logical.fortran"},{comment:"Introduced in the Fortran 1990 standard.",match:/(==|\/=|>=|(?<!=)>|<=|<)/dgv,name:"keyword.logical.fortran.modern"}]},"logical-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:/\b(logical)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"storage.type.logical.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\b(logical)\b(?:\p{space}*(\*)\p{space}*(\p{Nd}*))?/dgiv}]},"module-attribute":{captures:{"1":{name:"storage.modifier.module.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:/\p{space}*\b(module)\b(?=\p{space}*(?:[\;\!\n]|[^'"\;\!\n]*\b(?:function|procedure|subroutine)\b))/dgiv},"module-definition":{begin:/(?=\b(module)\b)(?![^'"\;\!\n]*\b(?:function|procedure|subroutine)\b)/dgiv,comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.module.fortran",patterns:[{captures:{"1":{name:"keyword.other.program.fortran"}},match:/\p{space}*\b(module)\b/dgivy},{applyEndPatternLast:1,begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv,beginCaptures:{"1":{name:"entity.name.class.module.fortran"}},comment:"Module body.",end:/\b(?:(end\p{space}*module)(?:\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*))?|(end))\b\p{space}*([^\;\!\n]+)?(?=[\;\!\n])/dgiv,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:/(?:)/dgv,comment:"Module specification block.",end:/(?=\b(?:end\p{space}*[\;\!\n]|end\p{space}*module\b))/dgiv,name:"meta.block.specification.module.fortran",patterns:[{begin:/\b(contains)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.contains.fortran"}},comment:"Module contains block.",end:/(?=\p{space}*(?:end\p{space}*[\;\!\n]|end\p{space}*module\b))/dgiv,name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"name-list":{begin:/(?=\p{space}*[a-z])/dgiv,comment:"Name list.",contentName:"meta.name-list.fortran",end:/(?=[\)\;\!\n])/dgv,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:/([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(:)(?=\p{space}*(?:associate|block(?!\p{space}*data)|critical|do|forall|if|select\p{space}*case|select\p{space}*type|select\p{space}*rank|where)\b)/dgiv,comment:"Introduced in the Fortran 1990 standard.",contentName:"meta.named-construct.fortran.modern",end:/(?!\p{space}*\b(?:associate|block(?!\p{space}*data)|critical|do|forall|if|select\p{space}*case|select\p{space}*type|select\p{space}*rank|where)\b)(?:\b((?!))\b)?([^\p{space}\;\!\n]*?)?(?=\p{space}*[\;\!\n])/dgiv,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:/\b(namelist)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.namelist.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,patterns:[{include:"$base"}]},"non-intrinsic-attribute":{captures:{"1":{name:"storage.modifier.non-intrinsic.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:/\p{space}*\b(non_intrinsic)\b/dgiv},"non-overridable-attribute":{captures:{"1":{name:"storage.modifier.non-overridable.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:/\p{space}*\b(non_overridable)\b/dgiv},"nopass-attribute":{captures:{"1":{name:"storage.modifier.nopass.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:/\p{space}*\b(nopass)\b/dgiv},"nullify-statement":{begin:/\b(nullify)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"keyword.control.nullify.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.nullify.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"numeric-constant":{comment:"Numeric constants",match:/[\+\-]?(\b\p{Nd}+\.?\p{Nd}*|\.\p{Nd}+)(_[\p{L}\p{M}\p{N}\p{Pc}]+|d[\+\-]?\p{Nd}+|e[\+\-]?\p{Nd}+(_[\p{L}\p{M}\p{N}\p{Pc}]+)?)?(?![a-z_])/dgiv,name:"constant.numeric.fortran"},"numeric-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:/\b(?:(complex)|(double\p{space}*precision)|(double\p{space}*complex)|(integer)|(real))\p{space}*(?=\()/dgiv,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:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\b(?:(complex)|(double\p{space}*precision)|(double\p{space}*complex)|(integer)|(real)|(dimension))\b(?:\p{space}*(\*)\p{space}*(\p{Nd}*))?/dgiv}]},"operator-keyword":{begin:/\p{space}*\b(operator)\p{space}*(\()/dgiv,beginCaptures:{"1":{name:"keyword.control.generic-spec.operator.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Operator generic specification.",end:/(\))/dgv,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:/\p{space}*\b(optional)\b/dgiv},"parameter-attribute":{captures:{"1":{name:"storage.modifier.parameter.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:/\p{space}*\b(parameter)\b/dgiv},parentheses:{begin:/\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.parentheses.left.fortran"}},end:/(\))/dgv,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:/\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.parentheses.left.fortran"}},end:/(\))/dgv,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:/\p{space}*\b(pass)\p{space}*\(/dgiv,beginCaptures:{"1":{name:"storage.modifier.pass.fortran"}},comment:"Pass attribute with argument.",end:/\)|(?=\n)/dgv,patterns:[]},{captures:{"1":{name:"storage.modifier.pass.fortran"}},comment:"Pass attribute without argument.",match:/\p{space}*\b(pass)\b/dgiv}]},"pause-statement":{begin:/\p{space}*\b(pause)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.pause.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,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:/\p{space}*\b(pointer)\b/dgiv},"pointer-operators":{comment:"Introduced in the Fortran 1990 standard.",match:/(=>)/dgv,name:"keyword.other.point.fortran"},preprocessor:{begin:/(?<=^|\n(?!$))\p{space}*(#:?)/dgv,beginCaptures:{"1":{name:"keyword.control.preprocessor.indicator.fortran"}},end:/\n/dgv,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:/(-)|(\+)|(\/)|(\*)/dgv},"preprocessor-assignment-operator":{comment:"assignments with = are not allowed",match:/(?<!=)(=)(?!=)/dgv,name:"keyword.operator.assignment.preprocessor.fortran"},"preprocessor-comments":{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.preprocessor"},"preprocessor-constants":{patterns:[{include:"#cpp-numeric-constant"},{include:"#preprocessor-string-constant"}]},"preprocessor-define-statement":{begin:/\p{space}*\b(define)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.define.fortran"}},end:/(?=\n)/dgv,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:/\b(defined)\b/dgiv},"preprocessor-error-statement":{begin:/\p{space}*(error)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.error.fortran"}},end:/(?=\n)/dgv,name:"meta.preprocessor.macro.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-string-constant"},{include:"#preprocessor-line-continuation-operator"}]},"preprocessor-if-construct":{patterns:[{begin:/\p{space}*\b(if)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.if.fortran"}},end:/(?=\n)/dgv,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:/\p{space}*\b(ifdef)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.ifdef.fortran"}},end:/(?=\n)/dgv,patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"},{include:"#preprocessor-line-continuation-operator"}]},{begin:/\p{space}*\b(ifndef)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.ifndef.fortran"}},end:/(?=\n)/dgv,patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"},{include:"#preprocessor-line-continuation-operator"}]},{begin:/\p{space}*\b(else)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.else.fortran"}},end:/(?=\n)/dgv,patterns:[{include:"#preprocessor-comments"},{include:"#cpp-numeric-constant"}]},{begin:/\p{space}*\b(elif)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.elif.fortran"}},end:/(?=\n)/dgv,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:/\p{space}*\b(endif)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.endif.fortran"}},end:/(?=\n)/dgv,patterns:[{include:"#preprocessor-comments"}]}]},"preprocessor-include-statement":{begin:/\p{space}*(include)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.include.fortran"}},end:/(?=\n)/dgv,name:"meta.preprocessor.include.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-string-constant"},{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.preprocessor.fortran"}},end:/>/dgv,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:/\p{space}*(\\)/dgv,beginCaptures:{"1":{name:"constant.character.escape.line-continuation.preprocessor.fortran"}},end:/(?<=^|\n(?!$))/dgv},"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:/(&&)|(==)|(!=)|(\|\|)|(<=)|(>=)|(<)|(>)|(~)|(\^)|(&)|(!)|(\|)/dgv,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:/\p{space}*\b(pragma)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.pragma.fortran"}},end:/(?=\n)/dgv,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:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Double quote string",end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.double.include.preprocessor.fortran"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Single quote string",end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.single.include.preprocessor.fortran"}]},"preprocessor-undefine-statement":{begin:/\p{space}*\b(undef)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.preprocessor.undef.fortran"}},end:/(?=\n)/dgv,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:/\p{space}*\b(private)\b/dgiv},"procedure-call-dummy-variable":{match:/\p{space}*([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)(?=\p{space}*=)(?!\p{space}*==)/dgiv,name:"variable.parameter.dummy-variable.fortran.modern"},"procedure-definition":{begin:/(?=[^'"\;\!\n]*\bmodule\p{space}+procedure\b)/dgiv,comment:"Procedure program unit. Introduced in the Fortran 2008 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.procedure.fortran",patterns:[{begin:/\p{space}*\b(module\p{space}+procedure)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.procedure.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgivy,beginCaptures:{"1":{name:"entity.name.function.procedure.fortran"}},comment:"Procedure body.",end:/\p{space}*\b(?:(end\p{space}*procedure)(?:\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*))?|(end))\b\p{space}*([^\;\!\n]+)?(?=[\;\!\n])/dgiv,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:/(?!\p{space}*[\;\!\n])/dgvy,comment:"Rest of the first line in procedure construct - should be empty.",end:/(?=[\;\!\n])/dgv,name:"meta.first-line.fortran",patterns:[{include:"#invalid-character"}]},{begin:/(?!\p{space}*(?:contains\b|end\p{space}*[\;\!\n]|end\p{space}*procedure\b))/dgiv,comment:"Specification and execution block.",end:/(?=\p{space}*(?:contains\b|end\p{space}*[\;\!\n]|end\p{space}*procedure\b))/dgiv,name:"meta.block.specification.procedure.fortran",patterns:[{include:"$self"}]},{begin:/\p{space}*(contains)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:/(?=\p{space}*(?:end\p{space}*[\;\!\n]|end\p{space}*procedure\b))/dgiv,name:"meta.block.contains.fortran",patterns:[{include:"$self"}]}]}]}]},"procedure-name":{captures:{"1":{name:"entity.name.function.procedure.fortran"}},comment:"Procedure name.",match:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv},"procedure-name-list":{begin:/(?=\p{space}*[a-z])/dgiv,comment:"Name list.",contentName:"meta.name-list.fortran",end:/(?=[\;\!\n])/dgv,patterns:[{begin:/(?!\p{space}*\n)/dgv,end:/(,)|(?=[\!\;\n])/dgv,endCaptures:{"1":{name:"punctuation.comma.fortran"}},patterns:[{include:"#procedure-name"},{include:"#pointer-operators"}]}]},"procedure-specification-statement":{begin:/(?=\bprocedure\b)/dgiv,comment:"Introduced in the Fortran 2003 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:/(?=\p{space}*(,|::|\())/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.procedure.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)|(?<=^|\n(?!$))|(?<=&)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\&\;\!\n])/dgv,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:/\b(procedure)\p{space}*(\()/dgiv,beginCaptures:{"1":{name:"storage.type.procedure.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#types"},{include:"#procedure-name"}]},{captures:{"1":{name:"storage.type.procedure.fortran"}},match:/\b(procedure)\b/dgiv}]},"program-definition":{begin:/(?=\b(program)\b)/dgiv,comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.program.fortran",patterns:[{captures:{"1":{name:"keyword.control.program.fortran"}},match:/\p{space}*\b(program)\b/dgivy},{applyEndPatternLast:1,begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv,beginCaptures:{"1":{name:"entity.name.program.fortran"}},comment:"Program body.",end:/\b(?:(end\p{space}*program)(?:\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*))?|(end))\b\p{space}*([^\;\!\n]+)?(?=[\;\!\n])/dgiv,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:/(?:)/dgv,comment:"Program specification block.",end:/(?=\b(?:end\p{space}*[\;\!\n]|end\p{space}*program\b))/dgiv,name:"meta.block.specification.program.fortran",patterns:[{begin:/\b(contains)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.contains.fortran"}},comment:"Program contains block.",end:/(?=(?:end\p{space}*[\;\!\n]|end\p{space}*program\b))/dgiv,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:/\p{space}*\b(protected)\b/dgiv},"public-attribute":{captures:{"1":{name:"storage.modifier.public.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:/\p{space}*\b(public)\b/dgiv},"pure-attribute":{captures:{"1":{name:"storage.modifier.impure.fortran"},"2":{name:"storage.modifier.pure.fortran"}},comment:"Introduced in the Fortran 1995 standard.",match:/\p{space}*\b(?:(impure)|(pure))\b/dgiv},"recursive-attribute":{captures:{"1":{name:"storage.modifier.non_recursive.fortran"},"2":{name:"storage.modifier.recursive.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:/\p{space}*\b(?:(non_recursive)|(recursive))\b/dgiv},"result-statement":{begin:/\p{space}*\b(result)\p{space}*(\()/dgiv,beginCaptures:{"1":{name:"keyword.control.result.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#dummy-variable"}]},"return-statement":{begin:/\p{space}*\b(return)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.return.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,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:/\p{space}*\b(save)\b/dgiv},"select-case-construct":{begin:/\b(select\p{space}*case)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.selectcase.fortran"}},comment:"Select case construct. Introduced in the Fortran 1990 standard.",end:/\b(end\p{space}*select)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.case.fortran",patterns:[{include:"#parentheses"},{begin:/\b(case)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.case.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{captures:{"1":{name:"keyword.control.default.fortran"}},match:/\p{space}*\b(default)\b/dgivy},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-rank-construct":{begin:/\b(select\p{space}*rank)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.selectrank.fortran"}},comment:"Select rank construct. Introduced in the Fortran 2008 standard.",end:/\b(end\p{space}*select)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.rank.fortran",patterns:[{include:"#parentheses"},{begin:/\b(rank)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.rank.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{captures:{"1":{name:"keyword.control.default.fortran"}},match:/\p{space}*\b(default)\b/dgivy},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-type-construct":{begin:/\b(select\p{space}*type)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.selecttype.fortran"}},comment:"Select type construct. Introduced in the Fortran 2003 standard.",end:/\b(end\p{space}*select)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.type.fortran",patterns:[{include:"#parentheses"},{begin:/\b(?:(class)|(type))\b/dgiv,beginCaptures:{"1":{name:"keyword.control.class.fortran"},"2":{name:"keyword.control.type.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{captures:{"1":{name:"keyword.control.default.fortran"}},match:/\p{space}*\b(default)\b/dgivy},{captures:{"1":{name:"keyword.control.is.fortran"}},match:/\p{space}*\b(is)\b/dgivy},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"sequence-attribute":{captures:{"1":{name:"storage.modifier.sequence.fortran"}},comment:"Introduced in the Fortran 20?? standard.",match:/\p{space}*\b(sequence)\b/dgiv},"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:/\p{space}*\b(stop)\b(?:\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b)?/dgiv,beginCaptures:{"1":{name:"keyword.control.stop.fortran"},"2":{name:"meta.label.stop.stop"}},comment:"Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,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:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.single.fortran",patterns:[{match:/''/dgv,name:"constant.character.escape.apostrophe.fortran"}]},{applyEndPatternLast:1,begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.double.fortran",patterns:[{match:/""/dgv,name:"constant.character.escape.quote.fortran"}]}]},"string-line-continuation-operator":{begin:/(&)(?=\p{space}*\n)/dgv,beginCaptures:{"1":{name:"keyword.operator.line-continuation.fortran"}},comment:"Operator that allows a line to be continued on the next line.",end:/(?<=^|\n(?!$))(?:(?=\p{space}*[^\p{space}\!\&])|\p{space}*(&))/dgv,endCaptures:{"1":{name:"keyword.operator.line-continuation.fortran"}},patterns:[{include:"#comments"},{match:/\P{space}[^\n]*/dgv,name:"invalid.error.string-line-cont.fortran"}]},"string-operators":{comment:"Introduced in the Fortran 19?? standard.",match:/(\/\/)/dgv,name:"keyword.other.concatination.fortran"},"submodule-definition":{begin:/(?=\b(submodule)\p{space}*\()/dgiv,comment:"Introduced in the Fortran 2008 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.submodule.fortran",patterns:[{begin:/\p{space}*\b(submodule)\p{space}*(\()\p{space}*([\p{L}\p{M}\p{N}\p{Pc}]+)/dgivy,beginCaptures:{"1":{name:"keyword.other.submodule.fortran"},"2":{name:"punctuation.parentheses.left.fortran"},"3":{name:"entity.name.class.submodule.fortran"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parentheses.left.fortran"}},patterns:[]},{applyEndPatternLast:1,begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv,beginCaptures:{"1":{name:"entity.name.module.submodule.fortran"}},comment:"Submodule body.",end:/\p{space}*\b(?:(end\p{space}*submodule)(?:\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*))?|(end))\b\p{space}*([^\;\!\n]+)?(?=[\;\!\n])/dgiv,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:/(?:)/dgv,comment:"Submodule specification block.",end:/(?=\b(?:end\p{space}*[\;\!\n]|end\p{space}*submodule\b))/dgiv,name:"meta.block.specification.submodule.fortran",patterns:[{begin:/\b(contains)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.contains.fortran"}},comment:"Submodule contains block.",end:/(?=\p{space}*(?:end\p{space}*[\;\!\n]|end\p{space}*submodule\b))/dgiv,name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"subroutine-definition":{begin:/(?=([^\:'"\;\!\n](?!\bend))*\bsubroutine\b)/dgiv,comment:"Subroutine program unit. Introduced in the Fortran 1977 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.subroutine.fortran",patterns:[{begin:/(?=\p{space}*(?!\bsubroutine\b))/dgiv,comment:"Attribute list.",end:/(?=\bsubroutine\b)/dgiv,name:"meta.attribute-list.subroutine.fortran",patterns:[{include:"#elemental-attribute"},{include:"#module-attribute"},{include:"#pure-attribute"},{include:"#recursive-attribute"},{include:"#invalid-word"}]},{begin:/\p{space}*\b(subroutine)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.subroutine.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgivy,beginCaptures:{"1":{name:"entity.name.function.subroutine.fortran"}},comment:"Subroutine body.",end:/\b(?:(end\p{space}*subroutine)(?:\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*))?|(end))\b\p{space}*([^\;\!\n]+)?(?=[\;\!\n])/dgiv,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:/(?!\p{space}*[\;\!\n])/dgvy,comment:"Rest of the first line in subroutine construct.",end:/(?=[\;\!\n])/dgv,name:"meta.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#language-binding-attribute"}]},{begin:/(?!\b(?:end\p{space}*[\;\!\n]|end\p{space}*subroutine\b))/dgiv,comment:"Specification and execution block.",end:/(?=\b(?:end\p{space}*[\;\!\n]|end\p{space}*subroutine\b))/dgiv,name:"meta.block.specification.subroutine.fortran",patterns:[{begin:/\b(contains)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:/(?=(?:end\p{space}*[\;\!\n]|end\p{space}*subroutine\b))/dgiv,name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]}]},"sync-all-statement":{begin:/\b(sync all|sync memory)(\p{space}*(?=\())?/dgiv,beginCaptures:{"1":{name:"keyword.control.sync-all-memory.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),endCaptures:{"1":{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.sync-all-memory.fortran",patterns:[{include:"#parentheses-dummy-variables"}]},"sync-statement":{begin:/\b(sync images|sync team)\p{space}*(?=\()/dgiv,beginCaptures:{"1":{name:"keyword.control.sync-images-team.fortran"},"2":{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\p{space}*\b(target)\b/dgiv},"type-specification-statements":{begin:/(?=\b(?:character|class|complex|double\p{space}*precision|double\p{space}*complex|integer|logical|real|type|dimension)\b(?![^'"\;\!\n\:]*\bfunction\b))/dgiv,comment:"Supported types for function and escape :: if function is used as a variable name (which is bad practice).",end:/(?=[\)\;\!\n])/dgv,name:"meta.specification.type.fortran",patterns:[{include:"#types"},{begin:/(?=\p{space}*(,|::))/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.type-specification-statements.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)|(?<=^|\n(?!$))|(?<=&)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\&\;\!\n])/dgv,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:/\b(use)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.use.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:/(?=[\;\!\n])/dgv,name:"meta.statement.use.fortran",patterns:[{begin:/(?=\p{space}*(,|::|\())/dgv,comment:"Attribute list.",contentName:"meta.attribute-list.namelist.fortran",end:/(::)|(?=[\;\!\n])/dgv,endCaptures:{"1":{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:/(,)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\,\;\!\n])/dgv,patterns:[{include:"#intrinsic-attribute"},{include:"#non-intrinsic-attribute"},{include:"#invalid-word"}]}]},{begin:/\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv,beginCaptures:{"1":{name:"entity.name.class.module.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{begin:/(,)/dgv,beginCaptures:{"1":{name:"punctuation.comma.fortran"}},end:/(?=::|[\;\!\n])/dgv,patterns:[{begin:/\p{space}*\b(only\p{space}*:)/dgiv,beginCaptures:{"1":{name:"keyword.control.only.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"#operator-keyword"},{include:"$base"}]},{begin:/(?=\p{space}*[a-z])/dgiv,contentName:"meta.name-list.fortran",end:/(?=[\;\!\n])/dgv,patterns:[{include:"#operator-keyword"},{include:"$base"}]}]}]}]},"user-defined-operators":{captures:{"1":{name:"keyword.operator.user-defined.fortran"}},match:/\p{space}*(\.[a-z]+\.)/dgiv},"value-attribute":{captures:{"1":{name:"storage.modifier.value.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:/\p{space}*\b(value)\b/dgiv},variable:{applyEndPatternLast:1,begin:/\b(?=[a-z])/dgiv,end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),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:/\p{space}*\b(volatile)\b/dgiv},"where-construct":{patterns:[{applyEndPatternLast:1,begin:/\b(where)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.where.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{include:"#logical-control-expression"},{begin:/(?<=\))(?=\p{space}*[\;\!\n])/dgv,end:/\b(end\p{space}*where)\b/dgiv,endCaptures:{"1":{name:"keyword.control.endwhere.fortran"}},name:"meta.block.where.fortran",patterns:[{begin:/\p{space}*\b(else\p{space}*where)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.elsewhere.fortran"}},end:/(?=[\;\!\n])/dgv,patterns:[{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},{begin:/(?<=\))(?!\p{space}*[\;\!\n])/dgv,end:/\n/dgv,name:"meta.statement.control.where.fortran",patterns:[{include:"$base"}]}]}]},"while-attribute":{begin:/\p{space}*\b(while)\b/dgivy,beginCaptures:{"1":{name:"keyword.control.while.fortran"}},comment:"Introduced in the Fortran 1995 standard.",end:/(?=[\;\!\n])/dgv,patterns:[{include:"#parentheses"},{include:"#invalid-word"}]},word:{patterns:[{match:/(?:|(?<=%))\p{space}*\b([a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgiv}]}},scopeName:"source.fortran.free",embeddedLangs:undefined,aliases:["f90","f95","f03","f08","f18"]})
|
|
4
|
+
|
|
5
|
+
export default [
|
|
6
|
+
lang
|
|
7
|
+
]
|
package/dist/fs.d.mts
ADDED
package/dist/fs.mjs
ADDED
package/dist/fsharp.mjs
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import markdown from './markdown.mjs'
|
|
2
|
+
|
|
3
|
+
const lang = Object.freeze({displayName:"F#",name:"fsharp",patterns:[{include:"#compiler_directives"},{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#definition"},{include:"#abstract_definition"},{include:"#attributes"},{include:"#modules"},{include:"#anonymous_functions"},{include:"#du_declaration"},{include:"#record_declaration"},{include:"#records"},{include:"#strp_inlined"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}],repository:{abstract_definition:{begin:/\b(static\p{space}+)?(abstract)\p{space}+(member)?(\p{space}+\[<[^\n]*>\])?\p{space}*([_A-Za-z0-9\,\._\`\p{space}]+)(<)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"keyword.fsharp"},"4":{name:"support.function.attribute.fsharp"},"5":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(with)\b|=|(?=$|\n)/dgv,endCaptures:{"1":{name:"keyword.fsharp"}},name:"abstract.definition.fsharp",patterns:[{include:"#comments"},{include:"#common_declaration"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}},match:/(\??)([A-Za-z0-9'\`\^\._ ]+)\p{space}*(:)((?!with\b)\b([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._ ]+))?/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:/(?!with|get|set\b)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{include:"#keywords"}]},anonymous_functions:{patterns:[{begin:/\b(fun)\b/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/(->)/dgv,endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},name:"function.anonymous",patterns:[{include:"#comments"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(?=(->))/dgv,endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#variables"}]}]},anonymous_record_declaration:{begin:/(\{\|)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\|\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"}},match:/[A-Za-z0-9'\`\^_ ]+(:)/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([A-Za-z0-9'\`\^_ ]+)/dgv},{include:"#anonymous_record_declaration"},{include:"#keywords"}]},attributes:{patterns:[{begin:/\[</dgv,end:/>\]|\]/dgv,name:"support.function.attribute.fsharp",patterns:[{include:"$self"}]}]},cexprs:{patterns:[{captures:{"0":{name:"keyword.fsharp"}},match:/\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\p{space}*\{)/dgv,name:"cexpr.fsharp"}]},chars:{patterns:[{captures:{"1":{name:"string.quoted.single.fsharp"}},match:/('\\?[^\n]')/dgv,name:"char.fsharp"}]},comments:{patterns:[{beginCaptures:{"1":{name:"comment.block.fsharp"}},match:/(\(\*{3}[^\n]*\*{3}\))/dgv,name:"comment.literate.command.fsharp"},{begin:/(?<=^|\n(?!$))\p{space}*(\(\*\*(?!\)))((?!\*\))[^\n])*(?=$|\n)/dgv,beginCaptures:{"1":{name:"comment.block.fsharp"}},endCaptures:{"1":{name:"comment.block.fsharp"}},name:"comment.block.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:/(?<=^|\n(?!$))(?!\p{space}*(\*)+\)\p{space}*(?=$|\n))/dgv},{begin:/(\(\*(?!\)))/dgv,beginCaptures:{"1":{name:"comment.block.fsharp"}},end:/(\*+\))/dgv,endCaptures:{"1":{name:"comment.block.fsharp"}},name:"comment.block.fsharp",patterns:[{comments:"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",match:/\/\//dgv,name:"fast-capture.comment.line.double-slash.fsharp"},{comments:"Capture (*) when inside of (* *) so that it doesn't prematurely end the comment block.",match:/\(\*\)/dgv,name:"fast-capture.comment.line.mul-operator.fsharp"},{include:"#comments"}]},{captures:{"1":{name:"comment.block.fsharp"}},match:/((?<!\()(\*)+\))/dgv,name:"comment.block.markdown.fsharp.end"},{begin:/(?<![\!\%\&\+-\.\<\=\>\?\@\^\|\/])\/\/\/(?!\/)/dgv,name:"comment.line.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:/(?<![\!\%\&\+-\.\<\=\>\?\@\^\|\/])\/\/\/(?!\/)/dgv},{match:/(?<![\!\%\&\+-\.\<\=\>\?\@\^\|\/])\/\/([^\n]*(?=$|\n))/dgv,name:"comment.line.double-slash.fsharp"}]},common_binding_definition:{patterns:[{include:"#comments"},{include:"#attributes"},{begin:/(:)\p{space}*(\()\p{space}*(static member|member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))\p{space}*((?=,)|(?==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[A-Za-z0-9'\._]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{begin:/(:)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\)\p{space}*(([\?A-Za-z0-9'\`\^\._ ]*)))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(:)\p{space}*(\^[A-Za-z0-9'\._]+)\p{space}*(when)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.fsharp"}},end:/(?=:)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{captures:{"1":{name:"entity.name.type.fsharp"}},comment:"Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition",match:/([A-Za-z0-9'\^\._]+)/dgv},{match:/(\(|\))/dgv,name:"keyword.symbol.fsharp"}]},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},match:/(:)\p{space}*([\?A-Za-z0-9'\`\^\._ ]+)/dgv},{captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}},match:/(->)\p{space}*(\()?\p{space}*([\?A-Za-z0-9'\`\^\._ ]+)*/dgv},{begin:/(\*)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\)\p{space}*(([\?A-Za-z0-9'\`\^\._ ]+))*)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(\*)(\p{space}*([\?A-Za-z0-9'\`\^\._ ]+))*/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},end:/(?==)|(?=\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:/(<+(?![\p{space}]*\)))/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},beginComment:"The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",end:/((?<!:)>|\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},endComment:"The group (?<!:) prevent us from stopping on :> when using SRTP synthax",patterns:[{include:"#generic_declaration"}]},{include:"#anonymous_record_declaration"},{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#record_signature"}]},{include:"#definition"},{include:"#variables"},{include:"#keywords"}]},common_declaration:{patterns:[{begin:/\p{space}*(->)\p{space}*([A-Za-z0-9'\`\^\._ ]+)(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.symbol.fsharp"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([A-Za-z0-9'\`\^\._ ]+)/dgv},{include:"#keywords"}]},{captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"}},match:/\p{space}*(->)\p{space}*(?!with|get|set\b)\b([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{include:"#anonymous_record_declaration"},{begin:/(\??)([A-Za-z0-9'\`\^\._ ]+)\p{space}*(:)(\p{space}*([\?A-Za-z0-9'\`\^\._ ]+)(<))/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"keyword.symbol.fsharp"},"5":{name:"entity.name.type.fsharp"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([A-Za-z0-9'\`\^\._ ]+)/dgv},{include:"#keywords"}]}]},compiler_directives:{patterns:[{captures:{},match:/\p{space}?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)/dgv,name:"keyword.control.directive.fsharp"}]},constants:{patterns:[{match:/\(\)/dgv,name:"keyword.symbol.fsharp"},{match:/\b-?\p{Nd}[0-9_]*((\.(?!\.)(\p{Nd}[0-9_]*([eE][\+\-]??\p{Nd}[0-9_]*)?)?)|([eE][\+\-]??\p{Nd}[0-9_]*))/dgv,name:"constant.numeric.float.fsharp"},{match:/\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|(\p{Nd}[0-9_]*)))/dgv,name:"constant.numeric.integer.nativeint.fsharp"},{match:/\b(true|false)\b/dgv,name:"constant.language.boolean.fsharp"},{match:/\b(null|void)\b/dgv,name:"constant.other.fsharp"}]},definition:{patterns:[{begin:/\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\p{space}+rec|mutable)?(\p{space}+\[<[^\n]*>\])?\p{space}*(private|internal|public)?\p{space}+(\[[^\-\=]*\]|[_A-Za-z]([_A-Za-z0-9\._]+)*|``[_A-Za-z]([_A-Za-z0-9\._\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},end:/\p{space}*((with\b)|(=|\n+=|(?<==)))/dgv,endCaptures:{"2":{name:"keyword.fsharp"},"3":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(use|use!|and|and!)\p{space}+(\[[^\-\=]*\]|[_A-Za-z]([_A-Za-z0-9\._]+)*|``[_A-Za-z]([_A-Za-z0-9\._\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/\p{space}*(=)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/(?<=with|and)\p{space}*\b((get|set)\p{space}*(?=\())(\[[^\-\=]*\]|[_A-Za-z]([_A-Za-z0-9\._]+)*|``[_A-Za-z]([_A-Za-z0-9\._\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"4":{name:"variable.fsharp"}},end:/\p{space}*(=|\n+=|(?<==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(static val mutable|val mutable|val inline|val)(\p{space}+rec|mutable)?(\p{space}+\[<[^\n]*>\])?\p{space}*(private|internal|public)?\p{space}+(\[[^\-\=]*\]|[_A-Za-z]([_A-Za-z0-9\,\._]+)*|``[_A-Za-z]([_A-Za-z0-9\,\._\`\p{space}]+|(?<=,)\p{space})*)?/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},end:/\n(?=$|\n)/dgv,name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:/\b(new)\b\p{space}+(\()/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]}]},double_tick:{patterns:[{captures:{"1":{name:"string.quoted.single.fsharp"},"2":{name:"variable.other.binding.fsharp"},"3":{name:"string.quoted.single.fsharp"}},match:/(``)([^\`]*)(``)/dgv,name:"variable.other.binding.fsharp"}]},du_declaration:{patterns:[{begin:/\b(of)\b/dgv,beginCaptures:{"1":{name:"keyword.fsharp"}},end:/(?=$|\n)|(\|)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"du_declaration.fsharp",patterns:[{include:"#comments"},{captures:{"1":{name:"variable.parameter.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}},match:/([A-Za-z0-9'\`\<\>\^\._]+|``[A-Za-z0-9' \<\>\^\._]+``)\p{space}*(:)\p{space}*([A-Za-z0-9'\`\<\>\^\._]+|``[A-Za-z0-9' \<\>\^\._]+``)/dgv},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(``([A-Za-z0-9'\^\._ ]+)``|[A-Za-z0-9'\`\^\._]+)/dgv},{include:"#anonymous_record_declaration"},{include:"#keywords"}]}]},generic_declaration:{patterns:[{begin:/(:)\p{space}*(\()\p{space}*(static member|member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(('|\^)[A-Za-z0-9'\._]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{match:/\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let!|return!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\b/dgv,name:"keyword.fsharp"},{match:/:/dgv,name:"keyword.symbol.fsharp"},{include:"#constants"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(('|\^)[A-Za-z0-9'\._]+)/dgv},{begin:/(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(('|\^)[A-Za-z0-9'\._]+)/dgv},{include:"#tuple_signature"},{include:"#generic_declaration"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([\?A-Za-z0-9'\`\^\._ ]+))+/dgv},{include:"#tuple_signature"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words are allowed",match:/(?!when|and|or\b)\b([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{captures:{"1":{name:"keyword.symbol.fsharp"}},comments:"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",match:/(\|)/dgv},{include:"#keywords"}]},keywords:{patterns:[{match:/\b(private|public|internal)\b/dgv,name:"storage.modifier"},{match:/\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\b/dgv,name:"keyword.fsharp"},{match:/\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\b/dgv,name:"keyword.control"},{match:/(->|<-)/dgv,name:"keyword.symbol.arrow.fsharp"},{match:/[\.\?]*(&&&|\|\|\||\^\^\^|~~~|~\+|~-|<<<|>>>|\|>|:>|:\?>|:|\[|\]|;|<>|=|@|\|\||&&|&|%|\{|\}|\||_|\.\.|,|\+|-|\*|\/|\^|!|>|>=|>>|<|<=|\(|\)|<<)[\.\?]*/dgv,name:"keyword.symbol.fsharp"}]},member_declaration:{patterns:[{include:"#comments"},{include:"#common_declaration"},{begin:/(:)\p{space}*(\()\p{space}*(static member|member)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:/(\))\p{space}*((?=,)|(?==))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[A-Za-z0-9'\._]+)/dgv},{include:"#variables"},{include:"#keywords"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[A-Za-z0-9'\._]+)/dgv},{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{match:/(\(|\))/dgv,name:"keyword.symbol.fsharp"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}},match:/(\??)([A-Za-z0-9'\`\^\._]+|``[A-Za-z0-9'\`\^\:\,\._ ]+``)\p{space}*(:?)(\p{space}*([\?A-Za-z0-9'\`\<\>\._ ]+))?/dgv},{include:"#keywords"}]},modules:{patterns:[{begin:/\b(namespace global)|\b(namespace|module)\p{space}*(public|internal|private|rec)?\p{space}+([A-Za-z\|\`\`][A-Za-z0-9'_\. ]*)/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"storage.modifier.fsharp"},"4":{name:"entity.name.section.fsharp"}},end:/(\p{space}?=|\p{space}|(?=$|\n))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},name:"entity.name.section.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)([A-Z][A-Za-z0-9'_]*)/dgv,name:"entity.name.section.fsharp"}]},{begin:/\b(open type|open)\p{space}+([A-Za-z\|\`\`][A-Za-z0-9'_]*)(?=(\.[A-Z][A-Za-z0-9_]*)*)/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.section.fsharp"}},end:/(\p{space}|(?=$|\n))/dgv,name:"namespace.open.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)([A-Za-z][A-Za-z0-9'_]*)/dgv,name:"entity.name.section.fsharp"},{include:"#comments"}]},{begin:/(?<=^|\n(?!$))\p{space}*(module)\p{space}+([A-Z][A-Za-z0-9'_]*)\p{space}*(=)\p{space}*([A-Z][A-Za-z0-9'_]*)/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.type.namespace.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.section.fsharp"}},end:/(\p{space}|(?=$|\n))/dgv,name:"namespace.alias.fsharp",patterns:[{captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}},match:/(\.)([A-Z][A-Za-z0-9'_]*)/dgv,name:"entity.name.section.fsharp"}]}]},record_declaration:{patterns:[{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(?<=\})/dgv,patterns:[{include:"#comments"},{begin:/(((mutable)\p{space}[A-Za-z]+)|[A-Za-z0-9'\`\<\>\^\._]*)\p{space}*((?<!:):(?!:))\p{space}*/dgv,beginCaptures:{"3":{name:"keyword.fsharp"},"4":{name:"keyword.symbol.fsharp"}},end:/(?=$|\n)|(;|\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#comments"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([A-Za-z0-9'\`\^_ ]+)/dgv},{include:"#keywords"}]},{include:"#compiler_directives"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#definition"},{include:"#attributes"},{include:"#anonymous_functions"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}]}]},record_signature:{patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/[A-Za-z0-9'\`\^_ ]+(=)([A-Za-z0-9'\`\^_ ]+)/dgv},{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/[A-Za-z0-9'\`\^_ ]+(=)([A-Za-z0-9'\`\^_ ]+)/dgv},{include:"#record_signature"}]},{include:"#keywords"}]},records:{patterns:[{begin:/\b(type)[\p{space}]+(private|internal|public)?\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"storage.modifier.fsharp"}},end:/\p{space}*((with)|((as)\p{space}+([A-Za-z0-9']+))|(=)|[\n\=]|(\(\)))/dgv,endCaptures:{"2":{name:"keyword.fsharp"},"3":{name:"keyword.fsharp"},"4":{name:"keyword.fsharp"},"5":{name:"variable.parameter.fsharp"},"6":{name:"keyword.symbol.fsharp"},"7":{name:"keyword.symbol.fsharp"}},name:"record.fsharp",patterns:[{include:"#comments"},{include:"#attributes"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/([A-Za-z0-9'\^\._]+|``[A-Za-z0-9'\`\^\:\,\._ ]+``)/dgv},{begin:/(<)/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/((?<!:)>)/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(('|\^)``[A-Za-z0-9\`\^\:\,\._ ]+``|('|\^)[A-Za-z0-9\`\^\:\._]+)/dgv},{match:/\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\b/dgv,name:"keyword.fsharp"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"keyword.fsharp"}},match:/(static member|member|new)/dgv},{include:"#common_binding_definition"}]},{captures:{"1":{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:/([\p{L}\p{M}\p{N}\p{Pc}0-9'\`\^\._]+)/dgv},{include:"#keywords"}]},{captures:{"1":{name:"storage.modifier.fsharp"}},match:/\p{space}*(private|internal|public)/dgv},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/\p{space}*(?=(=)|[\n\=]|(\(\))|(as))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#keywords"}]}]},string_formatter:{patterns:[{captures:{"1":{name:"keyword.format.specifier.fsharp"}},match:/(%0?-?(\p{Nd}+)?((a|t)|(\.\p{Nd}+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\+?A)))/dgv,name:"entity.name.type.format.specifier.fsharp"}]},strings:{patterns:[{begin:/(?=[^\\])(@")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(")(?!")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.literal.fsharp",patterns:[{match:/"(")/dgv,name:"constant.character.string.escape.fsharp"}]},{begin:/(?=[^\\])(""")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(""")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.triple.fsharp",patterns:[{include:"#string_formatter"}]},{begin:/(?=[^\\])(")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},end:/(")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.double.fsharp",patterns:[{match:/\\(?=$|\n)[ \t]*/dgv,name:"punctuation.separator.string.ignore-eol.fsharp"},{match:/\\(['"\\abfnrtv]|([01]\p{Nd}\p{Nd}|2[0-4]\p{Nd}|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))/dgv,name:"constant.character.string.escape.fsharp"},{match:/\\((\p{Nd}{1,3})|(x[^\p{space}]{0,2})|(u[^\p{space}]{0,4})|(U[^\p{space}]{0,8})|[^\p{space}])/dgv,name:"invalid.illegal.character.string.fsharp"},{include:"#string_formatter"}]}]},strp_inlined:{patterns:[{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]}]},strp_inlined_body:{patterns:[{include:"#comments"},{include:"#anonymous_functions"},{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(\^[A-Za-z0-9'\._]+)/dgv},{match:/\b(and|when|or)\b/dgv,name:"keyword.fsharp"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]},{captures:{"1":{name:"keyword.fsharp"},"2":{name:"variable.fsharp"},"3":{name:"keyword.symbol.fsharp"}},match:/(static member|member)\p{space}*([A-Za-z0-9'\`\<\>\^\._]+|``[A-Za-z0-9' \<\>\^\._]+``)\p{space}*(:)/dgv},{include:"#compiler_directives"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#keywords"},{include:"#text"},{include:"#definition"},{include:"#attributes"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}]},text:{patterns:[{match:/\\/dgv,name:"text.fsharp"}]},tuple_signature:{patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([\?A-Za-z0-9'\`\^\._ ]+))+/dgv},{begin:/(\()/dgv,beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{captures:{"1":{name:"entity.name.type.fsharp"}},match:/(([\?A-Za-z0-9'\`\^\._ ]+))+/dgv},{include:"#tuple_signature"}]},{include:"#keywords"}]},variables:{patterns:[{match:/\(\)/dgv,name:"keyword.symbol.fsharp"},{captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}},match:/(\??)(``[A-Za-z0-9'\`\^\:\,\._ ]+``|(?!private|struct\b)\b[\p{L}\p{M}\p{N}\p{Pc}A-Za-z0-9'\`\<\>\^\._ ]+)/dgv}]}},scopeName:"source.fsharp",embeddedLangs:["markdown"],aliases:["f#","fs"]})
|
|
4
|
+
|
|
5
|
+
export default [
|
|
6
|
+
...markdown,
|
|
7
|
+
lang
|
|
8
|
+
]
|
package/dist/fsl.d.mts
ADDED
package/dist/fsl.mjs
ADDED
package/dist/ftl.d.mts
ADDED
package/dist/ftl.mjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import gdshader from './gdshader.mjs'
|
|
2
|
+
import gdscript from './gdscript.mjs'
|
|
3
|
+
|
|
4
|
+
const lang = Object.freeze({displayName:"GDResource",name:"gdresource",patterns:[{include:"#embedded_shader"},{include:"#embedded_gdscript"},{include:"#comment"},{include:"#heading"},{include:"#key_value"}],repository:{comment:{captures:{"1":{name:"punctuation.definition.comment.gdresource"}},match:/(;)[^\n]*(?=$|\n)\n?/dgv,name:"comment.line.gdresource"},data:{patterns:[{include:"#comment"},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\{)\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.table.inline.gdresource"}},end:/\p{space}*(\})(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,endCaptures:{"1":{name:"punctuation.definition.table.inline.gdresource"}},patterns:[{include:"#key_value"},{include:"#data"}]},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\[)\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.array.gdresource"}},end:/\p{space}*(\])(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,endCaptures:{"1":{name:"punctuation.definition.array.gdresource"}},patterns:[{include:"#data"}]},{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.basic.block.gdresource",patterns:[{match:/\\([btnfr"\\\n\/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/dgv,name:"constant.character.escape.gdresource"},{match:/\\[^btnfr\/"\\\n]/dgv,name:"invalid.illegal.escape.gdresource"}]},{match:/"res:\/\/[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"support.function.any-method.gdresource"},{match:/(?<=type=)"[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"support.class.library.gdresource"},{match:/(?<=NodePath\(|parent=|name=)"[^"\\]*(?:\\[^\n][^"\\]*)*"/dgv,name:"constant.character.escape.gdresource"},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.basic.line.gdresource",patterns:[{match:/\\([btnfr"\\\n\/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/dgv,name:"constant.character.escape.gdresource"},{match:/\\[^btnfr\/"\\\n]/dgv,name:"invalid.illegal.escape.gdresource"}]},{match:/'[^\n]*?'/dgv,name:"string.quoted.single.literal.line.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(true|false)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.language.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?(0|([1-9]((\p{Nd}|_\p{Nd})+)?))(?:(?:\.(0|([1-9]((\p{Nd}|_\p{Nd})+)?)))?[eE][\+\-]?[1-9]_?\p{Nd}*|\.[0-9_]*))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.float.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?(0|([1-9]((\p{Nd}|_\p{Nd})+)?)))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.integer.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?inf)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.inf.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\+\-]?nan)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.nan.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0x(([0-9a-fA-F](([0-9a-fA-F]|_[0-9a-fA-F])+)?)))(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.hex.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0o[0-7](_?[0-7])*)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.oct.gdresource"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(0b[01](_?[01])*)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.numeric.bin.gdresource"},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\()\p{space}?/dgv,beginCaptures:{"1":{name:"support.class.library.gdresource"}},end:/\p{space}?(\))/dgv,patterns:[{include:"#key_value"},{include:"#data"}]},{begin:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(ExtResource|SubResource)(\()\p{space}?/dgv,beginCaptures:{"1":{name:"keyword.control.gdresource"}},end:/\p{space}?(\))/dgv,patterns:[{include:"#key_value"},{include:"#data"}]}]},embedded_gdscript:{begin:/(script\/source) = "/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"}},comment:"meta.embedded.block.gdscript",end:/"/dgv,patterns:[{include:"source.gdscript"}]},embedded_shader:{begin:/(code) = "/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"}},end:/"/dgv,name:"meta.embedded.block.gdshader",patterns:[{include:"source.gdshader"}]},heading:{begin:/\[([a-z_]*)\p{space}?/dgv,beginCaptures:{"1":{name:"keyword.control.gdresource"}},end:/\]/dgv,patterns:[{include:"#heading_properties"},{include:"#data"}]},heading_properties:{patterns:[{match:/(\p{space}*[A-Za-z_\-][A-Za-z0-9_\-]*\p{space}*=)(?=\p{space}*(?=$|\n))/dgv,name:"invalid.illegal.noValue.gdresource"},{begin:/\p{space}*([A-Za-z_\-][^\p{space}]*|"[^\n]+"|'[^\n]+'|\p{Nd}+)\p{space}*(=)\p{space}*/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"},"2":{name:"punctuation.definition.keyValue.gdresource"}},end:/((?=$|\n)|(?==)|,?|\p{space}*(?=\}))/dgv,patterns:[{include:"#data"}]}]},key_value:{patterns:[{match:/(\p{space}*[A-Za-z_\-][A-Za-z0-9_\-]*\p{space}*=)(?=\p{space}*(?=$|\n))/dgv,name:"invalid.illegal.noValue.gdresource"},{begin:/\p{space}*([A-Za-z_\-][^\p{space}]*|"[^\n]+"|'[^\n]+'|\p{Nd}+)\p{space}*(=)\p{space}*/dgv,beginCaptures:{"1":{name:"variable.other.property.gdresource"},"2":{name:"punctuation.definition.keyValue.gdresource"}},end:/((?=$|\n)|(?==)|,|\p{space}*(?=\}))/dgv,patterns:[{include:"#data"}]}]}},scopeName:"source.gdresource",embeddedLangs:["gdshader","gdscript"],aliases:undefined})
|
|
5
|
+
|
|
6
|
+
export default [
|
|
7
|
+
...gdshader,
|
|
8
|
+
...gdscript,
|
|
9
|
+
lang
|
|
10
|
+
]
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const lang = Object.freeze({displayName:"GDScript",fileTypes:["gd"],name:"gdscript",patterns:[{include:"#statement"},{include:"#expression"}],repository:{annotated_parameter:{begin:/\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(:)\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv,beginCaptures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.annotation.gdscript"},"3":{name:"entity.name.type.class.gdscript"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"}]},annotations:{captures:{"1":{name:"entity.name.function.decorator.gdscript"},"2":{name:"entity.name.function.decorator.gdscript"}},match:/(@)(export|export_group|export_color_no_alpha|export_custom|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|export_storage|icon|onready|rpc|tool|warning_ignore|static_unload)\b/dgv},any_method:{match:/\b([A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?=\p{space}*[\(])/dgv,name:"entity.name.function.other.gdscript"},any_property:{captures:{"1":{name:"punctuation.accessor.gdscript"},"2":{name:"constant.language.gdscript"},"3":{name:"variable.other.property.gdscript"}},match:/\b(\.)\p{space}*(?<![\@\$\#\%])(?:([A-Z_][A-Z_0-9]*)|([A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*))\b(?![\(])/dgv},any_variable:{match:/\b(?<![\@\$\#\%])([A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?![\(])/dgv,name:"variable.other.gdscript"},arithmetic_operator:{match:/->|\+=|-=|\*=|\^=|\/=|%=|&=|~=|\|=|\*\*|\*|\/|%|\+|-/dgv,name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:/=/dgv,name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#builtin_classes"},{include:"#const_vars"},{include:"#keywords"},{include:"#operators"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#match_keyword"},{include:"#curly_braces"},{include:"#square_braces"},{include:"#round_braces"},{include:"#function_call"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},bitwise_operator:{match:/&|\||<<=|>>=|<<|>>|\^|~/dgv,name:"keyword.operator.bitwise.gdscript"},boolean_operator:{match:/(&&|\|\|)/dgv,name:"keyword.operator.boolean.gdscript"},builtin_classes:{match:/(?<![^\.]\.|:)\b(Vector2|Vector2i|Vector3|Vector3i|Vector4|Vector4i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|Signal|Callable|StringName|Quaternion|Projection|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedVector4Array|PackedColorArray|super)\b/dgv,name:"entity.name.type.class.builtin.gdscript"},builtin_get_node_shorthand:{patterns:[{include:"#builtin_get_node_shorthand_quoted"},{include:"#builtin_get_node_shorthand_bare"},{include:"#builtin_get_node_shorthand_bare_multi"}]},builtin_get_node_shorthand_bare:{captures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"constant.character.escape.gdscript"},"3":{name:"constant.character.escape.gdscript"},"4":{name:"constant.character.escape.gdscript"}},match:/(?<!\/\p{space}*)(\$\p{space}*|%|\$%\p{space}*)(\/\p{space}*)?([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\p{space}*\/)/dgv,name:"meta.literal.nodepath.bare.gdscript"},builtin_get_node_shorthand_bare_multi:{begin:/(\$\p{space}*|%|\$%\p{space}*)(\/\p{space}*)?([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,beginCaptures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"constant.character.escape.gdscript"},"3":{name:"constant.character.escape.gdscript"}},end:/(?!\p{space}*\/\p{space}*%?\p{space}*[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"meta.literal.nodepath.bare.gdscript",patterns:[{captures:{"1":{name:"constant.character.escape.gdscript"},"2":{name:"keyword.control.flow.gdscript"},"3":{name:"constant.character.escape.gdscript"}},match:/(\/)\p{space}*(%)?\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*/dgv}]},builtin_get_node_shorthand_quoted:{begin:/(?:(\$|%)|(&|\^|@))("|')/dgv,beginCaptures:{"1":{name:"keyword.control.flow.gdscript"},"2":{name:"variable.other.enummember.gdscript"}},end:/(\3)()()/dgv,name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape.gdscript",patterns:[{match:/%/dgv,name:"keyword.control.flow"}]},class_declaration:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:/(?<=(?<=^|\n(?!$))class)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=:)/dgv},class_enum:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"variable.other.enummember.gdscript"}},match:/\b([A-Z][a-zA-Z_0-9]*)\.([A-Z_0-9]+)/dgv},class_is:{captures:{"1":{name:"storage.type.is.gdscript"},"2":{name:"entity.name.type.class.gdscript"}},match:/\p{space}+(is)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},class_name:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:/(?<=class_name)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(\.([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*))?)/dgv},class_new:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"storage.type.new.gdscript"},"3":{name:"punctuation.parenthesis.begin.gdscript"}},match:/\b([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)[^\n](new)\(/dgv},comment:{captures:{"1":{name:"punctuation.definition.comment.number-sign.gdscript"}},match:/(##|#)[^\n]*(?=$|\n)\n?/dgv,name:"comment.line.number-sign.gdscript"},compare_operator:{match:/<=|>=|==|<|>|!=|!/dgv,name:"keyword.operator.comparison.gdscript"},const_vars:{match:/\b([A-Z_][A-Z_0-9]*)\b/dgv,name:"variable.other.constant.gdscript"},control_flow:{match:/\b(?:if|elif|else|while|break|continue|pass|return|when|yield|await)\b/dgv,name:"keyword.control.gdscript"},curly_braces:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.dict.begin.gdscript"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.dict.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},expression:{patterns:[{include:"#base_expression"},{include:"#getter_setter_godot4"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{"1":{name:"keyword.language.gdscript"},"2":{name:"entity.other.inherited-class.gdscript"}},match:/(extends)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\.[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv},func:{match:/\bfunc\b/dgv,name:"keyword.language.gdscript"},function_arguments:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:/(?=\))(?!\)\p{space}*\()/dgv,patterns:[{match:/(,)/dgv,name:"punctuation.separator.arguments.gdscript"},{captures:{"1":{name:"variable.parameter.function-call.gdscript"},"2":{name:"keyword.operator.assignment.gdscript"}},match:/\b([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)(?!=)/dgv},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{"1":{name:"punctuation.definition.arguments.end.gdscript"},"2":{name:"punctuation.definition.arguments.begin.gdscript"}},match:/\p{space}*(\))\p{space}*(\()/dgv},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:/(?=\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b\()/dgv,comment:"Regular function call of the type \"name(args)\"",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:/\p{space}*(func)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/(:)/dgv,endCaptures:{"1":{name:"punctuation.section.function.begin.gdscript"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{match:/\b(preload)\b/dgv,name:"keyword.language.gdscript"},{comment:"Some color schemas support meta.function-call.generic scope",match:/\b([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.function.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{"1":{name:"entity.name.function.gdscript"}},match:/\b(get):/dgv},{begin:/\p{space}+(set)\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"entity.name.function.gdscript"}},end:/(:|(?=[\#'"\n]))/dgv,name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]}]},in_keyword:{patterns:[{begin:/\b(for)\b/dgv,captures:{"1":{name:"keyword.control.gdscript"}},end:/:/dgv,patterns:[{match:/\bin\b/dgv,name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:/\bin\b/dgv,name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:/\b(?:class|class_name|abstract|is|onready|tool|static|export|as|void|enum|assert|breakpoint|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\b/dgv,name:"keyword.language.gdscript"},lambda_declaration:{begin:/(func)\p{space}?(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/(:|(?=[\#'"\n]))/dgv,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{"1":{name:"punctuation.separator.annotation.result.gdscript"},"2":{name:"keyword.language.void.gdscript"},"3":{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:/\b(?:true|false|null)\b/dgv,name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{"1":{name:"punctuation.separator.continuation.line.gdscript"},"2":{name:"invalid.illegal.line.continuation.gdscript"}},match:/(\\)\p{space}*(\P{space}[^\n]*(?=$|\n)\n?)/dgv},{begin:/(\\)\p{space}*(?=$|\n)\n?/dgv,beginCaptures:{"1":{name:"punctuation.separator.continuation.line.gdscript"}},end:/(?=(?<=^|\n(?!$))\p{space}*(?=$|\n))|(?!(\p{space}*[rR]?('''|"""|'|"))|((?=$|\n)))/dgv,patterns:[{include:"#base_expression"}]}]},loose_default:{begin:/(=)/dgv,beginCaptures:{"1":{name:"keyword.operator.gdscript"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"}]},match_keyword:{captures:{"1":{name:"keyword.control.gdscript"}},match:/(?<=^|\n(?!$))\n\p{space}*(match)/dgv},nodepath_function:{begin:/(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.gdscript"},"2":{name:"punctuation.definition.parameters.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.gdscript",patterns:[{begin:/("|')/dgv,end:/\1()/dgv,name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:/%/dgv,name:"keyword.control.flow"}]},{include:"#base_expression"}]},nodepath_object:{begin:/(NodePath)\p{space}*\(/dgv,beginCaptures:{"1":{name:"support.class.library.gdscript"}},end:/\)/dgv,name:"meta.literal.nodepath.gdscript",patterns:[{begin:/("|')/dgv,end:/\1()/dgv,name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:/%/dgv,name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:/0b[01_]+/dgv,name:"constant.numeric.integer.binary.gdscript"},{match:/0x[0-9A-Fa-f_]+/dgv,name:"constant.numeric.integer.hexadecimal.gdscript"},{match:/\.\p{Nd}[0-9_]*([eE][\+\-]?[0-9_]+)?/dgv,name:"constant.numeric.float.gdscript"},{match:/(\p{Nd}[0-9_]*)?\.[0-9_]*([eE][\+\-]?[0-9_]+)?/dgv,name:"constant.numeric.float.gdscript"},{match:/\p{Nd}[0-9_]*[eE][\+\-]?[0-9_]+/dgv,name:"constant.numeric.float.gdscript"},{match:/[\-]?\p{Nd}[0-9_]*/dgv,name:"constant.numeric.integer.gdscript"}]},operators:{patterns:[{include:"#wordlike_operator"},{include:"#boolean_operator"},{include:"#arithmetic_operator"},{include:"#bitwise_operator"},{include:"#compare_operator"}]},parameters:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.gdscript"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.parameters.gdscript"}},match:/([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?:(,)|(?=[\)\#\n\=]))/dgv},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:/\b([A-Z]+[a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\b/dgv,name:"entity.name.type.class.gdscript"},round_braces:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.begin.gdscript"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:/\bself\b/dgv,name:"variable.language.gdscript"},signal_declaration:{begin:/\p{space}*(signal)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},end:/((?=[\#'"\n]))/dgv,name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{"1":{name:"keyword.language.gdscript storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},match:/\p{space}*(signal)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)(?=[\n\p{space}])/dgv,name:"meta.signal.gdscript"},square_braces:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.list.begin.gdscript"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.list.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:/\b(?<!\.)(continue|assert|break|elif|else|if|pass|return|while)\b/dgv,name:"keyword.control.flow.gdscript"},{match:/\b(?<!\.)(class)\b/dgv,name:"storage.type.class.gdscript"},{captures:{"1":{name:"keyword.control.flow.gdscript"}},match:/(?<=^|\n(?!$))\p{space}*(case|match)(?=\p{space}*([\-\+\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\(\[\{'"\:\#]|(?=$|\n)))\b/dgv}]},string_bracket_placeholders:{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"},"3":{name:"storage.type.format.gdscript"},"4":{name:"storage.type.format.gdscript"}},match:/(\{\{|\}\}|\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)?\})/dgv,name:"meta.format.brace.gdscript"},{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"},"3":{name:"storage.type.format.gdscript"},"4":{name:"storage.type.format.gdscript"}},match:/(\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[A-Za-z_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:)[^'"\{\}\n]*(?:\{[^'"\}\n]*?\}[^'"\{\}\n]*)*\})/dgv,name:"meta.format.brace.gdscript"}]},string_percent_placeholders:{captures:{"1":{name:"constant.character.format.placeholder.other.gdscript"}},match:/(%(\([\p{L}\p{M}\p{N}\p{Pc}\p{space}]*\))?[\-\+\#0 ]*(\p{Nd}+|\*)?(\.(\p{Nd}+|\*))?([hlL])?[diouxXeEfFgGcrsab\%])/dgv,name:"meta.format.percent.gdscript"},strings:{begin:/(r)?("""|'''|"|')/dgv,beginCaptures:{"1":{name:"constant.character.escape.gdscript"}},end:/\2()()/dgv,name:"string.quoted.gdscript",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.gdscript"},{include:"#string_percent_placeholders"},{include:"#string_bracket_placeholders"}]},variable_declaration:{begin:/\b(?:(var)|(const))\b/dgv,beginCaptures:{"1":{name:"keyword.language.gdscript storage.type.var.gdscript"},"2":{name:"keyword.language.gdscript storage.type.const.gdscript"}},end:/(?=$|\n)|;/dgv,name:"meta.variable.declaration.gdscript",patterns:[{captures:{"1":{name:"punctuation.separator.annotation.gdscript"},"2":{name:"keyword.language.gdscript storage.type.const.gdscript"},"3":{name:"entity.name.function.gdscript"}},match:/(:)?\p{space}*(set|get)\p{space}+=\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{match:/:=|=(?!=)/dgv,name:"keyword.operator.assignment.gdscript"},{captures:{"1":{name:"punctuation.separator.annotation.gdscript"},"2":{name:"entity.name.type.class.gdscript"}},match:/(:)\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)?/dgv},{captures:{"1":{name:"keyword.language.gdscript storage.type.const.gdscript"},"2":{name:"entity.name.function.gdscript"},"3":{name:"entity.name.function.gdscript"}},match:/(setget)\p{space}+([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)(?:[\,]\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*))?/dgv},{include:"#expression"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},wordlike_operator:{match:/\b(and|or|not)\b/dgv,name:"keyword.operator.wordlike.gdscript"}},scopeName:"source.gdscript",embeddedLangs:undefined,aliases:undefined})
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
lang
|
|
5
|
+
]
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const lang = Object.freeze({displayName:"GDShader",fileTypes:["gdshader"],name:"gdshader",patterns:[{include:"#any"}],repository:{any:{patterns:[{include:"#comment"},{include:"#enclosed"},{include:"#classifier"},{include:"#definition"},{include:"#keyword"},{include:"#element"},{include:"#separator"},{include:"#operator"}]},arraySize:{begin:/\[/dgv,captures:{"0":{name:"punctuation.bracket.gdshader"}},end:/\]/dgv,name:"meta.array-size.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#element"},{include:"#separator"}]},classifier:{begin:/(?=\b(?:shader_type|render_mode)\b)/dgv,end:/(?<=;)/dgv,name:"meta.classifier.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#identifierClassification"},{include:"#separator"}]},classifierKeyword:{match:/\b(?:shader_type|render_mode)\b/dgv,name:"keyword.language.classifier.gdshader"},comment:{patterns:[{include:"#commentLine"},{include:"#commentBlock"}]},commentBlock:{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block.gdshader"},commentLine:{begin:/\/\//dgv,end:/(?=$|\n)/dgv,name:"comment.line.double-slash.gdshader"},constantFloat:{match:/\b(?:E|PI|TAU)\b/dgv,name:"constant.language.float.gdshader"},constructor:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(?=\p{space}*\[\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\]\p{space}*[\(])|\b[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*(?=\p{space}*[\(])/dgv,name:"entity.name.type.constructor.gdshader"},controlKeyword:{match:/\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\b/dgv,name:"keyword.control.gdshader"},definition:{patterns:[{include:"#structDefinition"}]},element:{patterns:[{include:"#literalFloat"},{include:"#literalInt"},{include:"#literalBool"},{include:"#identifierType"},{include:"#constructor"},{include:"#processorFunction"},{include:"#identifierFunction"},{include:"#swizzling"},{include:"#identifierField"},{include:"#constantFloat"},{include:"#languageVariable"},{include:"#identifierVariable"}]},enclosed:{begin:/\(/dgv,captures:{"0":{name:"punctuation.parenthesis.gdshader"}},end:/\)/dgv,name:"meta.parenthesis.gdshader",patterns:[{include:"#any"}]},fieldDefinition:{begin:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,beginCaptures:{"0":{patterns:[{include:"#typeKeyword"},{match:/[^\n]+/dgv,name:"entity.name.type.gdshader"}]}},end:/(?<=;)/dgv,name:"meta.definition.field.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#arraySize"},{include:"#fieldName"},{include:"#any"}]},fieldName:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.variable.field.gdshader"},hintKeyword:{match:/\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\b/dgv,name:"support.type.annotation.gdshader"},identifierClassification:{match:/\b[a-z_]+\b/dgv,name:"entity.other.inherited-class.gdshader"},identifierField:{captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"entity.name.variable.field.gdshader"}},match:/([\.])\p{space}*([a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?!\p{space}*\()/dgv},identifierFunction:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(?=(?:\p{space}|\/\*(?:\*(?!\/)|[^\*])*\*\/)*[\(])/dgv,name:"entity.name.function.gdshader"},identifierType:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*(?=(?:\p{space}*\[\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\])?\p{space}+[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b)/dgv,name:"entity.name.type.gdshader"},identifierVariable:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.name.gdshader"},keyword:{patterns:[{include:"#classifierKeyword"},{include:"#structKeyword"},{include:"#controlKeyword"},{include:"#modifierKeyword"},{include:"#precisionKeyword"},{include:"#typeKeyword"},{include:"#hintKeyword"}]},languageVariable:{match:/\b[A-Z][A-Z_0-9]*\b/dgv,name:"variable.language.gdshader"},literalBool:{match:/\b(?:false|true)\b/dgv,name:"constant.language.boolean.gdshader"},literalFloat:{match:/\b(?:\p{Nd}+[eE][\-\+]?\p{Nd}+|(?:\p{Nd}*[\.]\p{Nd}+|\p{Nd}+[\.])(?:[eE][\-\+]?\p{Nd}+)?)[fF]?/dgv,name:"constant.numeric.float.gdshader"},literalInt:{match:/\b(?:0[xX][0-9A-Fa-f]+|\p{Nd}+[uU]?)\b/dgv,name:"constant.numeric.integer.gdshader"},modifierKeyword:{match:/\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\b/dgv,name:"storage.modifier.gdshader"},operator:{match:/<<=?|>>=?|[\-\+\*\/\&\|\<\>\=\!]=|&&|[\|][\|]|[\-\+\~\!\*\/\%\<\>\&\^\|\=]/dgv,name:"keyword.operator.gdshader"},precisionKeyword:{match:/\b(?:low|medium|high)p\b/dgv,name:"storage.type.built-in.primitive.precision.gdshader"},processorFunction:{match:/\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\p{space}|\/\*(?:\*(?!\/)|[^\*])*\*\/)*[\(])/dgv,name:"support.function.gdshader"},separator:{patterns:[{match:/[\.]/dgv,name:"punctuation.accessor.gdshader"},{include:"#separatorComma"},{match:/[\;]/dgv,name:"punctuation.terminator.statement.gdshader"},{match:/[\:]/dgv,name:"keyword.operator.type.annotation.gdshader"}]},separatorComma:{match:/[\,]/dgv,name:"punctuation.separator.comma.gdshader"},structDefinition:{begin:/(?=\bstruct\b)/dgv,end:/(?<=;)/dgv,patterns:[{include:"#comment"},{include:"#keyword"},{include:"#structName"},{include:"#structDefinitionBlock"},{include:"#separator"}]},structDefinitionBlock:{begin:/\{/dgv,captures:{"0":{name:"punctuation.definition.block.struct.gdshader"}},end:/\}/dgv,name:"meta.definition.block.struct.gdshader",patterns:[{include:"#comment"},{include:"#precisionKeyword"},{include:"#fieldDefinition"},{include:"#keyword"},{include:"#any"}]},structKeyword:{match:/\bstruct\b/dgv,name:"keyword.other.struct.gdshader"},structName:{match:/\b[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.type.struct.gdshader"},swizzling:{captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"variable.other.property.gdshader"}},match:/([\.])\p{space}*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\b/dgv},typeKeyword:{match:/\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\b/dgv,name:"support.type.gdshader"}},scopeName:"source.gdshader",embeddedLangs:undefined,aliases:undefined})
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
lang
|
|
5
|
+
]
|
package/dist/genie.d.mts
ADDED
package/dist/genie.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const lang = Object.freeze({displayName:"Genie",fileTypes:["gs"],name:"genie",patterns:[{include:"#code"}],repository:{code:{patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#keywords"},{include:"#types"},{include:"#functions"},{include:"#variables"}]},comments:{patterns:[{captures:{"0":{name:"punctuation.definition.comment.vala"}},match:/\/\*\*\//dgv,name:"comment.block.empty.vala"},{include:"text.html.javadoc"},{include:"#comments-inline"}]},"comments-inline":{patterns:[{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.vala"}},end:/\*\//dgv,name:"comment.block.vala"},{captures:{"1":{name:"comment.line.double-slash.vala"},"2":{name:"punctuation.definition.comment.vala"}},match:/\p{space}*((\/\/)[^\n]*(?=$|\n)\n?)/dgv}]},constants:{patterns:[{match:/\b((0(x|X)[0-9a-fA-F]*)|((\p{Nd}+\.?\p{Nd}*)|(\.\p{Nd}+))((e|E)(\+|-)?\p{Nd}+)?)([LlFfUuDd]|UL|ul)?\b/dgv,name:"constant.numeric.vala"},{match:/\b([A-Z][A-Z0-9_]+)\b/dgv,name:"variable.other.constant.vala"}]},functions:{patterns:[{match:/([\p{L}\p{M}\p{N}\p{Pc}]+)(?=\p{space}*(<[\p{space}\p{L}\p{M}\p{N}\p{Pc}\.]+>\p{space}*)?\()/dgv,name:"entity.name.function.vala"}]},keywords:{patterns:[{match:/(?<=(?<=^|\n(?!$))|[^\@\p{L}\p{M}\p{N}\p{Pc}\.])(as|do|if|in|is|of|or|to|and|def|for|get|isa|new|not|out|ref|set|try|var|case|dict|else|enum|init|list|lock|null|pass|prop|self|true|uses|void|weak|when|array|async|break|class|const|event|false|final|owned|print|super|raise|while|yield|assert|delete|downto|except|extern|inline|params|public|raises|return|sealed|sizeof|static|struct|typeof|default|dynamic|ensures|finally|private|unowned|virtual|abstract|continue|delegate|internal|override|readonly|requires|volatile|construct|errordomain|interface|namespace|protected|implements)\b/dgv,name:"keyword.vala"},{match:/(?<=(?<=^|\n(?!$))|[^\@\p{L}\p{M}\p{N}\p{Pc}\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\b/dgv,name:"keyword.vala"},{match:/(#if|#elif|#else|#endif)/dgv,name:"keyword.vala"}]},strings:{patterns:[{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.vala"},{begin:/@"/dgv,end:/"/dgv,name:"string.quoted.interpolated.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"},{match:/\$[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"constant.character.escape.vala"},{match:/\$\(([^\)\(]|\(([^\)\(]|\([^\)]*\))*\))*\)/dgv,name:"constant.character.escape.vala"}]},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"}]},{begin:/'/dgv,end:/'/dgv,name:"string.quoted.single.vala",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.vala"}]},{match:/\/((\\\/)|([^\/]))*\/(?=\p{space}*[\,\;\)\.\n])/dgv,name:"string.regexp.vala"}]},types:{patterns:[{match:/(?<=(?<=^|\n(?!$))|[^\@\p{L}\p{M}\p{N}\p{Pc}\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\b/dgv,name:"storage.type.primitive.vala"},{match:/\b([A-Z]+[\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.type.vala"}]},variables:{patterns:[{match:/\b([_a-z]+[\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"variable.other.vala"}]}},scopeName:"source.genie",embeddedLangs:undefined,aliases:undefined})
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
lang
|
|
5
|
+
]
|
package/dist/gherkin.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const lang = Object.freeze({displayName:"Gherkin",fileTypes:["feature"],firstLineMatch:/기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd([^\n]*)/dgv,foldingStartMarker:/(?<=^|\n(?!$))\p{space}*\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)/dgv,foldingStopMarker:/(?<=^|\n(?!$))\p{space}*(?=$|\n)/dgv,name:"gherkin",patterns:[{include:"#feature_element_keyword"},{include:"#feature_keyword"},{include:"#step_keyword"},{include:"#strings_triple_quote"},{include:"#strings_single_quote"},{include:"#strings_double_quote"},{include:"#comments"},{include:"#tags"},{include:"#scenario_outline_variable"},{include:"#table"}],repository:{comments:{captures:{"0":{name:"comment.line.number-sign"}},match:/(?<=^|\n(?!$))\p{space}*(#[^\n]*)/dgv},feature_element_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.scenario"},"2":{name:"string.language.gherkin.scenario.title.title"}},match:/(?<=^|\n(?!$))\p{space}*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):([^\n]*)/dgv},feature_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature"},"2":{name:"string.language.gherkin.feature.title"}},match:/(?<=^|\n(?!$))\p{space}*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):([^\n]*)\b/dgv},scenario_outline_variable:{match:/<[a-zA-Z0-9 _\-]*>/dgv,name:"variable.other"},step_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.step"}},match:/(?<=^|\n(?!$))\p{space}*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგრამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\* )/dgv},strings_double_quote:{begin:/(?<![a-zA-Z0-9'])"/dgv,end:/"(?![a-zA-Z0-9'])/dgv,name:"string.quoted.double",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.untitled"}]},strings_single_quote:{begin:/(?<![a-zA-Z0-9"])'/dgv,end:/'(?![a-zA-Z0-9"])/dgv,name:"string.quoted.single",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape"}]},strings_triple_quote:{begin:/"""[^\n]*/dgv,end:/"""/dgv,name:"string.quoted.single"},table:{begin:/(?<=^|\n(?!$))\p{space}*\|/dgv,end:/\|\p{space}*(?=$|\n)/dgv,name:"keyword.control.cucumber.table",patterns:[{match:/[\p{L}\p{M}\p{N}\p{Pc}]/dgv,name:"source"}]},tags:{captures:{"0":{name:"entity.name.type.class.tsx"}},match:/(@[^\@\r\n\t ]+)/dgv}},scopeName:"text.gherkin.feature",embeddedLangs:undefined,aliases:undefined})
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
lang
|
|
5
|
+
]
|