@react-x11/components 0.1.0 → 0.2.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/README.md +979 -21
- package/dist/ansi/cast.d.ts +48 -0
- package/dist/ansi/cast.d.ts.map +1 -0
- package/dist/ansi/cast.js +135 -0
- package/dist/ansi/cast.js.map +1 -0
- package/dist/ansi/index.d.ts +10 -0
- package/dist/ansi/index.d.ts.map +1 -0
- package/dist/ansi/index.js +27 -0
- package/dist/ansi/index.js.map +1 -0
- package/dist/ansi/palette.d.ts +79 -0
- package/dist/ansi/palette.d.ts.map +1 -0
- package/dist/ansi/palette.js +155 -0
- package/dist/ansi/palette.js.map +1 -0
- package/dist/ansi/parse.d.ts +114 -0
- package/dist/ansi/parse.d.ts.map +1 -0
- package/dist/ansi/parse.js +687 -0
- package/dist/ansi/parse.js.map +1 -0
- package/dist/ansi/sgr.d.ts +87 -0
- package/dist/ansi/sgr.d.ts.map +1 -0
- package/dist/ansi/sgr.js +302 -0
- package/dist/ansi/sgr.js.map +1 -0
- package/dist/ansi/utf8.d.ts +15 -0
- package/dist/ansi/utf8.d.ts.map +1 -0
- package/dist/ansi/utf8.js +82 -0
- package/dist/ansi/utf8.js.map +1 -0
- package/dist/calendar/Calendar.d.ts +136 -0
- package/dist/calendar/Calendar.d.ts.map +1 -0
- package/dist/calendar/Calendar.js +460 -0
- package/dist/calendar/Calendar.js.map +1 -0
- package/dist/calendar/DatePicker.d.ts +52 -0
- package/dist/calendar/DatePicker.d.ts.map +1 -0
- package/dist/calendar/DatePicker.js +257 -0
- package/dist/calendar/DatePicker.js.map +1 -0
- package/dist/calendar/dates.d.ts +90 -0
- package/dist/calendar/dates.d.ts.map +1 -0
- package/dist/calendar/dates.js +236 -0
- package/dist/calendar/dates.js.map +1 -0
- package/dist/calendar/index.d.ts +8 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +15 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/charts/components.d.ts +141 -0
- package/dist/charts/components.d.ts.map +1 -0
- package/dist/charts/components.js +580 -0
- package/dist/charts/components.js.map +1 -0
- package/dist/charts/data.d.ts +198 -0
- package/dist/charts/data.d.ts.map +1 -0
- package/dist/charts/data.js +616 -0
- package/dist/charts/data.js.map +1 -0
- package/dist/charts/hx.d.ts +21 -0
- package/dist/charts/hx.d.ts.map +1 -0
- package/dist/charts/hx.js +15 -0
- package/dist/charts/hx.js.map +1 -0
- package/dist/charts/index.d.ts +27 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +38 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/charts/node.d.ts +96 -0
- package/dist/charts/node.d.ts.map +1 -0
- package/dist/charts/node.js +720 -0
- package/dist/charts/node.js.map +1 -0
- package/dist/charts/render.d.ts +153 -0
- package/dist/charts/render.d.ts.map +1 -0
- package/dist/charts/render.js +762 -0
- package/dist/charts/render.js.map +1 -0
- package/dist/charts/scale.d.ts +42 -0
- package/dist/charts/scale.d.ts.map +1 -0
- package/dist/charts/scale.js +173 -0
- package/dist/charts/scale.js.map +1 -0
- package/dist/charts/spec.d.ts +91 -0
- package/dist/charts/spec.d.ts.map +1 -0
- package/dist/charts/spec.js +33 -0
- package/dist/charts/spec.js.map +1 -0
- package/dist/charts/timers.d.ts +6 -0
- package/dist/charts/timers.d.ts.map +1 -0
- package/dist/charts/timers.js +14 -0
- package/dist/charts/timers.js.map +1 -0
- package/dist/code/hx.d.ts +24 -0
- package/dist/code/hx.d.ts.map +1 -0
- package/dist/code/hx.js +25 -0
- package/dist/code/hx.js.map +1 -0
- package/dist/code/index.d.ts +45 -0
- package/dist/code/index.d.ts.map +1 -0
- package/dist/code/index.js +93 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code-editor/completion.d.ts +26 -0
- package/dist/code-editor/completion.d.ts.map +1 -0
- package/dist/code-editor/completion.js +129 -0
- package/dist/code-editor/completion.js.map +1 -0
- package/dist/code-editor/doc.d.ts +35 -0
- package/dist/code-editor/doc.d.ts.map +1 -0
- package/dist/code-editor/doc.js +162 -0
- package/dist/code-editor/doc.js.map +1 -0
- package/dist/code-editor/hx.d.ts +13 -0
- package/dist/code-editor/hx.d.ts.map +1 -0
- package/dist/code-editor/hx.js +10 -0
- package/dist/code-editor/hx.js.map +1 -0
- package/dist/code-editor/index.d.ts +88 -0
- package/dist/code-editor/index.d.ts.map +1 -0
- package/dist/code-editor/index.js +401 -0
- package/dist/code-editor/index.js.map +1 -0
- package/dist/code-editor/node.d.ts +343 -0
- package/dist/code-editor/node.d.ts.map +1 -0
- package/dist/code-editor/node.js +1521 -0
- package/dist/code-editor/node.js.map +1 -0
- package/dist/code-language/hljs.d.ts +47 -0
- package/dist/code-language/hljs.d.ts.map +1 -0
- package/dist/code-language/hljs.js +211 -0
- package/dist/code-language/hljs.js.map +1 -0
- package/dist/code-language/index.d.ts +22 -0
- package/dist/code-language/index.d.ts.map +1 -0
- package/dist/code-language/index.js +20 -0
- package/dist/code-language/index.js.map +1 -0
- package/dist/code-language/languages/glsl.d.ts +4 -0
- package/dist/code-language/languages/glsl.d.ts.map +1 -0
- package/dist/code-language/languages/glsl.js +99 -0
- package/dist/code-language/languages/glsl.js.map +1 -0
- package/dist/code-language/languages/javascript.d.ts +10 -0
- package/dist/code-language/languages/javascript.d.ts.map +1 -0
- package/dist/code-language/languages/javascript.js +360 -0
- package/dist/code-language/languages/javascript.js.map +1 -0
- package/dist/code-language/languages/json.d.ts +4 -0
- package/dist/code-language/languages/json.d.ts.map +1 -0
- package/dist/code-language/languages/json.js +68 -0
- package/dist/code-language/languages/json.js.map +1 -0
- package/dist/code-language/languages/shell.d.ts +4 -0
- package/dist/code-language/languages/shell.d.ts.map +1 -0
- package/dist/code-language/languages/shell.js +189 -0
- package/dist/code-language/languages/shell.js.map +1 -0
- package/dist/code-language/languages/sql.d.ts +11 -0
- package/dist/code-language/languages/sql.d.ts.map +1 -0
- package/dist/code-language/languages/sql.js +133 -0
- package/dist/code-language/languages/sql.js.map +1 -0
- package/dist/code-language/lezer.d.ts +24 -0
- package/dist/code-language/lezer.d.ts.map +1 -0
- package/dist/code-language/lezer.js +148 -0
- package/dist/code-language/lezer.js.map +1 -0
- package/dist/code-language/registry.d.ts +19 -0
- package/dist/code-language/registry.d.ts.map +1 -0
- package/dist/code-language/registry.js +56 -0
- package/dist/code-language/registry.js.map +1 -0
- package/dist/code-language/runs.d.ts +35 -0
- package/dist/code-language/runs.d.ts.map +1 -0
- package/dist/code-language/runs.js +88 -0
- package/dist/code-language/runs.js.map +1 -0
- package/dist/code-language/stream.d.ts +70 -0
- package/dist/code-language/stream.d.ts.map +1 -0
- package/dist/code-language/stream.js +243 -0
- package/dist/code-language/stream.js.map +1 -0
- package/dist/code-language/textmate.d.ts +27 -0
- package/dist/code-language/textmate.d.ts.map +1 -0
- package/dist/code-language/textmate.js +86 -0
- package/dist/code-language/textmate.js.map +1 -0
- package/dist/code-language/theme.d.ts +26 -0
- package/dist/code-language/theme.d.ts.map +1 -0
- package/dist/code-language/theme.js +108 -0
- package/dist/code-language/theme.js.map +1 -0
- package/dist/code-language/timers.d.ts +7 -0
- package/dist/code-language/timers.d.ts.map +1 -0
- package/dist/code-language/timers.js +22 -0
- package/dist/code-language/timers.js.map +1 -0
- package/dist/code-language/types.d.ts +173 -0
- package/dist/code-language/types.d.ts.map +1 -0
- package/dist/code-language/types.js +41 -0
- package/dist/code-language/types.js.map +1 -0
- package/dist/codeblock/index.d.ts +69 -0
- package/dist/codeblock/index.d.ts.map +1 -0
- package/dist/codeblock/index.js +85 -0
- package/dist/codeblock/index.js.map +1 -0
- package/dist/color-picker/ColorField.d.ts +39 -0
- package/dist/color-picker/ColorField.d.ts.map +1 -0
- package/dist/color-picker/ColorField.js +239 -0
- package/dist/color-picker/ColorField.js.map +1 -0
- package/dist/color-picker/ColorPicker.d.ts +109 -0
- package/dist/color-picker/ColorPicker.d.ts.map +1 -0
- package/dist/color-picker/ColorPicker.js +757 -0
- package/dist/color-picker/ColorPicker.js.map +1 -0
- package/dist/color-picker/color.d.ts +105 -0
- package/dist/color-picker/color.d.ts.map +1 -0
- package/dist/color-picker/color.js +313 -0
- package/dist/color-picker/color.js.map +1 -0
- package/dist/color-picker/index.d.ts +8 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/color-picker/index.js +19 -0
- package/dist/color-picker/index.js.map +1 -0
- package/dist/desktop-calendar/eds.d.ts +102 -0
- package/dist/desktop-calendar/eds.d.ts.map +1 -0
- package/dist/desktop-calendar/eds.js +356 -0
- package/dist/desktop-calendar/eds.js.map +1 -0
- package/dist/desktop-calendar/ical.d.ts +63 -0
- package/dist/desktop-calendar/ical.d.ts.map +1 -0
- package/dist/desktop-calendar/ical.js +57 -0
- package/dist/desktop-calendar/ical.js.map +1 -0
- package/dist/desktop-calendar/index.d.ts +72 -0
- package/dist/desktop-calendar/index.d.ts.map +1 -0
- package/dist/desktop-calendar/index.js +213 -0
- package/dist/desktop-calendar/index.js.map +1 -0
- package/dist/embed/client.d.ts +121 -0
- package/dist/embed/client.d.ts.map +1 -0
- package/dist/embed/client.js +203 -0
- package/dist/embed/client.js.map +1 -0
- package/dist/embed/host.d.ts +96 -0
- package/dist/embed/host.d.ts.map +1 -0
- package/dist/embed/host.js +266 -0
- package/dist/embed/host.js.map +1 -0
- package/dist/embed/index.d.ts +5 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +13 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/timers.d.ts +6 -0
- package/dist/embed/timers.d.ts.map +1 -0
- package/dist/embed/timers.js +16 -0
- package/dist/embed/timers.js.map +1 -0
- package/dist/flow/draw.d.ts +45 -0
- package/dist/flow/draw.d.ts.map +1 -0
- package/dist/flow/draw.js +295 -0
- package/dist/flow/draw.js.map +1 -0
- package/dist/flow/index.d.ts +64 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +306 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/model.d.ts +158 -0
- package/dist/flow/model.d.ts.map +1 -0
- package/dist/flow/model.js +566 -0
- package/dist/flow/model.js.map +1 -0
- package/dist/flow/node.d.ts +429 -0
- package/dist/flow/node.d.ts.map +1 -0
- package/dist/flow/node.js +3025 -0
- package/dist/flow/node.js.map +1 -0
- package/dist/flow/paths.d.ts +43 -0
- package/dist/flow/paths.d.ts.map +1 -0
- package/dist/flow/paths.js +327 -0
- package/dist/flow/paths.js.map +1 -0
- package/dist/flow/types.d.ts +561 -0
- package/dist/flow/types.d.ts.map +1 -0
- package/dist/flow/types.js +2 -0
- package/dist/flow/types.js.map +1 -0
- package/dist/formula/hx.d.ts +24 -0
- package/dist/formula/hx.d.ts.map +1 -0
- package/dist/formula/hx.js +25 -0
- package/dist/formula/hx.js.map +1 -0
- package/dist/formula/index.d.ts +74 -0
- package/dist/formula/index.d.ts.map +1 -0
- package/dist/formula/index.js +155 -0
- package/dist/formula/index.js.map +1 -0
- package/dist/formula/katex.d.ts +78 -0
- package/dist/formula/katex.d.ts.map +1 -0
- package/dist/formula/katex.js +130 -0
- package/dist/formula/katex.js.map +1 -0
- package/dist/formula/layout.d.ts +103 -0
- package/dist/formula/layout.d.ts.map +1 -0
- package/dist/formula/layout.js +716 -0
- package/dist/formula/layout.js.map +1 -0
- package/dist/formula/node.d.ts +50 -0
- package/dist/formula/node.d.ts.map +1 -0
- package/dist/formula/node.js +351 -0
- package/dist/formula/node.js.map +1 -0
- package/dist/html/controls.d.ts +48 -0
- package/dist/html/controls.d.ts.map +1 -0
- package/dist/html/controls.js +195 -0
- package/dist/html/controls.js.map +1 -0
- package/dist/html/css/cascade.d.ts +51 -0
- package/dist/html/css/cascade.d.ts.map +1 -0
- package/dist/html/css/cascade.js +552 -0
- package/dist/html/css/cascade.js.map +1 -0
- package/dist/html/css/parse.d.ts +74 -0
- package/dist/html/css/parse.d.ts.map +1 -0
- package/dist/html/css/parse.js +464 -0
- package/dist/html/css/parse.js.map +1 -0
- package/dist/html/css/style.d.ts +142 -0
- package/dist/html/css/style.d.ts.map +1 -0
- package/dist/html/css/style.js +1145 -0
- package/dist/html/css/style.js.map +1 -0
- package/dist/html/css/ua.d.ts +5 -0
- package/dist/html/css/ua.d.ts.map +1 -0
- package/dist/html/css/ua.js +171 -0
- package/dist/html/css/ua.js.map +1 -0
- package/dist/html/css/values.d.ts +78 -0
- package/dist/html/css/values.d.ts.map +1 -0
- package/dist/html/css/values.js +330 -0
- package/dist/html/css/values.js.map +1 -0
- package/dist/html/dom.d.ts +112 -0
- package/dist/html/dom.d.ts.map +1 -0
- package/dist/html/dom.js +374 -0
- package/dist/html/dom.js.map +1 -0
- package/dist/html/hx.d.ts +24 -0
- package/dist/html/hx.d.ts.map +1 -0
- package/dist/html/hx.js +29 -0
- package/dist/html/hx.js.map +1 -0
- package/dist/html/index.d.ts +137 -0
- package/dist/html/index.d.ts.map +1 -0
- package/dist/html/index.js +339 -0
- package/dist/html/index.js.map +1 -0
- package/dist/html/layout/block.d.ts +58 -0
- package/dist/html/layout/block.d.ts.map +1 -0
- package/dist/html/layout/block.js +724 -0
- package/dist/html/layout/block.js.map +1 -0
- package/dist/html/layout/boxes.d.ts +261 -0
- package/dist/html/layout/boxes.d.ts.map +1 -0
- package/dist/html/layout/boxes.js +725 -0
- package/dist/html/layout/boxes.js.map +1 -0
- package/dist/html/layout/flex.d.ts +16 -0
- package/dist/html/layout/flex.d.ts.map +1 -0
- package/dist/html/layout/flex.js +242 -0
- package/dist/html/layout/flex.js.map +1 -0
- package/dist/html/layout/floats.d.ts +50 -0
- package/dist/html/layout/floats.d.ts.map +1 -0
- package/dist/html/layout/floats.js +110 -0
- package/dist/html/layout/floats.js.map +1 -0
- package/dist/html/layout/inline.d.ts +44 -0
- package/dist/html/layout/inline.d.ts.map +1 -0
- package/dist/html/layout/inline.js +700 -0
- package/dist/html/layout/inline.js.map +1 -0
- package/dist/html/layout/table.d.ts +5 -0
- package/dist/html/layout/table.d.ts.map +1 -0
- package/dist/html/layout/table.js +340 -0
- package/dist/html/layout/table.js.map +1 -0
- package/dist/html/node.d.ts +149 -0
- package/dist/html/node.d.ts.map +1 -0
- package/dist/html/node.js +861 -0
- package/dist/html/node.js.map +1 -0
- package/dist/html/paint.d.ts +48 -0
- package/dist/html/paint.d.ts.map +1 -0
- package/dist/html/paint.js +495 -0
- package/dist/html/paint.js.map +1 -0
- package/dist/html/resources.d.ts +48 -0
- package/dist/html/resources.d.ts.map +1 -0
- package/dist/html/resources.js +156 -0
- package/dist/html/resources.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/heights.d.ts +88 -0
- package/dist/internal/heights.d.ts.map +1 -0
- package/dist/internal/heights.js +203 -0
- package/dist/internal/heights.js.map +1 -0
- package/dist/internal/hx.d.ts +24 -0
- package/dist/internal/hx.d.ts.map +1 -0
- package/dist/internal/hx.js +27 -0
- package/dist/internal/hx.js.map +1 -0
- package/dist/internal/scroll.d.ts +62 -0
- package/dist/internal/scroll.d.ts.map +1 -0
- package/dist/internal/scroll.js +224 -0
- package/dist/internal/scroll.js.map +1 -0
- package/dist/internal/text.d.ts +6 -0
- package/dist/internal/text.d.ts.map +1 -0
- package/dist/internal/text.js +44 -0
- package/dist/internal/text.js.map +1 -0
- package/dist/internal/timers.d.ts +8 -0
- package/dist/internal/timers.d.ts.map +1 -0
- package/dist/internal/timers.js +22 -0
- package/dist/internal/timers.js.map +1 -0
- package/dist/internal/widget.d.ts +40 -0
- package/dist/internal/widget.d.ts.map +1 -0
- package/dist/internal/widget.js +44 -0
- package/dist/internal/widget.js.map +1 -0
- package/dist/markdown/ast.d.ts +126 -0
- package/dist/markdown/ast.d.ts.map +1 -0
- package/dist/markdown/ast.js +8 -0
- package/dist/markdown/ast.js.map +1 -0
- package/dist/markdown/hx.d.ts +24 -0
- package/dist/markdown/hx.d.ts.map +1 -0
- package/dist/markdown/hx.js +25 -0
- package/dist/markdown/hx.js.map +1 -0
- package/dist/markdown/index.d.ts +90 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/markdown/index.js +413 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/parse.d.ts +8 -0
- package/dist/markdown/parse.d.ts.map +1 -0
- package/dist/markdown/parse.js +911 -0
- package/dist/markdown/parse.js.map +1 -0
- package/dist/markdown/spans.d.ts +20 -0
- package/dist/markdown/spans.d.ts.map +1 -0
- package/dist/markdown/spans.js +96 -0
- package/dist/markdown/spans.js.map +1 -0
- package/dist/media-player/backends.d.ts +64 -0
- package/dist/media-player/backends.d.ts.map +1 -0
- package/dist/media-player/backends.js +110 -0
- package/dist/media-player/backends.js.map +1 -0
- package/dist/media-player/control.d.ts +40 -0
- package/dist/media-player/control.d.ts.map +1 -0
- package/dist/media-player/control.js +44 -0
- package/dist/media-player/control.js.map +1 -0
- package/dist/media-player/hx.d.ts +24 -0
- package/dist/media-player/hx.d.ts.map +1 -0
- package/dist/media-player/hx.js +25 -0
- package/dist/media-player/hx.js.map +1 -0
- package/dist/media-player/index.d.ts +107 -0
- package/dist/media-player/index.d.ts.map +1 -0
- package/dist/media-player/index.js +219 -0
- package/dist/media-player/index.js.map +1 -0
- package/dist/media-player/mpv.d.ts +4 -0
- package/dist/media-player/mpv.d.ts.map +1 -0
- package/dist/media-player/mpv.js +120 -0
- package/dist/media-player/mpv.js.map +1 -0
- package/dist/media-player/vlc.d.ts +8 -0
- package/dist/media-player/vlc.d.ts.map +1 -0
- package/dist/media-player/vlc.js +83 -0
- package/dist/media-player/vlc.js.map +1 -0
- package/dist/richtext/index.d.ts +19 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +4 -0
- package/dist/richtext/index.js.map +1 -0
- package/dist/richtext/links.d.ts +12 -0
- package/dist/richtext/links.d.ts.map +1 -0
- package/dist/richtext/links.js +64 -0
- package/dist/richtext/links.js.map +1 -0
- package/dist/richtext/menu.d.ts +11 -0
- package/dist/richtext/menu.d.ts.map +1 -0
- package/dist/richtext/menu.js +43 -0
- package/dist/richtext/menu.js.map +1 -0
- package/dist/richtext/node.d.ts +151 -0
- package/dist/richtext/node.d.ts.map +1 -0
- package/dist/richtext/node.js +255 -0
- package/dist/richtext/node.js.map +1 -0
- package/dist/richtext/runs.d.ts +92 -0
- package/dist/richtext/runs.d.ts.map +1 -0
- package/dist/richtext/runs.js +158 -0
- package/dist/richtext/runs.js.map +1 -0
- package/dist/table/hx.d.ts +24 -0
- package/dist/table/hx.d.ts.map +1 -0
- package/dist/table/hx.js +25 -0
- package/dist/table/hx.js.map +1 -0
- package/dist/table/index.d.ts +169 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/index.js +890 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/rows.d.ts +136 -0
- package/dist/table/rows.d.ts.map +1 -0
- package/dist/table/rows.js +146 -0
- package/dist/table/rows.js.map +1 -0
- package/dist/terminal/backends.d.ts +105 -0
- package/dist/terminal/backends.d.ts.map +1 -0
- package/dist/terminal/backends.js +185 -0
- package/dist/terminal/backends.js.map +1 -0
- package/dist/terminal/hx.d.ts +24 -0
- package/dist/terminal/hx.d.ts.map +1 -0
- package/dist/terminal/hx.js +25 -0
- package/dist/terminal/hx.js.map +1 -0
- package/dist/terminal/index.d.ts +160 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +344 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/title.d.ts +24 -0
- package/dist/terminal/title.d.ts.map +1 -0
- package/dist/terminal/title.js +129 -0
- package/dist/terminal/title.js.map +1 -0
- package/dist/terminal/vt/colors.d.ts +63 -0
- package/dist/terminal/vt/colors.d.ts.map +1 -0
- package/dist/terminal/vt/colors.js +203 -0
- package/dist/terminal/vt/colors.js.map +1 -0
- package/dist/terminal/vt/diff.d.ts +117 -0
- package/dist/terminal/vt/diff.d.ts.map +1 -0
- package/dist/terminal/vt/diff.js +358 -0
- package/dist/terminal/vt/diff.js.map +1 -0
- package/dist/terminal/vt/fonts.d.ts +92 -0
- package/dist/terminal/vt/fonts.d.ts.map +1 -0
- package/dist/terminal/vt/fonts.js +178 -0
- package/dist/terminal/vt/fonts.js.map +1 -0
- package/dist/terminal/vt/index.d.ts +78 -0
- package/dist/terminal/vt/index.d.ts.map +1 -0
- package/dist/terminal/vt/index.js +312 -0
- package/dist/terminal/vt/index.js.map +1 -0
- package/dist/terminal/vt/keys.d.ts +74 -0
- package/dist/terminal/vt/keys.d.ts.map +1 -0
- package/dist/terminal/vt/keys.js +309 -0
- package/dist/terminal/vt/keys.js.map +1 -0
- package/dist/terminal/vt/mouse.d.ts +44 -0
- package/dist/terminal/vt/mouse.d.ts.map +1 -0
- package/dist/terminal/vt/mouse.js +106 -0
- package/dist/terminal/vt/mouse.js.map +1 -0
- package/dist/terminal/vt/node.d.ts +246 -0
- package/dist/terminal/vt/node.d.ts.map +1 -0
- package/dist/terminal/vt/node.js +1068 -0
- package/dist/terminal/vt/node.js.map +1 -0
- package/dist/terminal/vt/pty.d.ts +81 -0
- package/dist/terminal/vt/pty.d.ts.map +1 -0
- package/dist/terminal/vt/pty.js +201 -0
- package/dist/terminal/vt/pty.js.map +1 -0
- package/dist/terminal/vt/renderer.d.ts +179 -0
- package/dist/terminal/vt/renderer.d.ts.map +1 -0
- package/dist/terminal/vt/renderer.js +357 -0
- package/dist/terminal/vt/renderer.js.map +1 -0
- package/dist/terminal/vt/timers.d.ts +6 -0
- package/dist/terminal/vt/timers.d.ts.map +1 -0
- package/dist/terminal/vt/timers.js +16 -0
- package/dist/terminal/vt/timers.js.map +1 -0
- package/dist/terminal/vt/xterm.d.ts +142 -0
- package/dist/terminal/vt/xterm.d.ts.map +1 -0
- package/dist/terminal/vt/xterm.js +32 -0
- package/dist/terminal/vt/xterm.js.map +1 -0
- package/dist/terminal-output/hx.d.ts +24 -0
- package/dist/terminal-output/hx.d.ts.map +1 -0
- package/dist/terminal-output/hx.js +25 -0
- package/dist/terminal-output/hx.js.map +1 -0
- package/dist/terminal-output/index.d.ts +92 -0
- package/dist/terminal-output/index.d.ts.map +1 -0
- package/dist/terminal-output/index.js +179 -0
- package/dist/terminal-output/index.js.map +1 -0
- package/dist/terminal-output/runs.d.ts +27 -0
- package/dist/terminal-output/runs.d.ts.map +1 -0
- package/dist/terminal-output/runs.js +66 -0
- package/dist/terminal-output/runs.js.map +1 -0
- package/dist/three/canvas.d.ts +46 -0
- package/dist/three/canvas.d.ts.map +1 -0
- package/dist/three/canvas.js +305 -0
- package/dist/three/canvas.js.map +1 -0
- package/dist/three/events.d.ts +64 -0
- package/dist/three/events.d.ts.map +1 -0
- package/dist/three/events.js +146 -0
- package/dist/three/events.js.map +1 -0
- package/dist/three/geometries.d.ts +89 -0
- package/dist/three/geometries.d.ts.map +1 -0
- package/dist/three/geometries.js +345 -0
- package/dist/three/geometries.js.map +1 -0
- package/dist/three/globals.d.ts +7 -0
- package/dist/three/globals.d.ts.map +1 -0
- package/dist/three/globals.js +20 -0
- package/dist/three/globals.js.map +1 -0
- package/dist/three/hx.d.ts +9 -0
- package/dist/three/hx.d.ts.map +1 -0
- package/dist/three/hx.js +10 -0
- package/dist/three/hx.js.map +1 -0
- package/dist/three/index.d.ts +22 -0
- package/dist/three/index.d.ts.map +1 -0
- package/dist/three/index.js +24 -0
- package/dist/three/index.js.map +1 -0
- package/dist/three/jsx-dev-runtime.d.ts +19 -0
- package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/three/jsx-dev-runtime.js +2 -0
- package/dist/three/jsx-dev-runtime.js.map +1 -0
- package/dist/three/jsx-runtime.d.ts +19 -0
- package/dist/three/jsx-runtime.d.ts.map +1 -0
- package/dist/three/jsx-runtime.js +2 -0
- package/dist/three/jsx-runtime.js.map +1 -0
- package/dist/three/jsx.d.ts +198 -0
- package/dist/three/jsx.d.ts.map +1 -0
- package/dist/three/jsx.js +2 -0
- package/dist/three/jsx.js.map +1 -0
- package/dist/three/materials.d.ts +125 -0
- package/dist/three/materials.d.ts.map +1 -0
- package/dist/three/materials.js +229 -0
- package/dist/three/materials.js.map +1 -0
- package/dist/three/math.d.ts +146 -0
- package/dist/three/math.d.ts.map +1 -0
- package/dist/three/math.js +464 -0
- package/dist/three/math.js.map +1 -0
- package/dist/three/objects.d.ts +185 -0
- package/dist/three/objects.d.ts.map +1 -0
- package/dist/three/objects.js +309 -0
- package/dist/three/objects.js.map +1 -0
- package/dist/three/passes.d.ts +54 -0
- package/dist/three/passes.d.ts.map +1 -0
- package/dist/three/passes.js +78 -0
- package/dist/three/passes.js.map +1 -0
- package/dist/three/postprocess.d.ts +85 -0
- package/dist/three/postprocess.d.ts.map +1 -0
- package/dist/three/postprocess.js +503 -0
- package/dist/three/postprocess.js.map +1 -0
- package/dist/three/raycast.d.ts +24 -0
- package/dist/three/raycast.d.ts.map +1 -0
- package/dist/three/raycast.js +138 -0
- package/dist/three/raycast.js.map +1 -0
- package/dist/three/reconciler.d.ts +48 -0
- package/dist/three/reconciler.d.ts.map +1 -0
- package/dist/three/reconciler.js +416 -0
- package/dist/three/reconciler.js.map +1 -0
- package/dist/three/renderer-direct.d.ts +102 -0
- package/dist/three/renderer-direct.d.ts.map +1 -0
- package/dist/three/renderer-direct.js +782 -0
- package/dist/three/renderer-direct.js.map +1 -0
- package/dist/three/renderer-indirect.d.ts +68 -0
- package/dist/three/renderer-indirect.d.ts.map +1 -0
- package/dist/three/renderer-indirect.js +438 -0
- package/dist/three/renderer-indirect.js.map +1 -0
- package/dist/three/store.d.ts +81 -0
- package/dist/three/store.d.ts.map +1 -0
- package/dist/three/store.js +110 -0
- package/dist/three/store.js.map +1 -0
- package/dist/timeline/hx.d.ts +18 -0
- package/dist/timeline/hx.d.ts.map +1 -0
- package/dist/timeline/hx.js +10 -0
- package/dist/timeline/hx.js.map +1 -0
- package/dist/timeline/index.d.ts +152 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +383 -0
- package/dist/timeline/index.js.map +1 -0
- package/dist/tray-host/hx.d.ts +24 -0
- package/dist/tray-host/hx.d.ts.map +1 -0
- package/dist/tray-host/hx.js +25 -0
- package/dist/tray-host/hx.js.map +1 -0
- package/dist/tray-host/index.d.ts +110 -0
- package/dist/tray-host/index.d.ts.map +1 -0
- package/dist/tray-host/index.js +191 -0
- package/dist/tray-host/index.js.map +1 -0
- package/dist/tray-host/manager.d.ts +137 -0
- package/dist/tray-host/manager.d.ts.map +1 -0
- package/dist/tray-host/manager.js +462 -0
- package/dist/tray-host/manager.js.map +1 -0
- package/dist/tray-host/notify.d.ts +22 -0
- package/dist/tray-host/notify.d.ts.map +1 -0
- package/dist/tray-host/notify.js +74 -0
- package/dist/tray-host/notify.js.map +1 -0
- package/dist/tray-host/protocol.d.ts +106 -0
- package/dist/tray-host/protocol.d.ts.map +1 -0
- package/dist/tray-host/protocol.js +191 -0
- package/dist/tray-host/protocol.js.map +1 -0
- package/dist/tree/hx.d.ts +24 -0
- package/dist/tree/hx.d.ts.map +1 -0
- package/dist/tree/hx.js +25 -0
- package/dist/tree/hx.js.map +1 -0
- package/dist/tree/index.d.ts +221 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +751 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree/internal.d.ts +18 -0
- package/dist/tree/internal.d.ts.map +1 -0
- package/dist/tree/internal.js +66 -0
- package/dist/tree/internal.js.map +1 -0
- package/dist/tree/rows.d.ts +177 -0
- package/dist/tree/rows.d.ts.map +1 -0
- package/dist/tree/rows.js +179 -0
- package/dist/tree/rows.js.map +1 -0
- package/package.json +166 -12
- package/src/ansi/cast.ts +159 -0
- package/src/ansi/index.ts +53 -0
- package/src/ansi/palette.ts +226 -0
- package/src/ansi/parse.ts +780 -0
- package/src/ansi/sgr.ts +380 -0
- package/src/ansi/utf8.ts +84 -0
- package/src/calendar/Calendar.ts +744 -0
- package/src/calendar/DatePicker.ts +368 -0
- package/src/calendar/dates.ts +307 -0
- package/src/calendar/index.ts +51 -0
- package/src/charts/components.ts +864 -0
- package/src/charts/data.ts +776 -0
- package/src/charts/hx.ts +39 -0
- package/src/charts/index.ts +99 -0
- package/src/charts/node.ts +932 -0
- package/src/charts/render.ts +982 -0
- package/src/charts/scale.ts +214 -0
- package/src/charts/spec.ts +122 -0
- package/src/charts/timers.ts +24 -0
- package/src/code/hx.ts +51 -0
- package/src/code/index.ts +174 -0
- package/src/code-editor/completion.ts +161 -0
- package/src/code-editor/doc.ts +198 -0
- package/src/code-editor/hx.ts +26 -0
- package/src/code-editor/index.ts +615 -0
- package/src/code-editor/node.ts +1926 -0
- package/src/code-language/hljs.ts +302 -0
- package/src/code-language/index.ts +51 -0
- package/src/code-language/languages/glsl.ts +120 -0
- package/src/code-language/languages/javascript.ts +419 -0
- package/src/code-language/languages/json.ts +72 -0
- package/src/code-language/languages/shell.ts +221 -0
- package/src/code-language/languages/sql.ts +165 -0
- package/src/code-language/lezer.ts +190 -0
- package/src/code-language/registry.ts +66 -0
- package/src/code-language/runs.ts +128 -0
- package/src/code-language/stream.ts +306 -0
- package/src/code-language/textmate.ts +134 -0
- package/src/code-language/theme.ts +124 -0
- package/src/code-language/timers.ts +36 -0
- package/src/code-language/types.ts +252 -0
- package/src/codeblock/index.ts +146 -0
- package/src/color-picker/ColorField.ts +333 -0
- package/src/color-picker/ColorPicker.ts +1069 -0
- package/src/color-picker/color.ts +399 -0
- package/src/color-picker/index.ts +50 -0
- package/src/desktop-calendar/eds.ts +484 -0
- package/src/desktop-calendar/ical.ts +119 -0
- package/src/desktop-calendar/index.ts +287 -0
- package/src/embed/client.ts +311 -0
- package/src/embed/host.ts +432 -0
- package/src/embed/index.ts +33 -0
- package/src/embed/timers.ts +32 -0
- package/src/flow/draw.ts +418 -0
- package/src/flow/index.ts +473 -0
- package/src/flow/model.ts +687 -0
- package/src/flow/node.ts +3694 -0
- package/src/flow/paths.ts +403 -0
- package/src/flow/types.ts +634 -0
- package/src/formula/hx.ts +51 -0
- package/src/formula/index.ts +243 -0
- package/src/formula/katex.ts +209 -0
- package/src/formula/layout.ts +876 -0
- package/src/formula/node.ts +467 -0
- package/src/html/controls.ts +244 -0
- package/src/html/css/cascade.ts +606 -0
- package/src/html/css/parse.ts +500 -0
- package/src/html/css/style.ts +1371 -0
- package/src/html/css/ua.ts +174 -0
- package/src/html/css/values.ts +358 -0
- package/src/html/dom.ts +410 -0
- package/src/html/hx.ts +55 -0
- package/src/html/index.ts +545 -0
- package/src/html/layout/block.ts +876 -0
- package/src/html/layout/boxes.ts +981 -0
- package/src/html/layout/flex.ts +297 -0
- package/src/html/layout/floats.ts +125 -0
- package/src/html/layout/inline.ts +870 -0
- package/src/html/layout/table.ts +380 -0
- package/src/html/node.ts +967 -0
- package/src/html/paint.ts +605 -0
- package/src/html/resources.ts +214 -0
- package/src/index.ts +638 -0
- package/src/internal/heights.ts +222 -0
- package/src/internal/hx.ts +53 -0
- package/src/internal/scroll.ts +288 -0
- package/src/internal/text.ts +44 -0
- package/src/internal/timers.ts +44 -0
- package/src/internal/widget.ts +92 -0
- package/src/markdown/ast.ts +163 -0
- package/src/markdown/hx.ts +51 -0
- package/src/markdown/index.ts +686 -0
- package/src/markdown/parse.ts +1037 -0
- package/src/markdown/spans.ts +143 -0
- package/src/media-player/backends.ts +155 -0
- package/src/media-player/control.ts +70 -0
- package/src/media-player/hx.ts +51 -0
- package/src/media-player/index.ts +378 -0
- package/src/media-player/mpv.ts +146 -0
- package/src/media-player/vlc.ts +97 -0
- package/src/richtext/index.ts +42 -0
- package/src/richtext/links.ts +78 -0
- package/src/richtext/menu.ts +49 -0
- package/src/richtext/node.ts +406 -0
- package/src/richtext/runs.ts +253 -0
- package/src/table/hx.ts +51 -0
- package/src/table/index.ts +1270 -0
- package/src/table/rows.ts +275 -0
- package/src/terminal/backends.ts +242 -0
- package/src/terminal/hx.ts +51 -0
- package/src/terminal/index.ts +574 -0
- package/src/terminal/title.ts +172 -0
- package/src/terminal/vt/colors.ts +247 -0
- package/src/terminal/vt/diff.ts +467 -0
- package/src/terminal/vt/fonts.ts +233 -0
- package/src/terminal/vt/index.ts +443 -0
- package/src/terminal/vt/keys.ts +369 -0
- package/src/terminal/vt/mouse.ts +144 -0
- package/src/terminal/vt/node.ts +1242 -0
- package/src/terminal/vt/pty.ts +334 -0
- package/src/terminal/vt/renderer.ts +555 -0
- package/src/terminal/vt/timers.ts +31 -0
- package/src/terminal/vt/xterm.ts +193 -0
- package/src/terminal-output/hx.ts +51 -0
- package/src/terminal-output/index.ts +340 -0
- package/src/terminal-output/runs.ts +79 -0
- package/src/three/canvas.ts +451 -0
- package/src/three/events.ts +197 -0
- package/src/three/geometries.ts +429 -0
- package/src/three/globals.ts +34 -0
- package/src/three/hx.ts +22 -0
- package/src/three/index.ts +98 -0
- package/src/three/jsx-dev-runtime.ts +27 -0
- package/src/three/jsx-runtime.ts +38 -0
- package/src/three/jsx.ts +275 -0
- package/src/three/materials.ts +270 -0
- package/src/three/math.ts +585 -0
- package/src/three/objects.ts +397 -0
- package/src/three/passes.ts +90 -0
- package/src/three/postprocess.ts +677 -0
- package/src/three/raycast.ts +189 -0
- package/src/three/react-reconciler.d.ts +50 -0
- package/src/three/reconciler.ts +624 -0
- package/src/three/renderer-direct.ts +1055 -0
- package/src/three/renderer-indirect.ts +570 -0
- package/src/three/store.ts +207 -0
- package/src/timeline/hx.ts +31 -0
- package/src/timeline/index.ts +603 -0
- package/src/tray-host/hx.ts +51 -0
- package/src/tray-host/index.ts +331 -0
- package/src/tray-host/manager.ts +639 -0
- package/src/tray-host/notify.ts +102 -0
- package/src/tray-host/protocol.ts +235 -0
- package/src/tree/hx.ts +51 -0
- package/src/tree/index.ts +1127 -0
- package/src/tree/internal.ts +87 -0
- package/src/tree/rows.ts +334 -0
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -9
- package/src/sparkline/index.d.ts +0 -29
- package/src/sparkline/index.js +0 -50
- package/src/sparkline/node.js +0 -72
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/code-language/languages/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Language } from '../types.js';
|
|
2
|
+
/** Options for {@link sql}. All additive — the base is generic ANSI-ish. */
|
|
3
|
+
export interface SqlOptions {
|
|
4
|
+
/** Extra keywords, e.g. a dialect's. Matched case-insensitively. */
|
|
5
|
+
keywords?: readonly string[];
|
|
6
|
+
/** Treat `#` as a line comment (MySQL). `--` and `/* */` always work. */
|
|
7
|
+
hashComments?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** SQL. `sql()` for the generic dialect, options for the house one. */
|
|
10
|
+
export declare function sql(options?: SqlOptions): Language;
|
|
11
|
+
//# sourceMappingURL=sql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../src/code-language/languages/sql.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8D5C,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,uEAAuE;AACvE,wBAAgB,GAAG,CAAC,OAAO,GAAE,UAAe,GAAG,QAAQ,CAoFtD"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// SQL, as a stream mode. Written here rather than pulled from an ecosystem
|
|
2
|
+
// because the obvious donor (`@codemirror/lang-sql`) depends on the whole
|
|
3
|
+
// CodeMirror editor core (`@codemirror/state`, `language`, `autocomplete`),
|
|
4
|
+
// which is a lot of install closure for a keyword list — see AGENTS.md on
|
|
5
|
+
// why that trade is taken seriously. Tokenizing SQL (not parsing it!) is
|
|
6
|
+
// small: strings, quoted identifiers, comments, numbers, parameters,
|
|
7
|
+
// keywords.
|
|
8
|
+
import { streamLanguage } from '../stream.js';
|
|
9
|
+
const KEYWORDS = new Set(('add all alter and any as asc autoincrement between by cascade case cast ' +
|
|
10
|
+
'check collate column commit constraint create cross current current_date ' +
|
|
11
|
+
'current_time current_timestamp database default delete desc distinct drop ' +
|
|
12
|
+
'else end escape except exists explain fetch filter first following for ' +
|
|
13
|
+
'foreign from full generated group grouping having if ignore ilike in index ' +
|
|
14
|
+
'inner insert intersect into is join key last lateral left like limit ' +
|
|
15
|
+
'materialized natural no not null nulls of offset on only or order outer ' +
|
|
16
|
+
'over partition preceding primary range recursive references rename ' +
|
|
17
|
+
'replace restrict returning right rollback row rows select set show some ' +
|
|
18
|
+
'table temporary then to transaction trigger truncate union unique update ' +
|
|
19
|
+
'using values view when where window with without').split(' '));
|
|
20
|
+
const TYPES = new Set(('bigint binary bit blob boolean char character clob date datetime decimal ' +
|
|
21
|
+
'double enum float int integer interval json jsonb numeric precision real ' +
|
|
22
|
+
'serial smallint text time timestamp timestamptz tinyint uuid varbinary ' +
|
|
23
|
+
'varchar').split(' '));
|
|
24
|
+
const BUILTINS = new Set(('abs avg ceil coalesce concat count floor greatest ifnull least length ' +
|
|
25
|
+
'lower ltrim max min mod now nullif power random round rtrim substr ' +
|
|
26
|
+
'substring sum trim upper').split(' '));
|
|
27
|
+
const ATOMS = new Set(['true', 'false', 'unknown']);
|
|
28
|
+
const OPERATOR = /[+\-*/<>=~!|&%^]/;
|
|
29
|
+
const PUNCT = /[;,.]/;
|
|
30
|
+
const BRACKET = /[()]/;
|
|
31
|
+
/** Consume string content until an un-doubled closing quote or the line
|
|
32
|
+
* ends; report whether it closed. */
|
|
33
|
+
function eatStringTail(stream) {
|
|
34
|
+
while (!stream.eol()) {
|
|
35
|
+
if (stream.eat("'")) {
|
|
36
|
+
if (!stream.eat("'"))
|
|
37
|
+
return true; // a lone quote closes; '' is an escape
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
stream.next();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
/** SQL. `sql()` for the generic dialect, options for the house one. */
|
|
46
|
+
export function sql(options = {}) {
|
|
47
|
+
const extra = new Set((options.keywords ?? []).map((word) => word.toLowerCase()));
|
|
48
|
+
function token(stream, state) {
|
|
49
|
+
if (state.comment) {
|
|
50
|
+
if (stream.match(/^.*?\*\//))
|
|
51
|
+
state.comment = false;
|
|
52
|
+
else
|
|
53
|
+
stream.skipToEnd();
|
|
54
|
+
return 'comment';
|
|
55
|
+
}
|
|
56
|
+
if (state.string) {
|
|
57
|
+
state.string = !eatStringTail(stream);
|
|
58
|
+
return 'string';
|
|
59
|
+
}
|
|
60
|
+
if (stream.eatSpace())
|
|
61
|
+
return null;
|
|
62
|
+
if (stream.match('--')) {
|
|
63
|
+
stream.skipToEnd();
|
|
64
|
+
return 'comment';
|
|
65
|
+
}
|
|
66
|
+
if (options.hashComments && stream.match('#')) {
|
|
67
|
+
stream.skipToEnd();
|
|
68
|
+
return 'comment';
|
|
69
|
+
}
|
|
70
|
+
if (stream.match('/*')) {
|
|
71
|
+
state.comment = true;
|
|
72
|
+
if (stream.match(/^.*?\*\//))
|
|
73
|
+
state.comment = false;
|
|
74
|
+
else
|
|
75
|
+
stream.skipToEnd();
|
|
76
|
+
return 'comment';
|
|
77
|
+
}
|
|
78
|
+
// 'string' — standard escapes the quote by doubling it; may span lines
|
|
79
|
+
if (stream.eat("'")) {
|
|
80
|
+
state.string = !eatStringTail(stream);
|
|
81
|
+
return 'string';
|
|
82
|
+
}
|
|
83
|
+
// "quoted identifier" / `mysql identifier`
|
|
84
|
+
const identQuote = stream.eat('"') ?? stream.eat('`');
|
|
85
|
+
if (identQuote) {
|
|
86
|
+
stream.eatWhile((ch) => ch !== identQuote);
|
|
87
|
+
stream.eat(identQuote);
|
|
88
|
+
return 'variableName';
|
|
89
|
+
}
|
|
90
|
+
// parameters: $1, :name, @name, ?
|
|
91
|
+
if (stream.match(/^\$\d+/) || stream.match(/^[:@][A-Za-z_][\w$]*/)) {
|
|
92
|
+
return 'atom';
|
|
93
|
+
}
|
|
94
|
+
if (stream.eat('?'))
|
|
95
|
+
return 'atom';
|
|
96
|
+
if (stream.match(/^\d+(\.\d*)?([eE][+-]?\d+)?/) || stream.match(/^\.\d+/)) {
|
|
97
|
+
return 'number';
|
|
98
|
+
}
|
|
99
|
+
if (stream.match(/^[A-Za-z_][\w$]*/)) {
|
|
100
|
+
const word = stream.current().toLowerCase();
|
|
101
|
+
if (KEYWORDS.has(word) || extra.has(word))
|
|
102
|
+
return 'keyword';
|
|
103
|
+
if (TYPES.has(word))
|
|
104
|
+
return 'typeName';
|
|
105
|
+
if (ATOMS.has(word))
|
|
106
|
+
return 'atom';
|
|
107
|
+
if (BUILTINS.has(word) && stream.match(/^\s*\(/, false)) {
|
|
108
|
+
return 'function';
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
if (stream.eat(BRACKET))
|
|
113
|
+
return 'bracket';
|
|
114
|
+
if (stream.eat(PUNCT))
|
|
115
|
+
return 'punctuation';
|
|
116
|
+
if (stream.eatWhile(OPERATOR))
|
|
117
|
+
return 'operator';
|
|
118
|
+
stream.next();
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
return streamLanguage({
|
|
122
|
+
name: 'sql',
|
|
123
|
+
languageData: {
|
|
124
|
+
lineComment: '--',
|
|
125
|
+
wordChars: '$',
|
|
126
|
+
completions: [...KEYWORDS, ...TYPES, ...BUILTINS].sort(),
|
|
127
|
+
indentAfter: /[([]\s*$/,
|
|
128
|
+
},
|
|
129
|
+
startState: () => ({ comment: false, string: false }),
|
|
130
|
+
token,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=sql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/code-language/languages/sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Language, LanguageData } from './types.js';
|
|
2
|
+
/** The slice of a Lezer `LRParser` this adapter calls. */
|
|
3
|
+
export interface LezerParserLike {
|
|
4
|
+
parse(input: string): unknown;
|
|
5
|
+
}
|
|
6
|
+
/** The slice of `@lezer/highlight` the adapter uses — also the injection
|
|
7
|
+
* point tests (and bundlers that dislike dynamic import) use. */
|
|
8
|
+
export interface LezerHighlightLike {
|
|
9
|
+
highlightTree(tree: unknown, highlighter: unknown, putStyle: (from: number, to: number, classes: string) => void): void;
|
|
10
|
+
classHighlighter: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface LezerLanguageOptions {
|
|
13
|
+
name: string;
|
|
14
|
+
parser: LezerParserLike;
|
|
15
|
+
data?: LanguageData;
|
|
16
|
+
/** Pass the `@lezer/highlight` module yourself (tests, static bundles);
|
|
17
|
+
* defaults to `import('@lezer/highlight')`. */
|
|
18
|
+
highlight?: LezerHighlightLike | Promise<LezerHighlightLike>;
|
|
19
|
+
/** Reparse debounce, ms (default 30). */
|
|
20
|
+
delay?: number;
|
|
21
|
+
}
|
|
22
|
+
/** Wrap a Lezer parser as a {@link Language}. */
|
|
23
|
+
export declare function lezerLanguage(options: LezerLanguageOptions): Language;
|
|
24
|
+
//# sourceMappingURL=lezer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lezer.d.ts","sourceRoot":"","sources":["../../src/code-language/lezer.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EAKb,MAAM,YAAY,CAAC;AAEpB,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED;iEACiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,aAAa,CACX,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC5D,IAAI,CAAC;IACR,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;mDAC+C;IAC/C,SAAS,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0HD,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAMrE"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// The Lezer adapter: plug a CodeMirror-ecosystem grammar (`@lezer/javascript`,
|
|
2
|
+
// `@lezer/python`, `@lezer/rust`, …) into `<CodeEditor language>`.
|
|
3
|
+
//
|
|
4
|
+
// ```ts
|
|
5
|
+
// import { parser } from '@lezer/javascript';
|
|
6
|
+
// <CodeEditor language={lezerLanguage({ name: 'js', parser })} />
|
|
7
|
+
// ```
|
|
8
|
+
//
|
|
9
|
+
// Dependency policy, following the `ical.js` precedent (AGENTS.md): the app
|
|
10
|
+
// installs the grammar package; `@lezer/highlight` — the small (~100 KB,
|
|
11
|
+
// one-dependency) module that turns a Lezer tree into styled ranges — is
|
|
12
|
+
// loaded with a dynamic `import()` that is allowed to fail. It is declared
|
|
13
|
+
// as an *optional peer* rather than an optional dependency because every
|
|
14
|
+
// `@lezer/<lang>` grammar already depends on it: the app that has a parser
|
|
15
|
+
// to pass in has the highlighter on disk, and an optionalDependency would
|
|
16
|
+
// install it even for apps that never touch this file. The parser itself is
|
|
17
|
+
// typed structurally (`LezerParserLike`) so this package's type graph stays
|
|
18
|
+
// free of lezer's.
|
|
19
|
+
//
|
|
20
|
+
// Tokenization is asynchronous by design: a reparse is scheduled on a short
|
|
21
|
+
// debounce after each edit, and the editor repaints when `invalidate` fires
|
|
22
|
+
// — stale colours for a few tens of milliseconds, never a blocked keystroke.
|
|
23
|
+
// (Incremental reparse via `TreeFragments` is a planned refinement; the
|
|
24
|
+
// seam already carries the edit ranges it needs.)
|
|
25
|
+
import { startTimeout, stopTimeout } from './timers.js';
|
|
26
|
+
/** `classHighlighter` emits `tok-keyword tok-comment …`; the editor's token
|
|
27
|
+
* vocabulary *is* those names unprefixed, so the mapping is a strip. */
|
|
28
|
+
function classesToType(classes) {
|
|
29
|
+
const first = classes.split(' ', 1)[0];
|
|
30
|
+
return first.startsWith('tok-') ? first.slice(4) : first;
|
|
31
|
+
}
|
|
32
|
+
class LezerTokenizer {
|
|
33
|
+
options;
|
|
34
|
+
host;
|
|
35
|
+
lines = [''];
|
|
36
|
+
tokens = [];
|
|
37
|
+
hl = null;
|
|
38
|
+
failed = false;
|
|
39
|
+
timer = null;
|
|
40
|
+
disposed = false;
|
|
41
|
+
parseSeq = 0;
|
|
42
|
+
constructor(options, host) {
|
|
43
|
+
this.options = options;
|
|
44
|
+
this.host = host;
|
|
45
|
+
const supplied = options.highlight;
|
|
46
|
+
const loading = supplied
|
|
47
|
+
? Promise.resolve(supplied)
|
|
48
|
+
: // a bare specifier the bundler must not pre-resolve: see header
|
|
49
|
+
import('@lezer/highlight').then((m) => m);
|
|
50
|
+
loading.then((module_) => {
|
|
51
|
+
if (this.disposed)
|
|
52
|
+
return;
|
|
53
|
+
this.hl = module_;
|
|
54
|
+
this.schedule(0);
|
|
55
|
+
}, () => {
|
|
56
|
+
// No highlighter on disk: paint plain, once, quietly — the same
|
|
57
|
+
// "absence is a normal state" rule the desktop calendar follows.
|
|
58
|
+
this.failed = true;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
setLines(lines) {
|
|
62
|
+
this.lines = lines;
|
|
63
|
+
this.tokens = [];
|
|
64
|
+
this.schedule(0);
|
|
65
|
+
}
|
|
66
|
+
edit(_edit) {
|
|
67
|
+
// Full reparse on the debounce; the old tokens keep painting meanwhile.
|
|
68
|
+
// The LineEdit is unused today — it is what the TreeFragments-based
|
|
69
|
+
// incremental version will consume.
|
|
70
|
+
this.schedule(this.options.delay ?? 30);
|
|
71
|
+
}
|
|
72
|
+
lineTokens(line) {
|
|
73
|
+
return this.tokens[line] ?? [];
|
|
74
|
+
}
|
|
75
|
+
dispose() {
|
|
76
|
+
this.disposed = true;
|
|
77
|
+
stopTimeout(this.timer);
|
|
78
|
+
this.timer = null;
|
|
79
|
+
}
|
|
80
|
+
schedule(delay) {
|
|
81
|
+
if (this.failed || !this.hl || this.disposed)
|
|
82
|
+
return;
|
|
83
|
+
stopTimeout(this.timer);
|
|
84
|
+
this.timer = startTimeout(() => {
|
|
85
|
+
this.timer = null;
|
|
86
|
+
this.reparse();
|
|
87
|
+
}, delay);
|
|
88
|
+
}
|
|
89
|
+
reparse() {
|
|
90
|
+
const hl = this.hl;
|
|
91
|
+
if (!hl || this.disposed)
|
|
92
|
+
return;
|
|
93
|
+
const seq = ++this.parseSeq;
|
|
94
|
+
const lines = this.lines;
|
|
95
|
+
const text = lines.join('\n');
|
|
96
|
+
let tree;
|
|
97
|
+
try {
|
|
98
|
+
tree = this.options.parser.parse(text);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return; // a grammar that throws paints plain rather than crashing
|
|
102
|
+
}
|
|
103
|
+
// line starts, for slicing document offsets into per-line tokens
|
|
104
|
+
const starts = new Array(lines.length);
|
|
105
|
+
let offset = 0;
|
|
106
|
+
for (let i = 0; i < lines.length; i++) {
|
|
107
|
+
starts[i] = offset;
|
|
108
|
+
offset += lines[i].length + 1;
|
|
109
|
+
}
|
|
110
|
+
const perLine = lines.map(() => []);
|
|
111
|
+
let line = 0;
|
|
112
|
+
const put = (from, to, classes) => {
|
|
113
|
+
const type = classesToType(classes);
|
|
114
|
+
while (line + 1 < lines.length && starts[line + 1] <= from)
|
|
115
|
+
line++;
|
|
116
|
+
let l = line;
|
|
117
|
+
let a = from;
|
|
118
|
+
while (a < to && l < lines.length) {
|
|
119
|
+
const lineEnd = starts[l] + lines[l].length;
|
|
120
|
+
const b = Math.min(to, lineEnd);
|
|
121
|
+
if (b > a) {
|
|
122
|
+
perLine[l].push({ from: a - starts[l], to: b - starts[l], type });
|
|
123
|
+
}
|
|
124
|
+
a = Math.max(b, starts[l] + lines[l].length + 1);
|
|
125
|
+
l++;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
try {
|
|
129
|
+
hl.highlightTree(tree, hl.classHighlighter, put);
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (seq !== this.parseSeq || this.disposed || this.lines !== lines)
|
|
135
|
+
return;
|
|
136
|
+
this.tokens = perLine;
|
|
137
|
+
this.host.invalidate(0);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Wrap a Lezer parser as a {@link Language}. */
|
|
141
|
+
export function lezerLanguage(options) {
|
|
142
|
+
return {
|
|
143
|
+
name: options.name,
|
|
144
|
+
data: options.data,
|
|
145
|
+
createTokenizer: (host) => new LezerTokenizer(options, host),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=lezer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lezer.js","sourceRoot":"","sources":["../../src/code-language/lezer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Language } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* The `Language` for a markdown fence tag (`js`, `tsx`, `bash`, …), or
|
|
4
|
+
* null for a tag nothing here tokenizes. Callers decide what null means:
|
|
5
|
+
* `codeRuns` consults `resolveLanguage` first — `hljsLanguage` is what goes
|
|
6
|
+
* there for breadth — and paints plain text when that answers null too.
|
|
7
|
+
*/
|
|
8
|
+
export declare function languageForTag(tag: string): Language | null;
|
|
9
|
+
/**
|
|
10
|
+
* Run a tokenizer over a whole static text. The editor pulls line by line
|
|
11
|
+
* while painting; a static code block wants everything once — this is that
|
|
12
|
+
* adapter. Returns one token array per line.
|
|
13
|
+
*/
|
|
14
|
+
export declare function tokenizeText(language: Language, text: string): ReadonlyArray<ReadonlyArray<{
|
|
15
|
+
from: number;
|
|
16
|
+
to: number;
|
|
17
|
+
type: string;
|
|
18
|
+
}>>;
|
|
19
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/code-language/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA8B3D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,GACX,aAAa,CAAC,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAO1E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { glsl } from './languages/glsl.js';
|
|
2
|
+
import { javascript } from './languages/javascript.js';
|
|
3
|
+
import { json } from './languages/json.js';
|
|
4
|
+
import { shell } from './languages/shell.js';
|
|
5
|
+
import { sql } from './languages/sql.js';
|
|
6
|
+
/**
|
|
7
|
+
* The `Language` for a markdown fence tag (`js`, `tsx`, `bash`, …), or
|
|
8
|
+
* null for a tag nothing here tokenizes. Callers decide what null means:
|
|
9
|
+
* `codeRuns` consults `resolveLanguage` first — `hljsLanguage` is what goes
|
|
10
|
+
* there for breadth — and paints plain text when that answers null too.
|
|
11
|
+
*/
|
|
12
|
+
export function languageForTag(tag) {
|
|
13
|
+
switch (tag.toLowerCase()) {
|
|
14
|
+
case 'js':
|
|
15
|
+
case 'javascript':
|
|
16
|
+
case 'mjs':
|
|
17
|
+
case 'cjs':
|
|
18
|
+
return javascript();
|
|
19
|
+
case 'jsx':
|
|
20
|
+
return javascript({ jsx: true });
|
|
21
|
+
case 'ts':
|
|
22
|
+
case 'typescript':
|
|
23
|
+
return javascript({ typescript: true });
|
|
24
|
+
case 'tsx':
|
|
25
|
+
return javascript({ typescript: true, jsx: true });
|
|
26
|
+
case 'json':
|
|
27
|
+
case 'jsonc':
|
|
28
|
+
return json();
|
|
29
|
+
case 'sh':
|
|
30
|
+
case 'bash':
|
|
31
|
+
case 'zsh':
|
|
32
|
+
case 'shell':
|
|
33
|
+
case 'console':
|
|
34
|
+
return shell();
|
|
35
|
+
case 'sql':
|
|
36
|
+
return sql();
|
|
37
|
+
case 'glsl':
|
|
38
|
+
return glsl();
|
|
39
|
+
default:
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run a tokenizer over a whole static text. The editor pulls line by line
|
|
45
|
+
* while painting; a static code block wants everything once — this is that
|
|
46
|
+
* adapter. Returns one token array per line.
|
|
47
|
+
*/
|
|
48
|
+
export function tokenizeText(language, text) {
|
|
49
|
+
const lines = text.split('\n');
|
|
50
|
+
const tokenizer = language.createTokenizer({ invalidate: () => { } });
|
|
51
|
+
tokenizer.setLines(lines);
|
|
52
|
+
const out = lines.map((_, i) => tokenizer.lineTokens(i));
|
|
53
|
+
tokenizer.dispose?.();
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/code-language/registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC;QACV,KAAK,YAAY,CAAC;QAClB,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACR,OAAO,UAAU,EAAE,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC;QACV,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,IAAI,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC;QACV,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,KAAK,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,GAAG,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,IAAI,EAAE,CAAC;QAChB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Language, TokenStyles } from './types.js';
|
|
2
|
+
/** One styled run of code. Structurally a `<richtext>` run. */
|
|
3
|
+
export interface CodeRun {
|
|
4
|
+
text: string;
|
|
5
|
+
color?: string;
|
|
6
|
+
weight?: number;
|
|
7
|
+
style?: 'normal' | 'italic';
|
|
8
|
+
}
|
|
9
|
+
export interface CodeRunOptions {
|
|
10
|
+
/** Token palette; `autoTokenStyles(background)` picks a built-in one. */
|
|
11
|
+
styles: TokenStyles;
|
|
12
|
+
/** The plain-text colour for gaps and unstyled tokens. */
|
|
13
|
+
color: string;
|
|
14
|
+
/** Resolves a `'$token'` colour a custom palette may use; unresolved
|
|
15
|
+
* `$tokens` drop to the plain colour rather than reaching the paint
|
|
16
|
+
* path as literal dollar strings. */
|
|
17
|
+
resolveToken?: (name: string) => string | undefined;
|
|
18
|
+
/** An explicit `Language` (a Lezer or TextMate adapter, say) — takes
|
|
19
|
+
* precedence over whatever the tag would have resolved to. */
|
|
20
|
+
language?: Language;
|
|
21
|
+
/**
|
|
22
|
+
* A `Language` for a fence tag the built-ins do not cover — the seam for
|
|
23
|
+
* highlight.js (`hljsLanguage`), a Lezer grammar per tag, or a lookup of
|
|
24
|
+
* the app's own. Consulted before {@link languageForTag}, so it can also
|
|
25
|
+
* override a built-in; `null` for a tag it does not know.
|
|
26
|
+
*/
|
|
27
|
+
resolveLanguage?: (tag: string) => Language | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Highlight `text` as `tag` (a fence tag: `js`, `bash`, …). The runs
|
|
31
|
+
* concatenate back to exactly `text`; an empty or unknown tag yields one
|
|
32
|
+
* plain run.
|
|
33
|
+
*/
|
|
34
|
+
export declare function codeRuns(text: string, tag: string, opts: CodeRunOptions): CodeRun[];
|
|
35
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/code-language/runs.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,+DAA+D;AAC/D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,MAAM,EAAE,WAAW,CAAC;IACpB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd;;0CAEsC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACpD;mEAC+D;IAC/D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;CACpD;AAYD;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,cAAc,GACnB,OAAO,EAAE,CAyBX"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Static highlighting: text + fence tag → styled runs, ready for a
|
|
2
|
+
// TextLayout-shaped consumer (`<richtext>` speaks exactly this shape,
|
|
3
|
+
// structurally — this module deliberately imports nothing from it).
|
|
4
|
+
//
|
|
5
|
+
// The chain is: an explicit `language`, else `resolveLanguage(tag)` if the
|
|
6
|
+
// caller supplied one, else a built-in tokenizer for the tag, else one plain
|
|
7
|
+
// run. Every step degrades to readable.
|
|
8
|
+
//
|
|
9
|
+
// The third step used to be ntk's `highlightCode` — a MarkdownView-internal
|
|
10
|
+
// this module reached for by name, so that a fence tagged `python` got
|
|
11
|
+
// highlighted without the app arranging anything. ntk's document widgets are
|
|
12
|
+
// being decommissioned and it goes with them; `resolveLanguage` is what
|
|
13
|
+
// replaces it, and `hljsLanguage` (./hljs.ts) is the same highlight.js
|
|
14
|
+
// breadth as a `Language` the app opts into:
|
|
15
|
+
//
|
|
16
|
+
// ```ts
|
|
17
|
+
// import hljs from 'highlight.js/lib/common';
|
|
18
|
+
// codeRuns(text, tag, { …, resolveLanguage: (t) => hljsLanguage({hljs, name: t}) })
|
|
19
|
+
// ```
|
|
20
|
+
//
|
|
21
|
+
// Explicit rather than automatic, because the alternative is this package
|
|
22
|
+
// depending on highlight.js for every app that renders a fence — see
|
|
23
|
+
// AGENTS.md on tree-shaking, and `textmate.ts` for the same shape.
|
|
24
|
+
import { languageForTag, tokenizeText } from './registry.js';
|
|
25
|
+
import { tokenStyleFor } from './theme.js';
|
|
26
|
+
function runColor(color, opts) {
|
|
27
|
+
if (!color)
|
|
28
|
+
return undefined;
|
|
29
|
+
if (color.startsWith('$'))
|
|
30
|
+
return opts.resolveToken?.(color.slice(1)) ?? undefined;
|
|
31
|
+
return color;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Highlight `text` as `tag` (a fence tag: `js`, `bash`, …). The runs
|
|
35
|
+
* concatenate back to exactly `text`; an empty or unknown tag yields one
|
|
36
|
+
* plain run.
|
|
37
|
+
*/
|
|
38
|
+
export function codeRuns(text, tag, opts) {
|
|
39
|
+
if (text.length === 0)
|
|
40
|
+
return [{ text: '', color: opts.color }];
|
|
41
|
+
const language = opts.language ??
|
|
42
|
+
(tag ? (opts.resolveLanguage?.(tag) ?? languageForTag(tag)) : null);
|
|
43
|
+
if (language) {
|
|
44
|
+
const perLine = tokenizeText(language, text);
|
|
45
|
+
const lines = text.split('\n');
|
|
46
|
+
const out = [];
|
|
47
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
48
|
+
const line = lines[i];
|
|
49
|
+
if (i > 0)
|
|
50
|
+
push(out, '\n', undefined, opts);
|
|
51
|
+
let at = 0;
|
|
52
|
+
for (const t of perLine[i]) {
|
|
53
|
+
if (t.from > at)
|
|
54
|
+
push(out, line.slice(at, t.from), undefined, opts);
|
|
55
|
+
push(out, line.slice(t.from, t.to), t.type, opts);
|
|
56
|
+
at = t.to;
|
|
57
|
+
}
|
|
58
|
+
if (at < line.length)
|
|
59
|
+
push(out, line.slice(at), undefined, opts);
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
63
|
+
return [{ text, color: opts.color }];
|
|
64
|
+
}
|
|
65
|
+
function push(out, text, type, opts) {
|
|
66
|
+
if (text.length === 0)
|
|
67
|
+
return;
|
|
68
|
+
const style = type ? tokenStyleFor(opts.styles, type) : null;
|
|
69
|
+
const run = {
|
|
70
|
+
text,
|
|
71
|
+
color: runColor(style?.color, opts) ?? opts.color,
|
|
72
|
+
};
|
|
73
|
+
if (style?.weight)
|
|
74
|
+
run.weight = style.weight;
|
|
75
|
+
if (style?.fontStyle)
|
|
76
|
+
run.style = style.fontStyle;
|
|
77
|
+
const prev = out[out.length - 1];
|
|
78
|
+
if (prev &&
|
|
79
|
+
prev.color === run.color &&
|
|
80
|
+
prev.weight === run.weight &&
|
|
81
|
+
prev.style === run.style) {
|
|
82
|
+
prev.text += text;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
out.push(run);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/code-language/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Language, LanguageData, Token } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* One line of text with a cursor, the surface a mode's `token()` reads
|
|
4
|
+
* through. The mode consumes some characters and names their token type;
|
|
5
|
+
* the engine turns (start, pos] into a `Token`.
|
|
6
|
+
*/
|
|
7
|
+
export declare class StringStream {
|
|
8
|
+
readonly string: string;
|
|
9
|
+
/** Where the current token started. The engine resets it between calls. */
|
|
10
|
+
start: number;
|
|
11
|
+
pos: number;
|
|
12
|
+
constructor(string: string);
|
|
13
|
+
sol(): boolean;
|
|
14
|
+
eol(): boolean;
|
|
15
|
+
peek(): string | undefined;
|
|
16
|
+
next(): string | undefined;
|
|
17
|
+
/** Consume the next character when it matches (a string or a RegExp). */
|
|
18
|
+
eat(match: string | RegExp | ((ch: string) => boolean)): string | undefined;
|
|
19
|
+
eatWhile(match: RegExp | ((ch: string) => boolean)): boolean;
|
|
20
|
+
eatSpace(): boolean;
|
|
21
|
+
skipToEnd(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Match at the cursor. A string compares directly; a RegExp is applied to
|
|
24
|
+
* the rest of the line and must match at its start (anchor with `^`).
|
|
25
|
+
* Consumes on success unless `consume` is `false`.
|
|
26
|
+
*/
|
|
27
|
+
match(pattern: string | RegExp, consume?: boolean): boolean | RegExpMatchArray | null;
|
|
28
|
+
backUp(n: number): void;
|
|
29
|
+
current(): string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A stream mode: `startState` before line 0, `token` consuming one token at
|
|
33
|
+
* the stream's cursor (return its type, or `null` for plain text), the state
|
|
34
|
+
* mutated in place as it goes.
|
|
35
|
+
*
|
|
36
|
+
* States must be flat bags of primitives (strings, numbers, booleans) —
|
|
37
|
+
* that is what the default `copyState`/`stateEquals` handle, and what makes
|
|
38
|
+
* the stop-early check on re-tokenization cheap. A mode with a stack encodes
|
|
39
|
+
* it as a string (see the JavaScript mode's `ctx`).
|
|
40
|
+
*/
|
|
41
|
+
export interface StreamMode<S> {
|
|
42
|
+
name: string;
|
|
43
|
+
languageData?: LanguageData;
|
|
44
|
+
startState(): S;
|
|
45
|
+
token(stream: StringStream, state: S): string | null;
|
|
46
|
+
/** Override when a state is not a flat bag of primitives. */
|
|
47
|
+
copyState?(state: S): S;
|
|
48
|
+
/** Override alongside `copyState`, and keep the two consistent. */
|
|
49
|
+
stateEquals?(a: S, b: S): boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* What the engine actually runs on: a whole-line tokenizer with carried
|
|
53
|
+
* state. `streamLanguage` builds one from a character-level `StreamMode`;
|
|
54
|
+
* the TextMate adapter builds one directly, because its grammars tokenize
|
|
55
|
+
* whole lines natively. Both get the same caching and convergence.
|
|
56
|
+
*/
|
|
57
|
+
export interface LineMode<S> {
|
|
58
|
+
name: string;
|
|
59
|
+
languageData?: LanguageData;
|
|
60
|
+
startState(): S;
|
|
61
|
+
runLine(text: string, state: S): Token[];
|
|
62
|
+
copyState?(state: S): S;
|
|
63
|
+
stateEquals?(a: S, b: S): boolean;
|
|
64
|
+
}
|
|
65
|
+
/** Wrap a whole-line {@link LineMode} as a {@link Language} — the seam the
|
|
66
|
+
* TextMate adapter enters through. */
|
|
67
|
+
export declare function lineModeLanguage<S>(mode: LineMode<S>): Language;
|
|
68
|
+
/** Wrap a {@link StreamMode} as a {@link Language}. */
|
|
69
|
+
export declare function streamLanguage<S>(mode: StreamMode<S>): Language;
|
|
70
|
+
//# sourceMappingURL=stream.d.ts.map
|