plannar 0.0.1
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/dist/abap-BW9c03a7.mjs +3 -0
- package/dist/actionscript-3-B6AeQsdr.mjs +3 -0
- package/dist/ada-UAfcUgld.mjs +3 -0
- package/dist/andromeeda-Cu62joT4.mjs +4 -0
- package/dist/angular-html-C-eFVAIe.mjs +33 -0
- package/dist/angular-ts-BD6BhTYj.mjs +27 -0
- package/dist/apache-DWevXWr1.mjs +3 -0
- package/dist/apex-TPGYj5YO.mjs +3 -0
- package/dist/apl-DUmaAe2b.mjs +17 -0
- package/dist/applescript-DOvaC_Oy.mjs +3 -0
- package/dist/ara-D-j-XXGW.mjs +3 -0
- package/dist/asciidoc-Cds5g02g.mjs +3 -0
- package/dist/asm-fKrNhGI-.mjs +3 -0
- package/dist/astro-DO4Glno9.mjs +19 -0
- package/dist/aurora-x-BB0J0IeM.mjs +4 -0
- package/dist/awk-BffybAOE.mjs +3 -0
- package/dist/ayu-dark-BIk2eYyl.mjs +4 -0
- package/dist/ayu-light-pnpopa_u.mjs +4 -0
- package/dist/ayu-mirage-Dq1YQdbW.mjs +4 -0
- package/dist/ballerina-BD5CldPU.mjs +3 -0
- package/dist/bat-DMbz78YR.mjs +3 -0
- package/dist/beancount-CaTd9Bjz.mjs +3 -0
- package/dist/berry-BgUsmVaH.mjs +3 -0
- package/dist/bibtex-BS9dLuV0.mjs +3 -0
- package/dist/bicep-DWRRWjGd.mjs +3 -0
- package/dist/bird2-BlSty-nT.mjs +3 -0
- package/dist/blade-CH2DZiyx.mjs +21 -0
- package/dist/bsl-CJ91opd0.mjs +6 -0
- package/dist/c-D_Rf5vw8.mjs +6 -0
- package/dist/c3-CC9BmleM.mjs +3 -0
- package/dist/cadence-DrOG_Vzs.mjs +3 -0
- package/dist/cairo-BP4NeRvu.mjs +6 -0
- package/dist/catppuccin-frappe-CSSZy2I0.mjs +4 -0
- package/dist/catppuccin-latte-DnTXDnsj.mjs +4 -0
- package/dist/catppuccin-macchiato-Ckw0Vhkh.mjs +4 -0
- package/dist/catppuccin-mocha-BgepuhoR.mjs +4 -0
- package/dist/clarity-BUDmzLZe.mjs +3 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +23 -0
- package/dist/clojure-WWg3It68.mjs +3 -0
- package/dist/cmake-DFHdRVuU.mjs +3 -0
- package/dist/cobol-BAR5Vngc.mjs +11 -0
- package/dist/codeowners-DVDrZMQO.mjs +3 -0
- package/dist/codeql-CyBidtfP.mjs +3 -0
- package/dist/coffee-BInjHxEE.mjs +6 -0
- package/dist/common-lisp-QjFch7-u.mjs +3 -0
- package/dist/config-FJViU9hJ.mjs +59 -0
- package/dist/coq-BsUrCVvK.mjs +3 -0
- package/dist/core/index.d.mts +50 -0
- package/dist/core/index.mjs +313 -0
- package/dist/core-styles/mdx.css +337 -0
- package/dist/core-styles/theme.css +128 -0
- package/dist/cpp-CENjCKTD.mjs +25 -0
- package/dist/crystal-CXaN9OP7.mjs +19 -0
- package/dist/csharp-D-QFUFEE.mjs +3 -0
- package/dist/css-C2wCJA_G.mjs +6 -0
- package/dist/csv-Cb3ztF11.mjs +3 -0
- package/dist/cue-BRViwSb5.mjs +3 -0
- package/dist/cypher-DsZ0r_SN.mjs +3 -0
- package/dist/d-DeVAByS9.mjs +3 -0
- package/dist/dark-plus-DnPTOHJQ.mjs +4 -0
- package/dist/dart-DWVGvPVl.mjs +3 -0
- package/dist/dax-CCVgOCrm.mjs +3 -0
- package/dist/desktop-BLG2KUib.mjs +3 -0
- package/dist/diff-CR6iDLhj.mjs +3 -0
- package/dist/docker-ByH34NvG.mjs +3 -0
- package/dist/dotenv-el5rplMn.mjs +3 -0
- package/dist/dracula-CpEdEQts.mjs +4 -0
- package/dist/dracula-soft-CZr0C0df.mjs +4 -0
- package/dist/dream-maker-DDljGJt4.mjs +3 -0
- package/dist/edge-no12TFHE.mjs +13 -0
- package/dist/editor/components.json +25 -0
- package/dist/editor/dist/assets/index-B0kdJwfN.js +11 -0
- package/dist/editor/dist/assets/index-CZwLh2NU.css +2 -0
- package/dist/editor/dist/index.html +25 -0
- package/dist/editor/index.html +24 -0
- package/dist/editor/package.json +35 -0
- package/dist/editor/src/app.tsx +82 -0
- package/dist/editor/src/comment-box.tsx +113 -0
- package/dist/editor/src/comment-list.tsx +118 -0
- package/dist/editor/src/comment-overlay.tsx +122 -0
- package/dist/editor/src/comment-state.tsx +120 -0
- package/dist/editor/src/comment-toggle.tsx +28 -0
- package/dist/editor/src/components/ui/button.tsx +58 -0
- package/dist/editor/src/components/ui/dialog.tsx +136 -0
- package/dist/editor/src/components/ui/popover.tsx +75 -0
- package/dist/editor/src/components/ui/sonner.tsx +21 -0
- package/dist/editor/src/components/ui/textarea.tsx +18 -0
- package/dist/editor/src/components/ui/tooltip.tsx +54 -0
- package/dist/editor/src/grep-source.ts +95 -0
- package/dist/editor/src/index.css +36 -0
- package/dist/editor/src/lib/utils.ts +6 -0
- package/dist/editor/src/main.tsx +10 -0
- package/dist/editor/src/mdx.d.ts +4 -0
- package/dist/editor/src/plan-list.tsx +42 -0
- package/dist/editor/src/plan-view.tsx +107 -0
- package/dist/editor/src/plannar.d.ts +6 -0
- package/dist/editor/src/prompt-dialog.tsx +61 -0
- package/dist/editor/src/sample.mdx +69 -0
- package/dist/editor/tsconfig.json +23 -0
- package/dist/editor/vite.config.ts +14 -0
- package/dist/editor/vite.shared.d.ts +12 -0
- package/dist/editor/vite.shared.ts +265 -0
- package/dist/editor-Bv5RTgcT.mjs +59 -0
- package/dist/elixir-SbOgBhDM.mjs +6 -0
- package/dist/elm-BRsMBjKT.mjs +6 -0
- package/dist/emacs-lisp-C8HQcRPk.mjs +3 -0
- package/dist/erb-C1_C5jep.mjs +11 -0
- package/dist/erlang-C5gFQJZg.mjs +6 -0
- package/dist/everforest-dark-BAMXVMpE.mjs +4 -0
- package/dist/everforest-light-C_EkXd7H.mjs +4 -0
- package/dist/export-BPZixWW4.mjs +59476 -0
- package/dist/fennel-BBDzQpxJ.mjs +3 -0
- package/dist/fish-BVKcOoo3.mjs +3 -0
- package/dist/fluent-CiEY0tx7.mjs +3 -0
- package/dist/fortran-fixed-form-DPiyERAR.mjs +6 -0
- package/dist/fortran-free-form-Dy4Ia3xC.mjs +3 -0
- package/dist/fsharp-BXAgfpA4.mjs +6 -0
- package/dist/gdresource-CRXhH7lA.mjs +11 -0
- package/dist/gdscript-DUk6d3qS.mjs +3 -0
- package/dist/gdshader-DJwZO-zm.mjs +3 -0
- package/dist/genie-B2jvDwB3.mjs +3 -0
- package/dist/gherkin-CFYsr5Em.mjs +3 -0
- package/dist/git-commit-Bb8y57z7.mjs +6 -0
- package/dist/git-rebase-BECFh1Cx.mjs +6 -0
- package/dist/github-dark-DvHYl2p7.mjs +4 -0
- package/dist/github-dark-default-MALL2Q4C.mjs +4 -0
- package/dist/github-dark-dimmed-CFzqRqSr.mjs +4 -0
- package/dist/github-dark-high-contrast-Be0PQ9D9.mjs +4 -0
- package/dist/github-light-B84bxdHo.mjs +4 -0
- package/dist/github-light-default-B49MFeR5.mjs +4 -0
- package/dist/github-light-high-contrast-B9ThWYcN.mjs +4 -0
- package/dist/gleam-B7e4lIXe.mjs +3 -0
- package/dist/glimmer-js-BxRSm1Iz.mjs +15 -0
- package/dist/glimmer-ts-B-PXhnA-.mjs +15 -0
- package/dist/glsl-DCpEHOoJ.mjs +8 -0
- package/dist/gn-oCpvJfaB.mjs +3 -0
- package/dist/gnuplot-DGkrsXyD.mjs +3 -0
- package/dist/go-DOBPmz4q.mjs +3 -0
- package/dist/graphql-KsWq5dbl.mjs +17 -0
- package/dist/groovy-JRvXAe6e.mjs +3 -0
- package/dist/gruvbox-dark-hard-DZtjD3-K.mjs +4 -0
- package/dist/gruvbox-dark-medium-CnvJvh1e.mjs +4 -0
- package/dist/gruvbox-dark-soft-DT7fdnlk.mjs +4 -0
- package/dist/gruvbox-light-hard-Z0yBUPTq.mjs +4 -0
- package/dist/gruvbox-light-medium-VcFR0ZPw.mjs +4 -0
- package/dist/gruvbox-light-soft-BjpMTObq.mjs +4 -0
- package/dist/hack-Dl36VvRT.mjs +11 -0
- package/dist/haml-CybNLmKL.mjs +13 -0
- package/dist/handlebars-CjcvRR6G.mjs +15 -0
- package/dist/haskell-9GVaCDAy.mjs +3 -0
- package/dist/haxe-BjwmQP6x.mjs +3 -0
- package/dist/hcl-CGDoStcp.mjs +3 -0
- package/dist/hjson-CH_gnwQd.mjs +3 -0
- package/dist/hlsl-ivzEgiy0.mjs +3 -0
- package/dist/horizon-BAPJOej1.mjs +4 -0
- package/dist/horizon-bright-CBbQxVuj.mjs +4 -0
- package/dist/houston-Bsel4WXn.mjs +4 -0
- package/dist/html-DfZ5CvWO.mjs +13 -0
- package/dist/html-derivative-Bl2uHcRG.mjs +6 -0
- package/dist/http-2GSJ1Ota.mjs +15 -0
- package/dist/hurl-BuTA3a1U.mjs +13 -0
- package/dist/hxml-CIJx3GAL.mjs +6 -0
- package/dist/hy-CFVRK0Nt.mjs +3 -0
- package/dist/imba-CpUXJ8TV.mjs +3 -0
- package/dist/ini-CdpG8IPX.mjs +3 -0
- package/dist/init-CK5HMoQf.mjs +228 -0
- package/dist/java-Dd2Sr4ei.mjs +6 -0
- package/dist/javascript-CZ7QJWaI.mjs +6 -0
- package/dist/jinja-rGuAaq8y.mjs +10 -0
- package/dist/jison-f_1eFoen.mjs +6 -0
- package/dist/json-ufdHUD6V.mjs +6 -0
- package/dist/json5-7RecBf2_.mjs +3 -0
- package/dist/jsonc-CBGnPf32.mjs +3 -0
- package/dist/jsonl-CmLQaM5O.mjs +3 -0
- package/dist/jsonnet-tXOQdkDx.mjs +3 -0
- package/dist/jssm-CtDTf-es.mjs +3 -0
- package/dist/jsx-BY17L1TJ.mjs +6 -0
- package/dist/julia-jv62bi7k.mjs +17 -0
- package/dist/just-C6qr4mXt.mjs +19 -0
- package/dist/kanagawa-dragon-BDtUi23j.mjs +4 -0
- package/dist/kanagawa-lotus-BBtsE-9U.mjs +4 -0
- package/dist/kanagawa-wave-DehP6Jw_.mjs +4 -0
- package/dist/kdl-DGaDNPP2.mjs +3 -0
- package/dist/kotlin-B10KLoOh.mjs +3 -0
- package/dist/kusto-iwa79TLz.mjs +3 -0
- package/dist/laserwave-oGyAE_TK.mjs +4 -0
- package/dist/latex-bq3Inh3R.mjs +6 -0
- package/dist/lean-CIMS95nW.mjs +3 -0
- package/dist/less-BmQG9s2A.mjs +3 -0
- package/dist/light-plus-BKYJg4pO.mjs +4 -0
- package/dist/liquid-BGg1u_N2.mjs +15 -0
- package/dist/llvm-D_R1tubu.mjs +3 -0
- package/dist/log-A1ddhKk2.mjs +3 -0
- package/dist/logo-CAINsCxc.mjs +3 -0
- package/dist/lua-Ctym3rMV.mjs +8 -0
- package/dist/luau-CAYz1b8d.mjs +3 -0
- package/dist/make-BoMd6Eg0.mjs +3 -0
- package/dist/markdown-q2UTVhPv.mjs +3 -0
- package/dist/marko-3VCDTT2m.mjs +15 -0
- package/dist/material-theme-B5VoDPKV.mjs +4 -0
- package/dist/material-theme-darker-B1HCXk1e.mjs +4 -0
- package/dist/material-theme-lighter-Cj_YmAmc.mjs +4 -0
- package/dist/material-theme-ocean-BaeR8VhB.mjs +4 -0
- package/dist/material-theme-palenight-DieYMRIR.mjs +4 -0
- package/dist/matlab-BmW78Ua4.mjs +3 -0
- package/dist/mdc-n4CFO8GD.mjs +13 -0
- package/dist/mdx-IgTZ_PsQ.mjs +3 -0
- package/dist/mermaid-D1WKgk1u.mjs +3 -0
- package/dist/min-dark-Da4XHK1C.mjs +4 -0
- package/dist/min-light-B1G-gK7R.mjs +4 -0
- package/dist/mipsasm-D__MkRT6.mjs +3 -0
- package/dist/mojo-CMCD6kSt.mjs +3 -0
- package/dist/monokai-Dja8c9XW.mjs +4 -0
- package/dist/moonbit-BmzABvgk.mjs +3 -0
- package/dist/move-CtOzYpc7.mjs +3 -0
- package/dist/narrat-C8ZM2zHi.mjs +3 -0
- package/dist/nextflow-BuXhAF6g.mjs +6 -0
- package/dist/nextflow-groovy-BucdoGBt.mjs +3 -0
- package/dist/nginx-DCav9fr2.mjs +6 -0
- package/dist/night-owl-CFEDim2c.mjs +4 -0
- package/dist/night-owl-light-BABXmJim.mjs +4 -0
- package/dist/nim-D9QPp5kW.mjs +21 -0
- package/dist/nix-_kfSRp5x.mjs +7 -0
- package/dist/nord-BEvLRKJz.mjs +4 -0
- package/dist/nushell-CG6WVreI.mjs +3 -0
- package/dist/objective-c-DOVmNqC4.mjs +3 -0
- package/dist/objective-cpp-BWlpWva0.mjs +3 -0
- package/dist/ocaml-Wwmuez2Q.mjs +3 -0
- package/dist/odin-ByfuPSu8.mjs +3 -0
- package/dist/one-dark-pro-CXLLrmxx.mjs +4 -0
- package/dist/one-light-1TrAkc9b.mjs +4 -0
- package/dist/openscad-CYYW-Lvy.mjs +3 -0
- package/dist/pascal-DlWtMFUC.mjs +3 -0
- package/dist/perl-F1w6BTW4.mjs +17 -0
- package/dist/php-D5RNc8cb.mjs +19 -0
- package/dist/pkl-BJSLmUc7.mjs +3 -0
- package/dist/plastic-BOdHQ7hi.mjs +4 -0
- package/dist/plsql-CtnOltln.mjs +3 -0
- package/dist/po-ChBiJtw3.mjs +3 -0
- package/dist/poimandres-sZlsXmSW.mjs +4 -0
- package/dist/polar-BRgTqojJ.mjs +3 -0
- package/dist/postcss-DAhKZdRf.mjs +3 -0
- package/dist/powerquery-BKTL9xfg.mjs +3 -0
- package/dist/powershell-BmCCV9e7.mjs +3 -0
- package/dist/prisma-C-mW5eQ1.mjs +3 -0
- package/dist/prolog-BG0_G0sz.mjs +3 -0
- package/dist/proto-Cjvlr4bQ.mjs +3 -0
- package/dist/pug-BoqONK6L.mjs +13 -0
- package/dist/puppet-CjFnVLMe.mjs +3 -0
- package/dist/purescript-Vb2OcJR8.mjs +3 -0
- package/dist/python-ARgqtcr9.mjs +3 -0
- package/dist/qml-CN98xHYu.mjs +6 -0
- package/dist/qmldir-BR3wWyS0.mjs +3 -0
- package/dist/qss-Baln5J4y.mjs +3 -0
- package/dist/r-CgkRbgWa.mjs +6 -0
- package/dist/racket-HuXCA8Np.mjs +3 -0
- package/dist/raku--XBLzYuF.mjs +3 -0
- package/dist/razor-D9GoeIvC.mjs +11 -0
- package/dist/red-DieXtVH2.mjs +4 -0
- package/dist/reg-N3tN4G1s.mjs +3 -0
- package/dist/regexp-Cmzs-b17.mjs +6 -0
- package/dist/registry-metadata/index.d.mts +40 -0
- package/dist/registry-metadata/index.mjs +163 -0
- package/dist/rel-BWA2fVVw.mjs +3 -0
- package/dist/riscv-CNsUL9F1.mjs +3 -0
- package/dist/ron-C_zPdle-.mjs +3 -0
- package/dist/rose-pine-NQGQN_Py.mjs +4 -0
- package/dist/rose-pine-dawn-CDEuRC-V.mjs +4 -0
- package/dist/rose-pine-moon-DN6_RPeE.mjs +4 -0
- package/dist/rosmsg-yiq-v07k.mjs +3 -0
- package/dist/rst-BMhVqyG1.mjs +23 -0
- package/dist/ruby-C7SejiSM.mjs +31 -0
- package/dist/rust-DYp2JQv-.mjs +3 -0
- package/dist/sas-CGU-Ko3q.mjs +6 -0
- package/dist/sass-DVKushYG.mjs +3 -0
- package/dist/scala-lpjTPFHX.mjs +3 -0
- package/dist/scheme-wOQJFUig.mjs +3 -0
- package/dist/scss-zkWWQrdN.mjs +8 -0
- package/dist/sdbl--PnDxzGT.mjs +3 -0
- package/dist/shaderlab-i7KCgReF.mjs +6 -0
- package/dist/shellscript-CaJ5viEZ.mjs +6 -0
- package/dist/shellsession-DuB7oTvQ.mjs +6 -0
- package/dist/slack-dark-6rIBdtCf.mjs +4 -0
- package/dist/slack-ochin-nUh4VZSG.mjs +4 -0
- package/dist/smalltalk-n_YRhdTv.mjs +3 -0
- package/dist/snazzy-light-DkuQw6Z-.mjs +4 -0
- package/dist/solarized-dark-DG_xfWAC.mjs +4 -0
- package/dist/solarized-light-CIcPm0uy.mjs +4 -0
- package/dist/solidity-BpTVGGR3.mjs +3 -0
- package/dist/soy-lf7Er5NU.mjs +6 -0
- package/dist/sparql-Bk-JyIQk.mjs +6 -0
- package/dist/splunk-D1Az7tvn.mjs +3 -0
- package/dist/sql-D1uCIb-4.mjs +6 -0
- package/dist/ssh-config-DAsGgEig.mjs +3 -0
- package/dist/stata-DenNw7ri.mjs +6 -0
- package/dist/status-gCBxoymh.mjs +97 -0
- package/dist/stylus-CNLem3u-.mjs +3 -0
- package/dist/surrealql-CCYzU3tm.mjs +6 -0
- package/dist/svelte-C36RW4eY.mjs +15 -0
- package/dist/swift-DAcVMcFy.mjs +3 -0
- package/dist/synthwave-84-gkUURId2.mjs +4 -0
- package/dist/system-verilog-CL1nVinO.mjs +3 -0
- package/dist/systemd-C7P5y8lI.mjs +3 -0
- package/dist/talonscript-BE-x9pgh.mjs +3 -0
- package/dist/tasl-C7s9745E.mjs +3 -0
- package/dist/tcl-BLsPJ7iC.mjs +3 -0
- package/dist/templ-Dte43-Eo.mjs +13 -0
- package/dist/terraform-v0Ek_rks.mjs +3 -0
- package/dist/tex-CRJxStv9.mjs +6 -0
- package/dist/tokyo-night-Oja5OrLi.mjs +4 -0
- package/dist/toml-wLAVRnMH.mjs +3 -0
- package/dist/ts-tags-Cs6jrN-1.mjs +59 -0
- package/dist/tsv-Qo5b4XGG.mjs +3 -0
- package/dist/tsx-CZnUd1jF.mjs +6 -0
- package/dist/turtle-Bo7XW2KG.mjs +3 -0
- package/dist/twig-A2qf0tKU.mjs +19 -0
- package/dist/typescript-DgW8lbMR.mjs +6 -0
- package/dist/typespec-DvXBeCkw.mjs +3 -0
- package/dist/typst-D73qYMMw.mjs +3 -0
- package/dist/v-CpO787mz.mjs +3 -0
- package/dist/vala-BqFlVoH_.mjs +3 -0
- package/dist/vb-Bo7BiOwD.mjs +3 -0
- package/dist/verilog-DABjKKO6.mjs +3 -0
- package/dist/vesper-tVhzEr-k.mjs +4 -0
- package/dist/vhdl-CB8TvDTZ.mjs +3 -0
- package/dist/viml-CuM98KEF.mjs +3 -0
- package/dist/vitesse-black-P6rRX5YD.mjs +4 -0
- package/dist/vitesse-dark-Di9MWjvq.mjs +4 -0
- package/dist/vitesse-light-ChosFYw8.mjs +4 -0
- package/dist/vue-BtFfPSdA.mjs +31 -0
- package/dist/vue-html-BIVhvoTt.mjs +6 -0
- package/dist/vue-vine-BRJbnPV0.mjs +19 -0
- package/dist/vyper-DYoGCYmu.mjs +3 -0
- package/dist/wasm-DhFUmAQm.mjs +7 -0
- package/dist/wasm-NKC9-wJ8.mjs +3 -0
- package/dist/wenyan-CCNBOs6Y.mjs +3 -0
- package/dist/wgsl-n1IZMc_u.mjs +3 -0
- package/dist/wikitext-5isXOJoG.mjs +3 -0
- package/dist/wit-BP1frIMq.mjs +3 -0
- package/dist/wolfram-e8E-o4Bx.mjs +3 -0
- package/dist/xml-czz4UX4-.mjs +8 -0
- package/dist/xsl-BL1DqGMX.mjs +6 -0
- package/dist/yaml-B2yUh7a5.mjs +6 -0
- package/dist/zenscript-kGsI2Rqh.mjs +3 -0
- package/dist/zig-C5f0bk_4.mjs +3 -0
- package/package.json +48 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { t as javascript_default } from "./javascript-CZ7QJWaI.mjs";
|
|
2
|
+
//#region ../../node_modules/.pnpm/@shikijs+langs@4.1.0/node_modules/@shikijs/langs/dist/coffee.mjs
|
|
3
|
+
const lang = Object.freeze(JSON.parse("{\"displayName\":\"CoffeeScript\",\"name\":\"coffee\",\"patterns\":[{\"include\":\"#jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.new.coffee\"},\"2\":{\"name\":\"storage.type.class.coffee\"},\"3\":{\"name\":\"entity.name.type.instance.coffee\"},\"4\":{\"name\":\"entity.name.type.instance.coffee\"}},\"match\":\"(new)\\\\s+(?:(class)\\\\s+(\\\\w+(?:\\\\.\\\\w*)*)?|(\\\\w+(?:\\\\.\\\\w*)*))\",\"name\":\"meta.class.instance.constructor.coffee\"},{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.single.heredoc.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\).\",\"name\":\"constant.character.escape.backslash.coffee\"}]},{\"begin\":\"\\\"\\\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"\\\"\\\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.double.heredoc.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\).\",\"name\":\"constant.character.escape.backslash.coffee\"},{\"include\":\"#interpolated_coffee\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.coffee\"},\"2\":{\"name\":\"source.js.embedded.coffee\",\"patterns\":[{\"include\":\"source.js\"}]},\"3\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"match\":\"(`)(.*)(`)\",\"name\":\"string.quoted.script.coffee\"},{\"begin\":\"(?<!#)###(?!#)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"end\":\"###\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"name\":\"comment.block.coffee\",\"patterns\":[{\"match\":\"(?<=^|\\\\s)@\\\\w*(?=\\\\s)\",\"name\":\"storage.type.annotation.coffee\"}]},{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"end\":\"$\",\"name\":\"comment.line.number-sign.coffee\"},{\"begin\":\"///\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"(///)[gimuy]*\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.regexp.multiline.coffee\",\"patterns\":[{\"include\":\"#heregexp\"}]},{\"begin\":\"(?<![$\\\\w])(/)(?=(?![*+/?])(.+)(/)[gimuy]*(?!\\\\s*[$(/\\\\w]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"(/)[gimuy]*(?!\\\\s*[$(/\\\\w])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.regexp.coffee\",\"patterns\":[{\"include\":\"source.js.regexp\"}]},{\"match\":\"\\\\b(?<![$.])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\\\s+own)(?!\\\\s*:)\\\\b\",\"name\":\"keyword.control.coffee\"},{\"match\":\"\\\\b(?<![$.])(delete|instanceof|new|typeof)(?!\\\\s*:)\\\\b\",\"name\":\"keyword.operator.$1.coffee\"},{\"match\":\"\\\\b(?<![$.])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\\\s*:)\\\\b\",\"name\":\"keyword.reserved.coffee\"},{\"begin\":\"(?<=\\\\s|^)((@)?[$A-Z_a-z][$\\\\w]*)\\\\s*([:=])\\\\s*(?=(\\\\([^()]*\\\\)\\\\s*)?[-=]>)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.coffee\"},\"2\":{\"name\":\"variable.other.readwrite.instance.coffee\"},\"3\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"end\":\"[-=]>\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.coffee\"}},\"name\":\"meta.function.coffee\",\"patterns\":[{\"include\":\"#function_params\"}]},{\"begin\":\"(?<=\\\\s|^)(?:((')([^']*?)('))|((\\\")([^\\\"]*?)(\\\")))\\\\s*([:=])\\\\s*(?=(\\\\([^()]*\\\\)\\\\s*)?[-=]>)\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.single.coffee\"},\"2\":{\"name\":\"punctuation.definition.string.begin.coffee\"},\"3\":{\"name\":\"entity.name.function.coffee\"},\"4\":{\"name\":\"punctuation.definition.string.end.coffee\"},\"5\":{\"name\":\"string.quoted.double.coffee\"},\"6\":{\"name\":\"punctuation.definition.string.begin.coffee\"},\"7\":{\"name\":\"entity.name.function.coffee\"},\"8\":{\"name\":\"punctuation.definition.string.end.coffee\"},\"9\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"end\":\"[-=]>\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.coffee\"}},\"name\":\"meta.function.coffee\",\"patterns\":[{\"include\":\"#function_params\"}]},{\"begin\":\"(?=(\\\\([^()]*\\\\)\\\\s*)?[-=]>)\",\"end\":\"[-=]>\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.coffee\"}},\"name\":\"meta.function.inline.coffee\",\"patterns\":[{\"include\":\"#function_params\"}]},{\"begin\":\"(?<=\\\\s|^)(\\\\{)(?=[^\\\"#']+?}[]}\\\\s]*=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.destructuring.begin.bracket.curly.coffee\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.destructuring.end.bracket.curly.coffee\"}},\"name\":\"meta.variable.assignment.destructured.object.coffee\",\"patterns\":[{\"include\":\"$self\"},{\"match\":\"[$A-Z_a-z]\\\\w*\",\"name\":\"variable.assignment.coffee\"}]},{\"begin\":\"(?<=\\\\s|^)(\\\\[)(?=[^\\\"#']+?][]}\\\\s]*=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.destructuring.begin.bracket.square.coffee\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.destructuring.end.bracket.square.coffee\"}},\"name\":\"meta.variable.assignment.destructured.array.coffee\",\"patterns\":[{\"include\":\"$self\"},{\"match\":\"[$A-Z_a-z]\\\\w*\",\"name\":\"variable.assignment.coffee\"}]},{\"match\":\"\\\\b(?<!\\\\.|::)(true|on|yes)(?!\\\\s*[:=][^=])\\\\b\",\"name\":\"constant.language.boolean.true.coffee\"},{\"match\":\"\\\\b(?<!\\\\.|::)(false|off|no)(?!\\\\s*[:=][^=])\\\\b\",\"name\":\"constant.language.boolean.false.coffee\"},{\"match\":\"\\\\b(?<!\\\\.|::)null(?!\\\\s*[:=][^=])\\\\b\",\"name\":\"constant.language.null.coffee\"},{\"match\":\"\\\\b(?<!\\\\.|::)extends(?!\\\\s*[:=])\\\\b\",\"name\":\"variable.language.coffee\"},{\"match\":\"(?<!\\\\.)\\\\b(?<!\\\\$)(super|this|arguments)(?!\\\\s*[:=][^=]|\\\\$)\\\\b\",\"name\":\"variable.language.$1.coffee\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.coffee\"},\"2\":{\"name\":\"keyword.control.inheritance.coffee\"},\"3\":{\"name\":\"entity.other.inherited-class.coffee\"}},\"match\":\"(?<=\\\\s|^|[(\\\\[])(class)\\\\s+(extends)\\\\s+(@?[$.A-Z_a-z][.\\\\w]*)\",\"name\":\"meta.class.coffee\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.coffee\"},\"2\":{\"name\":\"entity.name.type.class.coffee\"},\"3\":{\"name\":\"keyword.control.inheritance.coffee\"},\"4\":{\"name\":\"entity.other.inherited-class.coffee\"}},\"match\":\"(?<=\\\\s|^|[(\\\\[])(class)\\\\b\\\\s+(@?[$A-Z_a-z][.\\\\w]*)?(?:\\\\s+(extends)\\\\s+(@?[$.A-Z_a-z][.\\\\w]*))?\",\"name\":\"meta.class.coffee\"},{\"match\":\"\\\\b(debugger|\\\\\\\\)\\\\b\",\"name\":\"keyword.other.coffee\"},{\"match\":\"\\\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\\\b\",\"name\":\"support.class.coffee\"},{\"match\":\"\\\\b(console)\\\\b\",\"name\":\"entity.name.type.object.coffee\"},{\"match\":\"((?<=console\\\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\\\b\",\"name\":\"support.function.console.coffee\"},{\"match\":\"((?<=\\\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\\\b\",\"name\":\"support.function.method.array.coffee\"},{\"match\":\"((?<=Array\\\\.)(isArray))\\\\b\",\"name\":\"support.function.static.array.coffee\"},{\"match\":\"((?<=Object\\\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\\\b\",\"name\":\"support.function.static.object.coffee\"},{\"match\":\"((?<=Math\\\\.)(abs|acosh??|asinh??|atan2??|atanh|ceil|cosh??|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sinh??|sqrt|tanh??|trunc))\\\\b\",\"name\":\"support.function.static.math.coffee\"},{\"match\":\"((?<=Number\\\\.)(is(Finite|Integer|NaN)|toInteger))\\\\b\",\"name\":\"support.function.static.number.coffee\"},{\"match\":\"(?<!\\\\.)\\\\b(module|exports|__filename|__dirname|global|process)(?!\\\\s*:)\\\\b\",\"name\":\"support.variable.coffee\"},{\"match\":\"\\\\b(Infinity|NaN|undefined)\\\\b\",\"name\":\"constant.language.coffee\"},{\"include\":\"#operators\"},{\"include\":\"#method_calls\"},{\"include\":\"#function_calls\"},{\"include\":\"#numbers\"},{\"include\":\"#objects\"},{\"include\":\"#properties\"},{\"match\":\"::\",\"name\":\"keyword.operator.prototype.coffee\"},{\"match\":\"(?<!\\\\$)\\\\b[0-9]+[$\\\\w]*\",\"name\":\"invalid.illegal.identifier.coffee\"},{\"match\":\";\",\"name\":\"punctuation.terminator.statement.coffee\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.coffee\"},{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.bracket.square.coffee\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.bracket.square.coffee\"}},\"patterns\":[{\"match\":\"(?<!\\\\.)\\\\.{3}\",\"name\":\"keyword.operator.slice.exclusive.coffee\"},{\"match\":\"(?<!\\\\.)\\\\.{2}\",\"name\":\"keyword.operator.slice.inclusive.coffee\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.coffee\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.coffee\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#instance_variable\"},{\"include\":\"#single_quoted_string\"},{\"include\":\"#double_quoted_string\"}],\"repository\":{\"arguments\":{\"patterns\":[{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.coffee\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.coffee\"}},\"name\":\"meta.arguments.coffee\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?=(@|@?[$\\\\w]+|[-=]>|-\\\\d|[\\\"'\\\\[{]))\",\"end\":\"(?=\\\\s*(?<![$\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\w]))|(?=\\\\s*([]#)}]|$))\",\"name\":\"meta.arguments.coffee\",\"patterns\":[{\"include\":\"$self\"}]}]},\"double_quoted_string\":{\"patterns\":[{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.double.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\)(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\",\"name\":\"constant.character.escape.backslash.coffee\"},{\"include\":\"#interpolated_coffee\"}]}]},\"embedded_comment\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"match\":\"(?<!\\\\\\\\)(#).*$\\\\n?\",\"name\":\"comment.line.number-sign.coffee\"}]},\"function_calls\":{\"patterns\":[{\"begin\":\"(@)?([$\\\\w]+)(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.readwrite.instance.coffee\"},\"2\":{\"patterns\":[{\"include\":\"#function_names\"}]}},\"end\":\"(?<=\\\\))\",\"name\":\"meta.function-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]},{\"begin\":\"(@)?([$\\\\w]+)\\\\s*(?=\\\\s+(?!(?<![$\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\w]))(?=(@?[$\\\\w]+|[-=]>|-\\\\d|[\\\"'\\\\[{])))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.readwrite.instance.coffee\"},\"2\":{\"patterns\":[{\"include\":\"#function_names\"}]}},\"end\":\"(?=\\\\s*(?<![$\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\w]))|(?=\\\\s*([]#)}]|$))\",\"name\":\"meta.function-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]}]},\"function_names\":{\"patterns\":[{\"match\":\"\\\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|require|set(Interval|Timeout)|clear(Interval|Timeout))\\\\b\",\"name\":\"support.function.coffee\"},{\"match\":\"[$A-Z_a-z][$\\\\w]*\",\"name\":\"entity.name.function.coffee\"},{\"match\":\"\\\\d[$\\\\w]*\",\"name\":\"invalid.illegal.identifier.coffee\"}]},\"function_params\":{\"patterns\":[{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.coffee\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.coffee\"}},\"name\":\"meta.parameters.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.coffee\"},\"2\":{\"name\":\"keyword.operator.splat.coffee\"}},\"match\":\"([$A-Z_a-z][$\\\\w]*)(\\\\.\\\\.\\\\.)?\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.readwrite.instance.coffee\"},\"2\":{\"name\":\"keyword.operator.splat.coffee\"}},\"match\":\"(@(?:[$A-Z_a-z][$\\\\w]*)?)(\\\\.\\\\.\\\\.)?\"},{\"include\":\"$self\"}]}]},\"heregexp\":{\"patterns\":[{\"match\":\"\\\\\\\\[Bb]|[$^]\",\"name\":\"keyword.control.anchor.regexp\"},{\"match\":\"\\\\\\\\[1-9]\\\\d*\",\"name\":\"keyword.other.back-reference.regexp\"},{\"match\":\"[*+?]|\\\\{(\\\\d+,\\\\d+|\\\\d+,|,\\\\d+|\\\\d+)}\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\()((\\\\?=)|(\\\\?!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#heregexp\"}]},{\"begin\":\"\\\\((\\\\?:)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#heregexp\"}]},{\"begin\":\"(\\\\[)(\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u\\\\h{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))-(?:[^]\\\\\\\\]|(\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u\\\\h{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"},{\"include\":\"#interpolated_coffee\"},{\"include\":\"#embedded_comment\"}]},\"instance_variable\":{\"patterns\":[{\"match\":\"(@)([$A-Z_a-z]\\\\w*)?\",\"name\":\"variable.other.readwrite.instance.coffee\"}]},\"interpolated_coffee\":{\"patterns\":[{\"begin\":\"#\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.coffee\"}},\"end\":\"}\",\"name\":\"source.coffee.embedded.source\",\"patterns\":[{\"include\":\"$self\"}]}]},\"jsx\":{\"patterns\":[{\"include\":\"#jsx-tag\"},{\"include\":\"#jsx-end-tag\"}]},\"jsx-attribute\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"match\":\"(?:^|\\\\s+)([-.\\\\w]+)\\\\s*(=)\"},{\"include\":\"#double_quoted_string\"},{\"include\":\"#single_quoted_string\"},{\"include\":\"#jsx-expression\"}]},\"jsx-end-tag\":{\"patterns\":[{\"begin\":\"(</)([-.\\\\w]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.coffee\"},\"2\":{\"name\":\"entity.name.tag.coffee\"}},\"end\":\"(/?>)\",\"name\":\"meta.tag.coffee\"}]},\"jsx-expression\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"patterns\":[{\"include\":\"#double_quoted_string\"},{\"include\":\"$self\"}]},\"jsx-tag\":{\"patterns\":[{\"begin\":\"(<)([-.\\\\w]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.coffee\"},\"2\":{\"name\":\"entity.name.tag.coffee\"}},\"end\":\"(/?>)\",\"name\":\"meta.tag.coffee\",\"patterns\":[{\"include\":\"#jsx-attribute\"}]}]},\"method_calls\":{\"patterns\":[{\"begin\":\"(?:(\\\\.)|(::))\\\\s*([$\\\\w]+)\\\\s*(?=\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.method.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"patterns\":[{\"include\":\"#method_names\"}]}},\"end\":\"(?<=\\\\))\",\"name\":\"meta.method-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]},{\"begin\":\"(?:(\\\\.)|(::))\\\\s*([$\\\\w]+)\\\\s*(?=\\\\s+(?!(?<![$\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\w]))(?=(@|@?[$\\\\w]+|[-=]>|-\\\\d|[\\\"'\\\\[{])))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.method.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"patterns\":[{\"include\":\"#method_names\"}]}},\"end\":\"(?=\\\\s*(?<![$\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\w]))|(?=\\\\s*([]#)}]|$))\",\"name\":\"meta.method-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]}]},\"method_names\":{\"patterns\":[{\"match\":\"\\\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|Before(cut|deactivate|unload|update|paste|print|editfocus|activate)|Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\\\b\",\"name\":\"support.function.event-handler.coffee\"},{\"match\":\"\\\\b(shift|showModelessDialog|showModalDialog|showHelp|scrollX??|scrollByPages|scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|sup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|Month|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|createEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|releaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|Time|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\\\b\",\"name\":\"support.function.coffee\"},{\"match\":\"\\\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|appendChild|appendData|before|blur|canPlayType|captureStream|caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|cloneContents|cloneNode|cloneRange|close|closest|collapse|compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|createAttributeNS|createCaption|createCDATASection|createComment|createContextualFragment|createDocument|createDocumentFragment|createDocumentType|createElement|createElementNS|createEntityReference|createEvent|createExpression|createHTMLDocument|createNodeIterator|createNSResolver|createProcessingInstruction|createRange|createShadowRoot|createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|getClientRects|getContext|getDestinationInsertionPoints|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|isPointInRange|isSameNode|item|keys??|lastChild|load|lookupNamespaceURI|lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|previousSibling|probablySupportsContext|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|querySelector|querySelectorAll|registerContentHandler|registerElement|registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|toDataURL|toggle|toString|values|write|writeln)\\\\b\",\"name\":\"support.function.dom.coffee\"},{\"match\":\"[$A-Z_a-z][$\\\\w]*\",\"name\":\"entity.name.function.coffee\"},{\"match\":\"\\\\d[$\\\\w]*\",\"name\":\"invalid.illegal.identifier.coffee\"}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\b(?<!\\\\$)0([Xx])\\\\h+\\\\b(?!\\\\$)\",\"name\":\"constant.numeric.hex.coffee\"},{\"match\":\"\\\\b(?<!\\\\$)0([Bb])[01]+\\\\b(?!\\\\$)\",\"name\":\"constant.numeric.binary.coffee\"},{\"match\":\"\\\\b(?<!\\\\$)0([Oo])?[0-7]+\\\\b(?!\\\\$)\",\"name\":\"constant.numeric.octal.coffee\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.coffee\"},\"1\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"2\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"3\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"4\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"5\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"6\":{\"name\":\"punctuation.separator.decimal.period.coffee\"}},\"match\":\"(?<!\\\\$)(?:\\\\b[0-9]+(\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+(\\\\.)[Ee][-+]?[0-9]+\\\\b|\\\\B(\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+(\\\\.)[0-9]+\\\\b|\\\\b[0-9]+(?=\\\\.{2,3})|\\\\b[0-9]+(\\\\.)\\\\B|\\\\B(\\\\.)[0-9]+\\\\b|\\\\b[0-9]+\\\\b(?!\\\\.))(?!\\\\$)\"}]},\"objects\":{\"patterns\":[{\"match\":\"[A-Z][$0-9A-Z_]*(?=\\\\s*\\\\??(\\\\.\\\\s*[$A-Z_a-z]\\\\w*|::))\",\"name\":\"constant.other.object.coffee\"},{\"match\":\"[$A-Z_a-z][$\\\\w]*(?=\\\\s*\\\\??(\\\\.\\\\s*[$A-Z_a-z]\\\\w*|::))\",\"name\":\"variable.other.object.coffee\"}]},\"operators\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.coffee\"}},\"match\":\"(?:([$A-Z_a-z][$\\\\w]*)?\\\\s+|(?<![$\\\\w]))(and=|or=)\"},{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.coffee\"}},\"match\":\"([$A-Z_a-z][$\\\\w]*)?\\\\s*((?:[-%*+]|&&|\\\\|\\\\||\\\\?|(?<!\\\\()/)=)\"},{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.bitwise.coffee\"}},\"match\":\"([$A-Z_a-z][$\\\\w]*)?\\\\s*((?:[\\\\&^]|<<|>>>??|\\\\|)=)\"},{\"match\":\"<<|>>>?\",\"name\":\"keyword.operator.bitwise.shift.coffee\"},{\"match\":\"!=|<=|>=|==|[<>]\",\"name\":\"keyword.operator.comparison.coffee\"},{\"match\":\"&&|!|\\\\|\\\\|\",\"name\":\"keyword.operator.logical.coffee\"},{\"match\":\"[\\\\&^|~]\",\"name\":\"keyword.operator.bitwise.coffee\"},{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"match\":\"([$A-Z_a-z][$\\\\w]*)?\\\\s*(=|:(?!:))(?![=>])\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.coffee\"},{\"match\":\"\\\\+\\\\+\",\"name\":\"keyword.operator.increment.coffee\"},{\"match\":\"\\\\.\\\\.\\\\.\",\"name\":\"keyword.operator.splat.coffee\"},{\"match\":\"\\\\?\",\"name\":\"keyword.operator.existential.coffee\"},{\"match\":\"[-%*+/]\",\"name\":\"keyword.operator.coffee\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.coffee\"},\"2\":{\"name\":\"keyword.operator.comparison.coffee\"}},\"match\":\"\\\\b(?<![$.])(?:(and|or|not)|(is(?:|nt)))(?!\\\\s*:)\\\\b\"}]},\"properties\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"constant.other.object.property.coffee\"}},\"match\":\"(?:(\\\\.)|(::))\\\\s*([A-Z][$0-9A-Z_]*\\\\b\\\\$*)(?=\\\\s*\\\\??(\\\\.\\\\s*[$A-Z_a-z]\\\\w*|::))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"variable.other.object.property.coffee\"}},\"match\":\"(?:(\\\\.)|(::))\\\\s*(\\\\$*[$A-Z_a-z][$\\\\w]*)(?=\\\\s*\\\\??(\\\\.\\\\s*[$A-Z_a-z]\\\\w*|::))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"constant.other.property.coffee\"}},\"match\":\"(?:(\\\\.)|(::))\\\\s*([A-Z][$0-9A-Z_]*\\\\b\\\\$*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"variable.other.property.coffee\"}},\"match\":\"(?:(\\\\.)|(::))\\\\s*(\\\\$*[$A-Z_a-z][$\\\\w]*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"invalid.illegal.identifier.coffee\"}},\"match\":\"(?:(\\\\.)|(::))\\\\s*([0-9][$\\\\w]*)\"}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\[DSWdsw]|\\\\.\",\"name\":\"constant.character.character-class.regexp\"},{\"match\":\"\\\\\\\\([0-7]{3}|x\\\\h{2}|u\\\\h{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"single_quoted_string\":{\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.single.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\)(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\",\"name\":\"constant.character.escape.backslash.coffee\"}]}]}},\"scopeName\":\"source.coffee\",\"embeddedLangs\":[\"javascript\"],\"aliases\":[\"coffeescript\"]}"));
|
|
4
|
+
var coffee_default = [...javascript_default, lang];
|
|
5
|
+
//#endregion
|
|
6
|
+
export { coffee_default as default };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var common_lisp_default = [Object.freeze(JSON.parse("{\"displayName\":\"Common Lisp\",\"fileTypes\":[\"lisp\",\"lsp\",\"l\",\"cl\",\"asd\",\"asdf\"],\"foldingStartMarker\":\"\\\\(\",\"foldingStopMarker\":\"\\\\)\",\"name\":\"common-lisp\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block-comment\"},{\"include\":\"#string\"},{\"include\":\"#escape\"},{\"include\":\"#constant\"},{\"include\":\"#lambda-list\"},{\"include\":\"#function\"},{\"include\":\"#style-guide\"},{\"include\":\"#def-name\"},{\"include\":\"#macro\"},{\"include\":\"#symbol\"},{\"include\":\"#special-operator\"},{\"include\":\"#declaration\"},{\"include\":\"#type\"},{\"include\":\"#class\"},{\"include\":\"#condition-type\"},{\"include\":\"#package\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"}],\"repository\":{\"block-comment\":{\"begin\":\"#\\\\|\",\"contentName\":\"comment.block.commonlisp\",\"end\":\"\\\\|#\",\"name\":\"comment\",\"patterns\":[{\"include\":\"#block-comment\",\"name\":\"comment\"}]},\"class\":{\"match\":\"(?i)(?<=^|[(\\\\s])(?:two-way-stream|synonym-stream|symbol|structure-object|structure-class|string-stream|stream|standard-object|standard-method|standard-generic-function|standard-class|sequence|restart|real|readtable|ratio|random-state|package|number|method|integer|hash-table|generic-function|file-stream|echo-stream|concatenated-stream|class|built-in-class|broadcast-stream|bit-vector|array)(?=([()\\\\s]))\",\"name\":\"support.class.commonlisp\"},\"comment\":{\"begin\":\"(^[\\\\t ]+)?(?=;)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.commonlisp\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\";\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.commonlisp\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.semicolon.commonlisp\"}]},\"condition-type\":{\"match\":\"(?i)(?<=^|[(\\\\s])(?:warning|undefined-function|unbound-variable|unbound-slot|type-error|style-warning|stream-error|storage-condition|simple-warning|simple-type-error|simple-error|simple-condition|serious-condition|reader-error|program-error|print-not-readable|parse-error|package-error|floating-point-underflow|floating-point-overflow|floating-point-invalid-operation|floating-point-inexact|file-error|error|end-of-file|division-by-zero|control-error|condition|cell-error|arithmetic-error)(?=([()\\\\s]))\",\"name\":\"support.type.exception.commonlisp\"},\"constant\":{\"patterns\":[{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(?:t|single-float-negative-epsilon|single-float-epsilon|short-float-negative-epsilon|short-float-epsilon|pi|nil|multiple-values-limit|most-positive-single-float|most-positive-short-float|most-positive-long-float|most-positive-fixnum|most-positive-double-float|most-negative-single-float|most-negative-short-float|most-negative-long-float|most-negative-fixnum|most-negative-double-float|long-float-negative-epsilon|long-float-epsilon|least-positive-single-float|least-positive-short-float|least-positive-normalized-single-float|least-positive-normalized-short-float|least-positive-normalized-long-float|least-positive-normalized-double-float|least-positive-long-float|least-positive-double-float|least-negative-single-float|least-negative-short-float|least-negative-normalized-single-float|least-negative-normalized-short-float|least-negative-normalized-long-float|least-negative-normalized-double-float|least-negative-long-float|least-negative-double-float|lambda-parameters-limit|lambda-list-keywords|internal-time-units-per-second|double-float-negative-epsilon|double-float-epsilon|char-code-limit|call-arguments-limit|boole-xor|boole-set|boole-orc2|boole-orc1|boole-nor|boole-nand|boole-ior|boole-eqv|boole-clr|boole-c2|boole-c1|boole-andc2|boole-andc1|boole-and|boole-2|boole-1|array-total-size-limit|array-rank-limit|array-dimension-limit)(?=([()\\\\s]))\",\"name\":\"constant.language.commonlisp\"},{\"match\":\"(?<=^|[(\\\\s]|,@|,\\\\.?)([-+]?[0-9]+(?:/[0-9]+)*|[-+]?[0-9]*\\\\.?[0-9]+([Ee][-+]?[0-9]+)?|(#[Bb])[-+/01]+|(#[Oo])[-+/-7]+|(#[Xx])[-+/\\\\h]+|(#[0-9]+[Rr]?)[-+/-9A-Za-z]+)(?=([)\\\\s]))\",\"name\":\"constant.numeric.commonlisp\"},{\"match\":\"(?i)(?<=\\\\s)(\\\\.)(?=\\\\s)\",\"name\":\"variable.other.constant.dot.commonlisp\"},{\"match\":\"(?<=^|[(\\\\s]|,@|,\\\\.?)([-+]?[0-9]*\\\\.[0-9]*(([DEFLSdefls])[-+]?[0-9]+)?|[-+]?[0-9]+(\\\\.[0-9]*)?([DEFLSdefls])[-+]?[0-9]+)(?=([)\\\\s]))\",\"name\":\"constant.numeric.commonlisp\"}]},\"declaration\":{\"match\":\"(?i)(?<=^|[(\\\\s])(?:type|speed|special|space|safety|optimize|notinline|inline|ignore|ignorable|ftype|dynamic-extent|declaration|debug|compilation-speed)(?=([()\\\\s]))\",\"name\":\"storage.type.function.declaration.commonlisp\"},\"def-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"3\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"4\":{\"name\":\"variable.other.constant.defname.commonlisp\"},\"6\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\S+?\",\"name\":\"entity.name.function.commonlisp\"}]},\"7\":{\"name\":\"variable.other.constant.defname.commonlisp\"},\"9\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\S+?\",\"name\":\"entity.name.function.commonlisp\"}]}},\"match\":\"(?i)(?<=^|[(\\\\s])(def(?:un|setf|method|macro|ine-symbol-macro|ine-setf-expander|ine-modify-macro|ine-method-combination|ine-compiler-macro|generic))\\\\s+(\\\\(\\\\s*([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+)\\\\s*((,(?:@|\\\\.?))?)([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?)|((,(?:@|\\\\.?))?)([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?))(?=([()\\\\s]))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"2\":{\"name\":\"entity.name.type.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s])(def(?:type|package|ine-condition|class))\\\\s+([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?)(?=([()\\\\s]))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"2\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\S+?\",\"name\":\"variable.other.constant.defname.commonlisp\"}]}},\"match\":\"(?i)(?<=^|[(\\\\s])(defconstant)\\\\s+([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?)(?=([()\\\\s]))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s])(def(?:var|parameter))\\\\s+(?=([()\\\\s]))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"2\":{\"name\":\"entity.name.type.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s])(defstruct)\\\\s+\\\\(?\\\\s*([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?)(?=([()\\\\s]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.commonlisp\"},\"2\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\S+?\",\"name\":\"entity.name.function.commonlisp\"}]}},\"match\":\"(?i)(?<=^|[(\\\\s])(macrolet|labels|flet)\\\\s+\\\\(\\\\s*\\\\(\\\\s*([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?)(?=([()\\\\s]))\"}]},\"escape\":{\"match\":\"(?i)(?<=^|[(\\\\s])#\\\\\\\\\\\\S+?(?=([()\\\\s]))\",\"name\":\"constant.character.escape.commonlisp\"},\"function\":{\"patterns\":[{\"match\":\"(?i)(?<=^|[(\\\\s]|#')(?:values|third|tenth|symbol-value|symbol-plist|symbol-function|svref|subseq|sixth|seventh|second|schar|sbit|row-major-aref|rest|readtable-case|nth|ninth|mask-field|macro-function|logical-pathname-translations|ldb|gethash|getf?|fourth|first|find-class|fill-pointer|fifth|fdefinition|elt|eighth|compiler-macro-function|char|cdr|cddr|cdddr|cddddr|cdddar|cddar|cddadr|cddaar|cdar|cdadr|cdaddr|cdadar|cdaar|cdaadr|cdaaar|car|cadr|caddr|cadddr|caddar|cadar|cadadr|cadaar|caar|caadr|caaddr|caadar|caaar|caaadr|caaaar|bit|aref)(?=([()\\\\s]))\",\"name\":\"support.function.accessor.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|#')(?:yes-or-no-p|y-or-n-p|write-sequence|write-char|write-byte|warn|vector-pop|use-value|use-package|unuse-package|union|unintern|unexport|terpri|tailp|substitute-if-not|substitute-if|substitute|subst-if-not|subst-if|subst|sublis|string-upcase|string-downcase|string-capitalize|store-value|sleep|signal|shadowing-import|shadow|set-syntax-from-char|set-macro-character|set-exclusive-or|set-dispatch-macro-character|set-difference|set|rplacd|rplaca|room|reverse|revappend|require|replace|remprop|remove-if-not|remove-if|remove-duplicates|remove|remhash|read-sequence|read-byte|random|provide|pprint-tabular|pprint-newline|pprint-linear|pprint-fill|nunion|nsubstitute-if-not|nsubstitute-if|nsubstitute|nsubst-if-not|nsubst-if|nsubst|nsublis|nstring-upcase|nstring-downcase|nstring-capitalize|nset-exclusive-or|nset-difference|nreverse|nreconc|nintersection|nconc|muffle-warning|method-combination-error|maphash|makunbound|ldiff|invoke-restart-interactively|invoke-restart|invoke-debugger|invalid-method-error|intersection|inspect|import|get-output-stream-string|get-macro-character|get-dispatch-macro-character|gentemp|gensym|fresh-line|fill|file-position|export|describe|delete-if-not|delete-if|delete-duplicates|delete|continue|clrhash|close|clear-input|break|abort)(?=([()\\\\s]))\",\"name\":\"support.function.f.sideeffects.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|#')(?:zerop|write-to-string|write-string|write-line|write|wild-pathname-p|vectorp|vector-push-extend|vector-push|vector|values-list|user-homedir-pathname|upper-case-p|upgraded-complex-part-type|upgraded-array-element-type|unread-char|unbound-slot-instance|typep|type-of|type-error-expected-type|type-error-datum|two-way-stream-output-stream|two-way-stream-input-stream|truncate|truename|tree-equal|translate-pathname|translate-logical-pathname|tanh?|synonym-stream-symbol|symbolp|symbol-package|symbol-name|sxhash|subtypep|subsetp|stringp|string>=?|string=|string<=?|string/=|string-trim|string-right-trim|string-not-lessp|string-not-greaterp|string-not-equal|string-lessp|string-left-trim|string-greaterp|string-equal|string|streamp|stream-external-format|stream-error-stream|stream-element-type|standard-char-p|stable-sort|sqrt|special-operator-p|sort|some|software-version|software-type|slot-value|slot-makunbound|slot-exists-p|slot-boundp|sinh?|simple-vector-p|simple-string-p|simple-condition-format-control|simple-condition-format-arguments|simple-bit-vector-p|signum|short-site-name|set-pprint-dispatch|search|scale-float|round|restart-name|rename-package|rename-file|rem|reduce|realpart|realp|readtablep|read-preserving-whitespace|read-line|read-from-string|read-delimited-list|read-char-no-hang|read-char|read|rationalp|rationalize|rational|rassoc-if-not|rassoc-if|rassoc|random-state-p|proclaim|probe-file|print-not-readable-object|print|princ-to-string|princ|prin1-to-string|prin1|pprint-tab|pprint-indent|pprint-dispatch|pprint|position-if-not|position-if|position|plusp|phase|peek-char|pathnamep|pathname-version|pathname-type|pathname-name|pathname-match-p|pathname-host|pathname-directory|pathname-device|pathname|parse-namestring|parse-integer|pairlis|packagep|package-used-by-list|package-use-list|package-shadowing-symbols|package-nicknames|package-name|package-error-package|output-stream-p|open-stream-p|open|oddp|numerator|numberp|null|nthcdr|notevery|notany|not|next-method-p|nbutlast|namestring|name-char|mod|mismatch|minusp|min|merge-pathnames|merge|member-if-not|member-if|member|max|maplist|mapl|mapcon|mapcar|mapcan|mapc|map-into|map|make-two-way-stream|make-synonym-stream|make-symbol|make-string-output-stream|make-string-input-stream|make-string|make-sequence|make-random-state|make-pathname|make-package|make-load-form-saving-slots|make-list|make-hash-table|make-echo-stream|make-dispatch-macro-character|make-condition|make-concatenated-stream|make-broadcast-stream|make-array|macroexpand-1|macroexpand|machine-version|machine-type|machine-instance|lower-case-p|long-site-name|logxor|logtest|logorc2|logorc1|lognot|lognor|lognand|logior|logical-pathname|logeqv|logcount|logbitp|logandc2|logandc1|logand|log|load-logical-pathname-translations|load|listp|listen|list-length|list-all-packages|list\\\\*?|lisp-implementation-version|lisp-implementation-type|length|ldb-test|lcm|last|keywordp|isqrt|intern|interactive-stream-p|integerp|integer-length|integer-decode-float|input-stream-p|imagpart|identity|host-namestring|hash-table-test|hash-table-size|hash-table-rehash-threshold|hash-table-rehash-size|hash-table-p|hash-table-count|graphic-char-p|get-universal-time|get-setf-expansion|get-properties|get-internal-run-time|get-internal-real-time|get-decoded-time|gcd|functionp|function-lambda-expression|funcall|ftruncate|fround|format|force-output|fmakunbound|floor|floatp|float-sign|float-radix|float-precision|float-digits|float|finish-output|find-symbol|find-restart|find-package|find-if-not|find-if|find-all-symbols|find|file-write-date|file-string-length|file-namestring|file-length|file-error-pathname|file-author|ffloor|fceiling|fboundp|expt?|every|evenp|eval|equalp?|eql?|ensure-generic-function|ensure-directories-exist|enough-namestring|endp|encode-universal-time|ed|echo-stream-output-stream|echo-stream-input-stream|dribble|dpb|disassemble|directory-namestring|directory|digit-char-p|digit-char|deposit-field|denominator|delete-package|delete-file|decode-universal-time|decode-float|count-if-not|count-if|count|cosh?|copy-tree|copy-symbol|copy-structure|copy-seq|copy-readtable|copy-pprint-dispatch|copy-list|copy-alist|constantp|constantly|consp?|conjugate|concatenated-stream-streams|concatenate|compute-restarts|complexp?|complement|compiled-function-p|compile-file-pathname|compile-file|compile|coerce|code-char|clear-output|class-of|cis|characterp?|char>=?|char=|char<=?|char/=|char-upcase|char-not-lessp|char-not-greaterp|char-not-equal|char-name|char-lessp|char-int|char-greaterp|char-equal|char-downcase|char-code|cerror|cell-error-name|ceiling|call-next-method|byte-size|byte-position|byte|butlast|broadcast-stream-streams|boundp|both-case-p|boole|bit-xor|bit-vector-p|bit-orc2|bit-orc1|bit-not|bit-nor|bit-nand|bit-ior|bit-eqv|bit-andc2|bit-andc1|bit-and|atom|atanh?|assoc-if-not|assoc-if|assoc|asinh?|ash|arrayp|array-total-size|array-row-major-index|array-rank|array-in-bounds-p|array-has-fill-pointer-p|array-element-type|array-displacement|array-dimensions?|arithmetic-error-operation|arithmetic-error-operands|apropos-list|apropos|apply|append|alphanumericp|alpha-char-p|adjustable-array-p|adjust-array|adjoin|acosh?|acons|abs|>=|[=>]|<=?|1-|1\\\\+|/=|[-*+/])(?=([()\\\\s]))\",\"name\":\"support.function.f.sideeffects.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|#')(?:variable|update-instance-for-redefined-class|update-instance-for-different-class|structure|slot-unbound|slot-missing|shared-initialize|remove-method|print-object|no-next-method|no-applicable-method|method-qualifiers|make-load-form|make-instances-obsolete|make-instance|initialize-instance|function-keywords|find-method|documentation|describe-object|compute-applicable-methods|compiler-macro|class-name|change-class|allocate-instance|add-method)(?=([()\\\\s]))\",\"name\":\"support.function.sgf.nosideeffects.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|#')reinitialize-instance(?=([()\\\\s]))\",\"name\":\"support.function.sgf.sideeffects.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|#')satisfies(?=([()\\\\s]))\",\"name\":\"support.function.typespecifier.commonlisp\"}]},\"lambda-list\":{\"match\":\"(?i)(?<=^|[(\\\\s])&(?:[]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?|whole|rest|optional|key|environment|body|aux|allow-other-keys)(?=([()\\\\s]))\",\"name\":\"keyword.other.lambdalist.commonlisp\"},\"macro\":{\"patterns\":[{\"match\":\"(?i)(?<=^|[(\\\\s])(?:with-standard-io-syntax|with-slots|with-simple-restart|with-package-iterator|with-hash-table-iterator|with-condition-restarts|with-compilation-unit|with-accessors|when|unless|typecase|time|step|shiftf|setf|rotatef|return|restart-case|restart-bind|psetf|prog2|prog1|prog\\\\*?|print-unreadable-object|pprint-logical-block|pprint-exit-if-list-exhausted|or|nth-value|multiple-value-setq|multiple-value-list|multiple-value-bind|make-method|loop|lambda|ignore-errors|handler-case|handler-bind|formatter|etypecase|dotimes|dolist|do-symbols|do-external-symbols|do-all-symbols|do\\\\*?|destructuring-bind|defun|deftype|defstruct|defsetf|defpackage|defmethod|defmacro|define-symbol-macro|define-setf-expander|define-condition|define-compiler-macro|defgeneric|defconstant|defclass|declaim|ctypecase|cond|call-method|assert|and)(?=([()\\\\s]))\",\"name\":\"storage.type.function.m.nosideeffects.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s])(?:with-output-to-string|with-open-stream|with-open-file|with-input-from-string|untrace|trace|remf|pushnew|push|psetq|pprint-pop|pop|otherwise|loop-finish|incf|in-package|ecase|defvar|defparameter|define-modify-macro|define-method-combination|decf|check-type|ccase|case)(?=([()\\\\s]))\",\"name\":\"storage.type.function.m.sideeffects.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s])setq(?=([()\\\\s]))\",\"name\":\"storage.type.function.specialform.commonlisp\"}]},\"package\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"support.type.package.commonlisp\"},\"3\":{\"name\":\"support.type.package.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(([]!$%\\\\&*+\\\\--9<-\\\\[^_a-{}~]+?)|(#))(?=::?)\"}]},\"punctuation\":{\"patterns\":[{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(['`])(?=\\\\S)\",\"name\":\"variable.other.constant.singlequote.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?):[]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?(?=([()\\\\s]))\",\"name\":\"entity.name.variable.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#)([0-9]*)(?=\\\\()\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#)([0-9]*)(\\\\*)(?=[01])\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#0??\\\\*)(?=([()\\\\s]))\",\"name\":\"variable.other.constant.sharpsign.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#)([0-9]+)([Aa])(?=.)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#)([0-9]+)(=)(?=.)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#)([0-9]+)(#)(?=.)\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#([-+]))(?=\\\\S)\",\"name\":\"variable.other.constant.sharpsign.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#([',.CPScps]))(?=\\\\S)\",\"name\":\"variable.other.constant.sharpsign.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"support.type.package.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(#)(:)(?=\\\\S)\"},{\"captures\":{\"2\":{\"name\":\"variable.other.constant.backquote.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.backquote.commonlisp\"},\"4\":{\"name\":\"variable.other.constant.backquote.commonlisp\"},\"5\":{\"name\":\"variable.other.constant.backquote.commonlisp\"}},\"match\":\"(?i)(?<=^|[(\\\\s])((`#)|(`)(,(?:@|\\\\.?))?|(,(?:@|\\\\.?)))(?=\\\\S)\"}]},\"special-operator\":{\"captures\":{\"2\":{\"name\":\"keyword.control.commonlisp\"}},\"match\":\"(?i)(\\\\(\\\\s*)(unwind-protect|throw|the|tagbody|symbol-macrolet|return-from|quote|progv|progn|multiple-value-prog1|multiple-value-call|macrolet|locally|load-time-value|let\\\\*?|labels|if|go|function|flet|eval-when|catch|block)(?=([()\\\\s]))\"},\"string\":{\"begin\":\"(\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.commonlisp\"}},\"end\":\"(\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.commonlisp\"}},\"name\":\"string.quoted.double.commonlisp\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.formattedstring.commonlisp\"},\"2\":{\"name\":\"variable.other.constant.formattedstring.commonlisp\"},\"8\":{\"name\":\"storage.type.function.formattedstring.commonlisp\"},\"10\":{\"name\":\"storage.type.function.formattedstring.commonlisp\"}},\"match\":\"(?i)(~)(((([-+]?[0-9]+)|('.)|[#V])*?(,)?)*?)((:@|@:|[:@])?)([]();<>\\\\[^{}])\"},{\"captures\":{\"1\":{\"name\":\"entity.name.variable.commonlisp\"},\"2\":{\"name\":\"variable.other.constant.formattedstring.commonlisp\"},\"8\":{\"name\":\"entity.name.variable.commonlisp\"},\"10\":{\"name\":\"entity.name.variable.commonlisp\"}},\"match\":\"(?i)(~)(((([-+]?[0-9]+)|('.)|[#V])*?(,)?)*?)((:@|@:|[:@])?)([$%\\\\&*?A-GIOPRSTWX_|~])\"},{\"captures\":{\"1\":{\"name\":\"entity.name.variable.commonlisp\"},\"2\":{\"name\":\"variable.other.constant.formattedstring.commonlisp\"},\"8\":{\"name\":\"entity.name.variable.commonlisp\"},\"10\":{\"name\":\"entity.name.variable.commonlisp\"},\"11\":{\"name\":\"entity.name.variable.commonlisp\"},\"12\":{\"name\":\"entity.name.variable.commonlisp\"}},\"match\":\"(?i)(~)(((([-+]?[0-9]+)|('.)|[#V])*?(,)?)*?)((:@|@:|[:@])?)(/)([]!#-\\\\&*+\\\\--:<-\\\\[^_a-{}~]+?)(/)\"},{\"match\":\"(~\\\\n)\",\"name\":\"variable.other.constant.formattedstring.commonlisp\"}]},\"style-guide\":{\"patterns\":[{\"captures\":{\"3\":{\"name\":\"source.commonlisp\"}},\"match\":\"(?i)(?<=(?:^|[(\\\\s]|,@|,\\\\.?)')(\\\\S+?)(::?)((\\\\+[^+\\\\s]+\\\\+)|(\\\\*[^*\\\\s]+\\\\*))(?=([()\\\\s]))\"},{\"match\":\"(?i)(?<=\\\\S:|^|[(\\\\s]|,@|,\\\\.?)(\\\\+[^+\\\\s]+\\\\+)(?=([()\\\\s]))\",\"name\":\"variable.other.constant.earmuffsplus.commonlisp\"},{\"match\":\"(?i)(?<=\\\\S:|^|[(\\\\s]|,@|,\\\\.?)(\\\\*[^*\\\\s]+\\\\*)(?=([()\\\\s]))\",\"name\":\"string.regexp.earmuffsasterisk.commonlisp\"}]},\"symbol\":{\"match\":\"(?i)(?<=^|[(\\\\s])(?:method-combination|declare)(?=([()\\\\s]))\",\"name\":\"storage.type.function.symbol.commonlisp\"},\"type\":{\"match\":\"(?i)(?<=^|[(\\\\s])(?:unsigned-byte|standard-char|standard|single-float|simple-vector|simple-string|simple-bit-vector|simple-base-string|simple-array|signed-byte|short-float|long-float|keyword|fixnum|extended-char|double-float|compiled-function|boolean|bignum|base-string|base-char)(?=([()\\\\s]))\",\"name\":\"support.type.t.commonlisp\"},\"variable\":{\"patterns\":[{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)\\\\*(?:trace-output|terminal-io|standard-output|standard-input|readtable|read-suppress|read-eval|read-default-float-format|read-base|random-state|query-io|print-right-margin|print-readably|print-radix|print-pretty|print-pprint-dispatch|print-miser-width|print-lines|print-level|print-length|print-gensym|print-escape|print-circle|print-case|print-base|print-array|package|modules|macroexpand-hook|load-verbose|load-truename|load-print|load-pathname|gensym-counter|features|error-output|default-pathname-defaults|debugger-hook|debug-io|compile-verbose|compile-print|compile-file-truename|compile-file-pathname|break-on-signals)\\\\*(?=([()\\\\s]))\",\"name\":\"string.regexp.earmuffsasterisk.commonlisp\"},{\"match\":\"(?i)(?<=^|[(\\\\s]|,@|,\\\\.?)(?:\\\\*\\\\*\\\\*?|\\\\+\\\\+\\\\+?|///?)(?=([()\\\\s]))\",\"name\":\"variable.other.repl.commonlisp\"}]}},\"scopeName\":\"source.commonlisp\",\"aliases\":[\"lisp\"]}"))];
|
|
2
|
+
//#endregion
|
|
3
|
+
export { common_lisp_default as default };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { createJiti } from "jiti";
|
|
5
|
+
//#region src/config.ts
|
|
6
|
+
const DEFAULTS = {
|
|
7
|
+
plannarFolder: ".plannar",
|
|
8
|
+
exportsFolder: ".plannar/exports"
|
|
9
|
+
};
|
|
10
|
+
function applyDerivedDefaults(config, overrides) {
|
|
11
|
+
if (!overrides.exportsFolder) config.exportsFolder = `${config.plannarFolder}/exports`;
|
|
12
|
+
return config;
|
|
13
|
+
}
|
|
14
|
+
async function loadConfigFile(filePath) {
|
|
15
|
+
if (!existsSync(filePath)) return null;
|
|
16
|
+
if (filePath.endsWith(".json")) {
|
|
17
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
18
|
+
return JSON.parse(raw);
|
|
19
|
+
}
|
|
20
|
+
const mod = await createJiti(import.meta.url).import(filePath);
|
|
21
|
+
return mod.default ?? mod;
|
|
22
|
+
}
|
|
23
|
+
function merge(target, source) {
|
|
24
|
+
const result = { ...target };
|
|
25
|
+
for (const key of Object.keys(source)) {
|
|
26
|
+
const sv = source[key];
|
|
27
|
+
const tv = target[key];
|
|
28
|
+
if (sv && typeof sv === "object" && !Array.isArray(sv) && tv && typeof tv === "object" && !Array.isArray(tv)) result[key] = merge(tv, sv);
|
|
29
|
+
else result[key] = sv;
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
async function resolveConfig(cwd = process.cwd()) {
|
|
34
|
+
const globalConfigDir = join(homedir(), ".config", "plannar");
|
|
35
|
+
let globalConfig = null;
|
|
36
|
+
for (const ext of [
|
|
37
|
+
"js",
|
|
38
|
+
"ts",
|
|
39
|
+
"json"
|
|
40
|
+
]) {
|
|
41
|
+
globalConfig = await loadConfigFile(join(globalConfigDir, `plannar.config.${ext}`));
|
|
42
|
+
if (globalConfig) break;
|
|
43
|
+
}
|
|
44
|
+
let localConfig = null;
|
|
45
|
+
for (const ext of [
|
|
46
|
+
"js",
|
|
47
|
+
"ts",
|
|
48
|
+
"json"
|
|
49
|
+
]) {
|
|
50
|
+
localConfig = await loadConfigFile(join(cwd, `plannar.config.${ext}`));
|
|
51
|
+
if (localConfig) break;
|
|
52
|
+
}
|
|
53
|
+
let merged = { ...DEFAULTS };
|
|
54
|
+
if (globalConfig) merged = merge(merged, globalConfig);
|
|
55
|
+
if (localConfig) merged = merge(merged, localConfig);
|
|
56
|
+
return applyDerivedDefaults(merged, { exportsFolder: Boolean(localConfig?.exportsFolder || globalConfig?.exportsFolder) });
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
export { resolveConfig as n, merge as t };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var coq_default = [Object.freeze(JSON.parse("{\"displayName\":\"Coq\",\"fileTypes\":[\"v\"],\"name\":\"coq\",\"patterns\":[{\"match\":\"\\\\b(From|Require|Import|Export|Local|Global|Include)\\\\b\",\"name\":\"keyword.control.import.coq\"},{\"match\":\"\\\\b((Open|Close|Delimit|Undelimit|Bind)\\\\s+Scope)\\\\b\",\"name\":\"keyword.control.import.coq\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"entity.name.function.theorem.coq\"}},\"match\":\"\\\\b(Theorem|Lemma|Remark|Fact|Corollary|Property|Proposition)\\\\s+(([_\xA0\\\\p{L}])(['0-9_\xA0\\\\p{L}])*)\"},{\"match\":\"\\\\bGoal\\\\b\",\"name\":\"keyword.source.coq\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.assumption.coq\"}},\"match\":\"\\\\b(Parameters?|Axioms?|Conjectures?|Variables?|Hypothesis|Hypotheses)(\\\\s+Inline)?\\\\b\\\\s*\\\\(?\\\\s*(([_\xA0\\\\p{L}])(['0-9_\xA0\\\\p{L}])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.assumption.coq\"}},\"match\":\"\\\\b(Context)\\\\b\\\\s*`?\\\\s*([({])?\\\\s*(([_\xA0\\\\p{L}])(['0-9_\xA0\\\\p{L}])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.function.coq\"}},\"match\":\"(\\\\b(?:Program|Local)\\\\s+)?\\\\b(Definition|Fixpoint|CoFixpoint|Function|Example|Let(?:(?:\\\\s+|\\\\s+Co)Fixpoint)?|Instance|Equations|Equations?)\\\\s+(([_\xA0\\\\p{L}])(['0-9_\xA0\\\\p{L}])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"}},\"match\":\"\\\\b((Show\\\\s+)?Obligation\\\\s+Tactic|Obligations\\\\s+of|Obligation|Next\\\\s+Obligation(\\\\s+of)?|Solve\\\\s+Obligations(\\\\s+of)?|Solve\\\\s+All\\\\s+Obligations|Admit\\\\s+Obligations(\\\\s+of)?|Instance)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.type.coq\"}},\"match\":\"\\\\b(CoInductive|Inductive|Variant|Record|Structure|Class)\\\\s+(>\\\\s*)?(([_\xA0\\\\p{L}])(['0-9_\xA0\\\\p{L}])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"entity.name.function.ltac\"}},\"match\":\"\\\\b(Ltac)\\\\s+(([_\xA0\\\\p{L}])(['0-9_\xA0\\\\p{L}])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.function.ltac\"}},\"match\":\"\\\\b(Ltac2)\\\\s+(mutable\\\\s+)?(rec\\\\s+)?(([_\xA0\\\\p{L}])(['0-9_\xA0\\\\p{L}])*)\"},{\"match\":\"\\\\b(Hint(\\\\s+Mode)?|Create\\\\s+HintDb|Constructors|Resolve|Rewrite|Ltac2??|Implicit(\\\\s+Types)?|Set|Unset|Remove\\\\s+Printing|Arguments|((Tactic|Reserved)\\\\s+)?Notation|Infix|Section|Module(\\\\s+Type)?|End|Check|Print(\\\\s+All)?|Eval|Compute|Search|Universe|Coercions|Generalizable(\\\\s+(All|Variable))?|Existing(\\\\s+(Class|Instance))?|Canonical|About|Locate|Collection|Typeclasses\\\\s+(Opaque|Transparent))\\\\b\",\"name\":\"keyword.source.coq\"},{\"match\":\"\\\\b(Proof|Qed|Defined|Save|Abort(\\\\s+All)?|Undo(\\\\s+To)?|Restart|Focus|Unfocus|Unfocused|Show\\\\s+Proof|Show\\\\s+Existentials|Show|Unshelve)\\\\b\",\"name\":\"keyword.source.coq\"},{\"match\":\"\\\\b(Quit|Drop|Time|Redirect|Timeout|Fail)\\\\b\",\"name\":\"keyword.debug.coq\"},{\"match\":\"\\\\b(admit|Admitted)\\\\b\",\"name\":\"invalid.illegal.admit.coq\"},{\"match\":\"[-*+:<=>{|}¬→↔∧∨≠≤≥]\",\"name\":\"keyword.operator.coq\"},{\"match\":\"\\\\b(forall|exists|Type|Set|Prop|nat|bool|option|list|unit|sum|prod|comparison|Empty_set)\\\\b|[∀∃]\",\"name\":\"support.type.coq\"},{\"match\":\"\\\\b(try|repeat|rew|progress|fresh|solve|now|first|tryif|at|once|do|only)\\\\b\",\"name\":\"keyword.control.ltac\"},{\"match\":\"\\\\b(into|with|eqn|by|move|as|using)\\\\b\",\"name\":\"keyword.control.ltac\"},{\"match\":\"\\\\b(match|lazymatch|multimatch|match!|lazy_match!|multi_match!|fun|with|return|end|let|in|if|then|else|fix|for|where|and)\\\\b|λ\",\"name\":\"keyword.control.gallina\"},{\"match\":\"\\\\b(intros??|revert|induction|destruct|auto|eauto|tauto|eassumption|apply|eapply|assumption|constructor|econstructor|reflexivity|inversion|injection|assert|split|esplit|omega|fold|unfold|specialize|rewrite|erewrite|change|symmetry|refine|simpl|intuition|firstorder|generalize|idtac|exists??|eexists|elim|eelim|rename|subst|congruence|trivial|left|right|set|pose|discriminate|clear|clearbody|contradict|contradiction|exact|dependent|remember|case|easy|unshelve|pattern|transitivity|etransitivity|f_equal|exfalso|replace|abstract|cycle|swap|revgoals|shelve|unshelve)\\\\b\",\"name\":\"support.function.builtin.ltac\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\(\\\\*(?!#)\",\"end\":\"\\\\*\\\\)\",\"name\":\"comment.block.coq\",\"patterns\":[{\"include\":\"#block_comment\"},{\"include\":\"#block_double_quoted_string\"}]},{\"match\":\"\\\\b((0([Xx])\\\\h+)|([0-9]+(\\\\.[0-9]+)?))\\\\b\",\"name\":\"constant.numeric.gallina\"},{\"match\":\"\\\\b(True|False|tt|false|true|Some|None|nil|cons|pair|inl|inr|[OS]|Eq|Lt|Gt|id|ex|all|unique)\\\\b\",\"name\":\"constant.language.constructor.gallina\"},{\"match\":\"\\\\b_\\\\b\",\"name\":\"constant.language.wildcard.coq\"},{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coq\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coq\"}},\"name\":\"string.quoted.double.coq\"}],\"repository\":{\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\(\\\\*(?!#)\",\"end\":\"\\\\*\\\\)\",\"name\":\"comment.block.coq\",\"patterns\":[{\"include\":\"#block_comment\"},{\"include\":\"#block_double_quoted_string\"}]},\"block_double_quoted_string\":{\"applyEndPatternLast\":1,\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coq\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coq\"}},\"name\":\"string.quoted.double.coq\"}},\"scopeName\":\"source.coq\"}"))];
|
|
2
|
+
//#endregion
|
|
3
|
+
export { coq_default as default };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CompileOptions } from "@mdx-js/mdx";
|
|
2
|
+
|
|
3
|
+
//#region src/plugins/meta.d.ts
|
|
4
|
+
interface BindingMeta {
|
|
5
|
+
/** Prop that receives the current state value — e.g. 'value', 'checked' */
|
|
6
|
+
valueProp: string;
|
|
7
|
+
/** Prop/callback that fires on change — e.g. 'onChange', 'onValueChange' */
|
|
8
|
+
changeProp: string;
|
|
9
|
+
/**
|
|
10
|
+
* Expression that extracts the value from the change event.
|
|
11
|
+
* Direction: callback arg → state.
|
|
12
|
+
* String form is inlined directly, e.g. 'e.target.value'.
|
|
13
|
+
*/
|
|
14
|
+
extract: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional inverse transform from state → prop shape.
|
|
17
|
+
* When omitted, state is passed directly as valueProp.
|
|
18
|
+
* String form is inlined, with `v` replaced by the state name.
|
|
19
|
+
*/
|
|
20
|
+
inject?: string;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/generate-mdx.d.ts
|
|
24
|
+
interface GenerateMdxOptions extends CompileOptions {
|
|
25
|
+
content?: string;
|
|
26
|
+
bindings?: Record<string, BindingMeta>;
|
|
27
|
+
}
|
|
28
|
+
declare function generateMdx(filepath: string, options?: GenerateMdxOptions): Promise<string>;
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/plugins/remark-state-bind.d.ts
|
|
31
|
+
interface AstNode {
|
|
32
|
+
type: string;
|
|
33
|
+
children?: AstNode[];
|
|
34
|
+
data?: any;
|
|
35
|
+
[key: string]: any;
|
|
36
|
+
}
|
|
37
|
+
declare const remarkStateBind: (options?: {
|
|
38
|
+
bindings?: Record<string, BindingMeta>;
|
|
39
|
+
}) => (tree: AstNode) => void;
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/plugin.d.ts
|
|
42
|
+
declare function mdxPlugin(options?: {
|
|
43
|
+
bindings?: Record<string, BindingMeta>;
|
|
44
|
+
development?: boolean;
|
|
45
|
+
}): {
|
|
46
|
+
name: string;
|
|
47
|
+
load(id: string): Promise<string | undefined>;
|
|
48
|
+
};
|
|
49
|
+
//#endregion
|
|
50
|
+
export { type BindingMeta, type GenerateMdxOptions, generateMdx, mdxPlugin, remarkStateBind };
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { compile } from "@mdx-js/mdx";
|
|
4
|
+
import remarkGfm from "remark-gfm";
|
|
5
|
+
import rehypePrettyCode from "rehype-pretty-code";
|
|
6
|
+
import rehypeAutolinkHeadings from "rehype-autolink-headings";
|
|
7
|
+
import { Parser } from "acorn";
|
|
8
|
+
import acornJsx from "acorn-jsx";
|
|
9
|
+
import { readFileSync } from "node:fs";
|
|
10
|
+
//#region src/plugins/meta.ts
|
|
11
|
+
/**
|
|
12
|
+
* Built-in HTML element bindings.
|
|
13
|
+
* Keys are element name, or `element:type` for inputs with a type attribute.
|
|
14
|
+
*/
|
|
15
|
+
const htmlBindings = {
|
|
16
|
+
input: {
|
|
17
|
+
valueProp: "value",
|
|
18
|
+
changeProp: "onChange",
|
|
19
|
+
extract: "e.target.value"
|
|
20
|
+
},
|
|
21
|
+
"input:checkbox": {
|
|
22
|
+
valueProp: "checked",
|
|
23
|
+
changeProp: "onChange",
|
|
24
|
+
extract: "e.target.checked"
|
|
25
|
+
},
|
|
26
|
+
"input:number": {
|
|
27
|
+
valueProp: "value",
|
|
28
|
+
changeProp: "onChange",
|
|
29
|
+
extract: "e.target.valueAsNumber"
|
|
30
|
+
},
|
|
31
|
+
textarea: {
|
|
32
|
+
valueProp: "value",
|
|
33
|
+
changeProp: "onChange",
|
|
34
|
+
extract: "e.target.value"
|
|
35
|
+
},
|
|
36
|
+
select: {
|
|
37
|
+
valueProp: "value",
|
|
38
|
+
changeProp: "onChange",
|
|
39
|
+
extract: "e.target.value"
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region src/plugins/remark-state-bind.ts
|
|
44
|
+
const _parser = Parser.extend(acornJsx());
|
|
45
|
+
function parseEsm(code) {
|
|
46
|
+
return _parser.parse(code, {
|
|
47
|
+
ecmaVersion: "latest",
|
|
48
|
+
sourceType: "module",
|
|
49
|
+
locations: true
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const remarkStateBind = (options) => {
|
|
53
|
+
const bindings = {
|
|
54
|
+
...htmlBindings,
|
|
55
|
+
...options?.bindings
|
|
56
|
+
};
|
|
57
|
+
const state = {
|
|
58
|
+
counter: 0,
|
|
59
|
+
importAdded: false
|
|
60
|
+
};
|
|
61
|
+
return (tree) => {
|
|
62
|
+
state.counter = 0;
|
|
63
|
+
state.importAdded = false;
|
|
64
|
+
visitAndTransform(tree, tree, state, bindings);
|
|
65
|
+
if (state.importAdded) tree.children.unshift({
|
|
66
|
+
type: "mdxjsEsm",
|
|
67
|
+
value: `import { useState } from "react"`,
|
|
68
|
+
data: { estree: parseEsm(`import { useState } from "react"`) }
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
function visitAndTransform(node, root, state, bindings) {
|
|
73
|
+
if (!node.children) return;
|
|
74
|
+
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
75
|
+
const child = node.children[i];
|
|
76
|
+
if (child.children) visitAndTransform(child, root, state, bindings);
|
|
77
|
+
}
|
|
78
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
79
|
+
const child = node.children[i];
|
|
80
|
+
if (child.type === "mdxJsxFlowElement" && child.name === "Playground") {
|
|
81
|
+
const transformed = transformPlayground(child, node.children, i, root, state, bindings);
|
|
82
|
+
i += transformed.indexOffset;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function transformPlayground(playground, siblings, index, root, state, bindings) {
|
|
87
|
+
const binds = collectBinds(playground, playground);
|
|
88
|
+
const names = binds.map((b) => b.name);
|
|
89
|
+
const dupes = names.filter((n, i) => names.indexOf(n) !== i);
|
|
90
|
+
if (dupes.length > 0) throw new Error(`Duplicate bind names in <Playground>: ${[...new Set(dupes)].join(", ")}`);
|
|
91
|
+
applyBindings(playground, binds, bindings);
|
|
92
|
+
const componentName = `_PlannarPlayground_${state.counter++}`;
|
|
93
|
+
const childrenJsx = (playground.children || []).map(serializeNode).join("\n");
|
|
94
|
+
const stateDecls = binds.map((b) => `const [${b.name}, set${capitalize(b.name)}] = useState(${b.initialValue})`).join("\n ");
|
|
95
|
+
const esmCode = `function ${componentName}() {\n ${stateDecls ? stateDecls + "\n " : ""}return (<>\n${indent(childrenJsx)}\n</>)\n}`;
|
|
96
|
+
if (stateDecls && !state.importAdded) state.importAdded = true;
|
|
97
|
+
const esmNode = {
|
|
98
|
+
type: "mdxjsEsm",
|
|
99
|
+
value: esmCode,
|
|
100
|
+
data: { estree: parseEsm(esmCode) }
|
|
101
|
+
};
|
|
102
|
+
siblings[index] = {
|
|
103
|
+
type: "mdxJsxFlowElement",
|
|
104
|
+
name: componentName,
|
|
105
|
+
attributes: [],
|
|
106
|
+
children: []
|
|
107
|
+
};
|
|
108
|
+
root.children.unshift(esmNode);
|
|
109
|
+
return { indexOffset: 0 };
|
|
110
|
+
}
|
|
111
|
+
function collectBinds(node, owningPlayground) {
|
|
112
|
+
const binds = [];
|
|
113
|
+
if (node !== owningPlayground && node.type === "mdxJsxFlowElement" && node.name === "Playground") return binds;
|
|
114
|
+
if (Array.isArray(node.attributes)) {
|
|
115
|
+
for (const attr of node.attributes) if (attr.type === "mdxJsxAttribute" && attr.name === "bind") {
|
|
116
|
+
const attrValue = attr.value;
|
|
117
|
+
if (typeof attrValue === "object" && attrValue !== null && attrValue.type === "mdxJsxAttributeValueExpression") {
|
|
118
|
+
const expr = String(attrValue.value ?? "");
|
|
119
|
+
const colonIdx = expr.indexOf(":");
|
|
120
|
+
if (colonIdx === -1) binds.push({
|
|
121
|
+
name: expr,
|
|
122
|
+
initialValue: "undefined"
|
|
123
|
+
});
|
|
124
|
+
else {
|
|
125
|
+
const name = expr.slice(0, colonIdx);
|
|
126
|
+
const initial = expr.slice(colonIdx + 1) || "undefined";
|
|
127
|
+
binds.push({
|
|
128
|
+
name,
|
|
129
|
+
initialValue: initial
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
} else {
|
|
133
|
+
const raw = String(attrValue ?? "");
|
|
134
|
+
const colonIdx = raw.indexOf(":");
|
|
135
|
+
if (colonIdx === -1) binds.push({
|
|
136
|
+
name: raw,
|
|
137
|
+
initialValue: "undefined"
|
|
138
|
+
});
|
|
139
|
+
else {
|
|
140
|
+
const name = raw.slice(0, colonIdx);
|
|
141
|
+
const initial = raw.slice(colonIdx + 1) || "undefined";
|
|
142
|
+
binds.push({
|
|
143
|
+
name,
|
|
144
|
+
initialValue: initial
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (Array.isArray(node.children)) for (const child of node.children) binds.push(...collectBinds(child, owningPlayground));
|
|
151
|
+
return binds;
|
|
152
|
+
}
|
|
153
|
+
function applyBindings(node, binds, bindings) {
|
|
154
|
+
const bindNameSet = new Set(binds.map((b) => b.name));
|
|
155
|
+
if (Array.isArray(node.attributes)) {
|
|
156
|
+
const attrs = node.attributes;
|
|
157
|
+
for (let i = attrs.length - 1; i >= 0; i--) {
|
|
158
|
+
const attr = attrs[i];
|
|
159
|
+
if (attr.type === "mdxJsxAttribute" && attr.name === "bind") {
|
|
160
|
+
const parsed = parseBindValue(attr);
|
|
161
|
+
if (parsed && bindNameSet.has(parsed.name)) {
|
|
162
|
+
const elName = String(node.name || "").toLowerCase();
|
|
163
|
+
const typeAttr = attrs.find((a) => a.type === "mdxJsxAttribute" && a.name === "type");
|
|
164
|
+
const replacement = bindingAttrs(elName, typeAttr ? String(typeAttr.value ?? "text") : "", parsed.name, bindings);
|
|
165
|
+
attrs.splice(i, 1, ...replacement);
|
|
166
|
+
} else attrs.splice(i, 1);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (Array.isArray(node.children)) for (const child of node.children) applyBindings(child, binds, bindings);
|
|
171
|
+
}
|
|
172
|
+
function parseBindValue(attr) {
|
|
173
|
+
const raw = parseAttrValue(attr);
|
|
174
|
+
if (!raw) return null;
|
|
175
|
+
const colonIdx = raw.indexOf(":");
|
|
176
|
+
if (colonIdx === -1) return {
|
|
177
|
+
name: raw,
|
|
178
|
+
initialValue: "undefined"
|
|
179
|
+
};
|
|
180
|
+
return {
|
|
181
|
+
name: raw.slice(0, colonIdx),
|
|
182
|
+
initialValue: raw.slice(colonIdx + 1) || "undefined"
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
function parseAttrValue(attr) {
|
|
186
|
+
const v = attr.value;
|
|
187
|
+
if (typeof v === "object" && v !== null && v.type === "mdxJsxAttributeValueExpression") return String(v.value ?? "");
|
|
188
|
+
if (typeof v === "string") return v;
|
|
189
|
+
if (v == null) return "";
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
function bindingAttrs(elName, inputType, name, bindings) {
|
|
193
|
+
const meta = bindings[inputType ? `${elName}:${inputType}` : elName] ?? bindings[elName];
|
|
194
|
+
if (!meta) return [];
|
|
195
|
+
const setter = `set${capitalize(name)}`;
|
|
196
|
+
const valueExpr = meta.inject ? meta.inject.replace(/\bv\b/g, name) : name;
|
|
197
|
+
return [exprAttr(meta.valueProp, valueExpr), exprAttr(meta.changeProp, `(e) => ${setter}(${meta.extract})`)];
|
|
198
|
+
}
|
|
199
|
+
function exprAttr(name, expr) {
|
|
200
|
+
return {
|
|
201
|
+
type: "mdxJsxAttribute",
|
|
202
|
+
name,
|
|
203
|
+
value: {
|
|
204
|
+
type: "mdxJsxAttributeValueExpression",
|
|
205
|
+
value: expr,
|
|
206
|
+
data: { estree: _parser.parse(expr, {
|
|
207
|
+
ecmaVersion: "latest",
|
|
208
|
+
sourceType: "module",
|
|
209
|
+
locations: true
|
|
210
|
+
}) }
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
function serializeNode(node) {
|
|
215
|
+
switch (node.type) {
|
|
216
|
+
case "text": return escapeJsxText(String(node.value ?? ""));
|
|
217
|
+
case "inlineCode": return `<code>${escapeJsxText(String(node.value ?? ""))}</code>`;
|
|
218
|
+
case "strong": return `<strong>${(node.children || []).map(serializeNode).join("")}</strong>`;
|
|
219
|
+
case "emphasis": return `<em>${(node.children || []).map(serializeNode).join("")}</em>`;
|
|
220
|
+
case "delete": return `<del>${(node.children || []).map(serializeNode).join("")}</del>`;
|
|
221
|
+
case "link": return `<a href="${node.url}">${(node.children || []).map(serializeNode).join("")}</a>`;
|
|
222
|
+
case "image": return `<img src="${node.url}" alt="${node.alt || ""}" />`;
|
|
223
|
+
case "break": return "<br />";
|
|
224
|
+
case "thematicBreak": return "<hr />";
|
|
225
|
+
case "mdxTextExpression":
|
|
226
|
+
case "mdxFlowExpression": return `{${node.value}}`;
|
|
227
|
+
case "mdxJsxTextElement":
|
|
228
|
+
case "mdxJsxFlowElement": return serializeJsxElement(node);
|
|
229
|
+
case "paragraph": return `<p>${(node.children || []).map(serializeNode).join("")}</p>`;
|
|
230
|
+
case "heading": return `<h${node.depth}>${(node.children || []).map(serializeNode).join("")}</h${node.depth}>`;
|
|
231
|
+
case "blockquote": return `<blockquote>${(node.children || []).map(serializeNode).join("")}</blockquote>`;
|
|
232
|
+
case "list": {
|
|
233
|
+
const tag = node.ordered ? "ol" : "ul";
|
|
234
|
+
return `<${tag}>${(node.children || []).map(serializeNode).join("")}</${tag}>`;
|
|
235
|
+
}
|
|
236
|
+
case "listItem": return `<li>${(node.children || []).map(serializeNode).join("")}</li>`;
|
|
237
|
+
case "code": return `<pre><code>${escapeJsxText(String(node.value ?? ""))}</code></pre>`;
|
|
238
|
+
default:
|
|
239
|
+
if (Array.isArray(node.children)) return node.children.map(serializeNode).join("");
|
|
240
|
+
return "";
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
function serializeJsxElement(node) {
|
|
244
|
+
const attrs = (node.attributes || []).map(serializeAttribute).filter(Boolean).join(" ");
|
|
245
|
+
const openTag = `<${node.name}${attrs ? " " + attrs : ""}>`;
|
|
246
|
+
const body = (node.children || []).map(serializeNode).join("");
|
|
247
|
+
const closeTag = `</${node.name}>`;
|
|
248
|
+
return openTag + body + closeTag;
|
|
249
|
+
}
|
|
250
|
+
function serializeAttribute(attr) {
|
|
251
|
+
if (attr.type === "mdxJsxExpressionAttribute") return `{...${attr.value}}`;
|
|
252
|
+
if (attr.type === "mdxJsxAttribute") {
|
|
253
|
+
if (typeof attr.value === "object" && attr.value !== null && attr.value.type === "mdxJsxAttributeValueExpression") return `${attr.name}={${attr.value.value}}`;
|
|
254
|
+
const strVal = attr.value == null ? "" : String(attr.value);
|
|
255
|
+
return `${attr.name}=${JSON.stringify(strVal)}`;
|
|
256
|
+
}
|
|
257
|
+
return "";
|
|
258
|
+
}
|
|
259
|
+
function escapeJsxText(text) {
|
|
260
|
+
return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\{/g, "{").replace(/\}/g, "}");
|
|
261
|
+
}
|
|
262
|
+
function capitalize(s) {
|
|
263
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
264
|
+
}
|
|
265
|
+
function indent(text) {
|
|
266
|
+
return text.split("\n").map((line) => " " + line).join("\n");
|
|
267
|
+
}
|
|
268
|
+
//#endregion
|
|
269
|
+
//#region src/generate-mdx.ts
|
|
270
|
+
async function generateMdx(filepath, options = {}) {
|
|
271
|
+
const { content, bindings, ...mdxOptions } = options;
|
|
272
|
+
const absolutePath = resolve(filepath);
|
|
273
|
+
const result = await compile({
|
|
274
|
+
value: content ?? await readFile(absolutePath, "utf-8"),
|
|
275
|
+
path: absolutePath
|
|
276
|
+
}, {
|
|
277
|
+
development: false,
|
|
278
|
+
...mdxOptions,
|
|
279
|
+
remarkPlugins: [
|
|
280
|
+
[remarkStateBind, { bindings }],
|
|
281
|
+
remarkGfm,
|
|
282
|
+
...mdxOptions.remarkPlugins ?? []
|
|
283
|
+
],
|
|
284
|
+
rehypePlugins: [
|
|
285
|
+
rehypePrettyCode,
|
|
286
|
+
rehypeAutolinkHeadings,
|
|
287
|
+
...mdxOptions.rehypePlugins ?? []
|
|
288
|
+
]
|
|
289
|
+
});
|
|
290
|
+
return String(result.value);
|
|
291
|
+
}
|
|
292
|
+
//#endregion
|
|
293
|
+
//#region src/plugin.ts
|
|
294
|
+
function hoistImports(code) {
|
|
295
|
+
const imports = [];
|
|
296
|
+
const rest = [];
|
|
297
|
+
for (const line of code.split("\n")) if (line.startsWith("import ")) imports.push(line);
|
|
298
|
+
else rest.push(line);
|
|
299
|
+
return [...imports, ...rest].join("\n");
|
|
300
|
+
}
|
|
301
|
+
function mdxPlugin(options) {
|
|
302
|
+
return {
|
|
303
|
+
name: "mdx",
|
|
304
|
+
async load(id) {
|
|
305
|
+
if (id.endsWith(".mdx")) return hoistImports(await generateMdx(id, {
|
|
306
|
+
content: readFileSync(id, "utf-8"),
|
|
307
|
+
...options
|
|
308
|
+
}));
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
//#endregion
|
|
313
|
+
export { generateMdx, mdxPlugin, remarkStateBind };
|