@marimo-team/islands 0.25.1-dev4 → 0.25.1-dev40
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/{ConnectedDataExplorerComponent-KVhjDMSe.js → ConnectedDataExplorerComponent-CwMXfDQR.js} +3 -3
- package/dist/{ErrorBoundary-pV36lYEK.js → ErrorBoundary-CAJO-M56.js} +1 -1
- package/dist/{ImageComparisonComponent-Dlm5aWnH.js → ImageComparisonComponent-Cpfz30OZ.js} +51 -52
- package/dist/{abnfDiagram-VCTEODGH-CpN0FRda.js → abnfDiagram-VCTEODGH-AFhOQTt8.js} +3 -3
- package/dist/{architectureDiagram-5GKGNRK7-DDyj5SRB.js → architectureDiagram-5GKGNRK7-BngksAAQ.js} +5 -5
- package/dist/{blockDiagram-I7D4REHJ-BbXEXJRu.js → blockDiagram-I7D4REHJ-CvBmppdy.js} +9 -9
- package/dist/{c4Diagram-7LVT6UL2-DcLsbQmR.js → c4Diagram-7LVT6UL2-EceL4_jH.js} +7 -7
- package/dist/{cells-B5-y5EY3.js → cells-Cv93oav_.js} +3 -3
- package/dist/{channel-B5XnTarr.js → channel-z7HZXHwv.js} +1 -1
- package/dist/{chat-ui-HJZsTl7o.js → chat-ui-DLSF8a04.js} +4 -4
- package/dist/{chunk-4HAMMTFA-D2qv8E0X.js → chunk-4HAMMTFA-BPTTOOC5.js} +5 -5
- package/dist/{chunk-75Z2AOVW-5_HsvXwr.js → chunk-75Z2AOVW-C4AOleKf.js} +1 -1
- package/dist/{chunk-DU6HZSFF-BUgAHvnM.js → chunk-DU6HZSFF-1TwWR6gh.js} +1 -1
- package/dist/{chunk-F27PBJKO-DHmYWZXr.js → chunk-F27PBJKO-DMI1PBe4.js} +1 -1
- package/dist/{chunk-GMAD6QVW-Czynz8aA.js → chunk-GMAD6QVW-vStrMz2P.js} +3 -3
- package/dist/{chunk-GVQU2GXP-yQEdulRS.js → chunk-GVQU2GXP-2HwWgs4u.js} +2 -2
- package/dist/{chunk-IMKFNOWR-BfwTebD0.js → chunk-IMKFNOWR-UOVZuZVn.js} +5 -5
- package/dist/{chunk-L3NEJ4N5-DwRWnDDK.js → chunk-L3NEJ4N5-RhC7i0I2.js} +5 -5
- package/dist/{chunk-OSK3NFVY-BBKU_Ign.js → chunk-OSK3NFVY-CZV09N-U.js} +6 -6
- package/dist/{chunk-P2QGCYS3-C0iGU29N.js → chunk-P2QGCYS3-0TAWai9C.js} +1 -1
- package/dist/{chunk-POPQ4Y6H-BCbS3Ozc.js → chunk-POPQ4Y6H-Cc3_56GX.js} +1 -1
- package/dist/{chunk-PWAF6VOD-CTFCL0jI.js → chunk-PWAF6VOD-lNxB9k8z.js} +1 -1
- package/dist/{chunk-SHT3W25Y-BspJEJ5H.js → chunk-SHT3W25Y-CrEPyWy1.js} +7 -7
- package/dist/{chunk-SVP7TREG-DX3rFNTe.js → chunk-SVP7TREG-uIyyySp6.js} +2 -2
- package/dist/{chunk-TICWLB2K-fVF7Uujg.js → chunk-TICWLB2K-DdXM3eg6.js} +5 -5
- package/dist/classDiagram-ZZMXUADV-BiATbBE4.js +30 -0
- package/dist/classDiagram-v2-VYDZK3BY-JnH97GYw.js +30 -0
- package/dist/{code-visibility-CgZS2a3W.js → code-visibility-XU9RAJNV.js} +2 -2
- package/dist/{common-DnMDPPaW.js → common-C0fbrgB8.js} +13 -13
- package/dist/{cynefinDiagram-5FMLGOSQ-CFQrqzSX.js → cynefinDiagram-5FMLGOSQ-zknaAsGy.js} +3 -3
- package/dist/{dagre-GXQ25YYZ-xHNAUTyG.js → dagre-GXQ25YYZ-BhMOoMGJ.js} +10 -10
- package/dist/{data-grid-overlay-editor-hHYgD_Sm.js → data-grid-overlay-editor-BnhbJgoq.js} +1 -1
- package/dist/{diagram-S7CK7UJ4-Bt1rPbAx.js → diagram-S7CK7UJ4-V5-Z-EDY.js} +4 -4
- package/dist/{diagram-UQ7AKVKN-D1sq5FoZ.js → diagram-UQ7AKVKN-qw8AjDal.js} +3 -3
- package/dist/{diagram-VSXAHHWV-BKpmG23x.js → diagram-VSXAHHWV-CR7BJygZ.js} +2 -2
- package/dist/{diagram-VX7I27RA-BMwGFVD6.js → diagram-VX7I27RA-DfuqFb1E.js} +5 -5
- package/dist/{diagram-Z3DM3KII--KLDR9Pl.js → diagram-Z3DM3KII-DpWwlYZB.js} +3 -3
- package/dist/{dist-BaHjhkpZ.js → dist-CcyKTBTF.js} +1 -1
- package/dist/{ebnfDiagram-PWID7BFC-WnG4cvSQ.js → ebnfDiagram-PWID7BFC-C20OnNMZ.js} +3 -3
- package/dist/{erDiagram-RLTQ6QDP-DhzKiYHc.js → erDiagram-RLTQ6QDP-DBXLWO9v.js} +12 -12
- package/dist/{error-entries-Bkbpx0T0.js → error-entries-DLl0XqoW.js} +1 -1
- package/dist/{feedback-button-CvKssdG_.js → feedback-button-B0QSkbSp.js} +4 -4
- package/dist/flowDiagram-HODETNUW-DL52nMkt.js +16 -0
- package/dist/{formats-C8rLgZT9.js → formats-Cl_67ghI.js} +1 -1
- package/dist/{ganttDiagram-EL5Y4UJY-DbzEBLbl.js → ganttDiagram-EL5Y4UJY-cRRaDt88.js} +2 -2
- package/dist/{gitGraphDiagram-WWUBYQGX-BMf0iKi1.js → gitGraphDiagram-WWUBYQGX-Pox5k9-Y.js} +2 -2
- package/dist/{glide-data-editor-Ohetlgag.js → glide-data-editor-ymIQdwrb.js} +3 -3
- package/dist/{globals-CPNNcOJI.js → globals-B0S3-e_D.js} +1 -1
- package/dist/{html-to-image-BAgJOlSW.js → html-to-image-CGVgroef.js} +2 -2
- package/dist/{infoDiagram-27XIBGKW-BagtCX_5.js → infoDiagram-27XIBGKW-ntpxMfrq.js} +2 -2
- package/dist/{ishikawaDiagram-5VMMS53U-DByDehYy.js → ishikawaDiagram-5VMMS53U-BllIlHE5.js} +3 -3
- package/dist/{journeyDiagram-3NMN7TZE-D2LcKDUO.js → journeyDiagram-3NMN7TZE-EPJDPlt0.js} +2 -2
- package/dist/{kanban-definition-UXKFOSKX-BxwkbBI_.js → kanban-definition-UXKFOSKX-GYtNMjtS.js} +9 -9
- package/dist/{katex-C6D4cX_N.js → katex-BNCmKUol.js} +983 -1120
- package/dist/{loader-D2W4oM-3.js → loader-DEZSzvma.js} +253 -248
- package/dist/main.js +72 -69
- package/dist/{mermaid-DPNuhemn.js → mermaid-Dnzoxjt1.js} +49 -49
- package/dist/{mhchem-DWCF06w9.js → mhchem-BEc7A1or.js} +1 -1
- package/dist/{mindmap-definition-YA3MSWOX-Cgvojw3y.js → mindmap-definition-YA3MSWOX-Cth76xgH.js} +11 -11
- package/dist/{number-overlay-editor-CHWg5gGO.js → number-overlay-editor-DB3HJDI1.js} +1 -1
- package/dist/{pegDiagram-XKGWAZYB-DahHhYyN.js → pegDiagram-XKGWAZYB-Cu4uOXii.js} +3 -3
- package/dist/{pieDiagram-E7YTZNPT-CCtX0oCK.js → pieDiagram-E7YTZNPT-Bh3eDa9s.js} +3 -3
- package/dist/{process-output-zDX4jbhd.js → process-output-CGfg-JmZ.js} +2 -2
- package/dist/{quadrantDiagram-AXDQQJYC-DftINo6g.js → quadrantDiagram-AXDQQJYC--kqzFC3w.js} +1 -1
- package/dist/{railroadDiagram-O6MQD6OU-Du5NsPUb.js → railroadDiagram-O6MQD6OU-DG-M6Rnc.js} +3 -3
- package/dist/{react-vega-5AcMW8gG.js → react-vega-ewj7q_U5.js} +1 -1
- package/dist/{requirementDiagram-BXWQKSXE-0pmmxL6_.js → requirementDiagram-BXWQKSXE-DCwsThh0.js} +11 -11
- package/dist/{reveal-component-BujcZI2B.js → reveal-component-CfTzIkA2.js} +3 -3
- package/dist/{sankeyDiagram-P5KCCOFB-CDKR5TJH.js → sankeyDiagram-P5KCCOFB-BdzhT0BM.js} +1 -1
- package/dist/{sequenceDiagram-WJ2MYXX4-DB-ChWwU.js → sequenceDiagram-WJ2MYXX4-CbXB1_PU.js} +4 -4
- package/dist/{stateDiagram-D77RDMKH-orN6AwMx.js → stateDiagram-D77RDMKH-A-Zf3Sb2.js} +13 -13
- package/dist/stateDiagram-v2-MP3YSRHH-D9YMnUGx.js +30 -0
- package/dist/style.css +1 -1
- package/dist/{swimlanes-42K2YHIH-BkSDcqDT.js → swimlanes-42K2YHIH-B_pMf0J4.js} +10 -10
- package/dist/swimlanesDiagram-VR7AAH4N-Ctgy-yGP.js +30 -0
- package/dist/{timeline-definition-24CTP7MA-BuqJUIRZ.js → timeline-definition-24CTP7MA-DTXFjTTM.js} +3 -3
- package/dist/{vega-component-CNf5gcrm.js → vega-component-tFOzgarw.js} +4 -4
- package/dist/{vega-embed-container-CbnTccZi.js → vega-embed-container-sSR5hAsy.js} +2 -2
- package/dist/{vega-loader.browser-D95WfUcj.js → vega-loader.browser-DNST6uVf.js} +2 -2
- package/dist/{vennDiagram-4TSXK5OY-CTUlJ2PK.js → vennDiagram-4TSXK5OY-BPHjZo0R.js} +3 -3
- package/dist/{wardleyDiagram-VM6X3IG4-3evLUb0M.js → wardleyDiagram-VM6X3IG4-6fTLYBuD.js} +3 -3
- package/dist/{xychartDiagram-S5SC5T6Z-DL2E3K8-.js → xychartDiagram-S5SC5T6Z-BYjwjrzE.js} +5 -5
- package/package.json +1 -2
- package/src/__mocks__/common.ts +3 -3
- package/src/__tests__/CellStatus.test.tsx +1 -1
- package/src/__tests__/setup.ts +7 -7
- package/src/components/app-config/ai-config.tsx +2 -0
- package/src/components/app-config/optional-features.tsx +1 -1
- package/src/components/chat/chat-panel.tsx +19 -8
- package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +286 -0
- package/src/components/data-table/charts/charts.tsx +26 -13
- package/src/components/data-table/column-summary/chart-spec-model.tsx +4 -4
- package/src/components/dependency-graph/elements.ts +2 -2
- package/src/components/editor/__tests__/package-alert.test.tsx +140 -0
- package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +107 -0
- package/src/components/editor/actions/pair-with-agent.tsx +119 -0
- package/src/components/editor/actions/useNotebookActions.tsx +2 -1
- package/src/components/editor/ai/add-cell-with-ai.tsx +2 -0
- package/src/components/editor/ai/staged-cell-submission.ts +2 -2
- package/src/components/editor/ai/transport/chat-transport.tsx +1 -1
- package/src/components/editor/chrome/components/contribute-snippet-button.tsx +6 -1
- package/src/components/editor/connections/database/as-code.ts +44 -44
- package/src/components/editor/connections/storage/as-code.ts +3 -3
- package/src/components/editor/file-tree/requesting-tree.tsx +16 -13
- package/src/components/editor/navigation/clipboard.ts +2 -2
- package/src/components/editor/notebook-cell.tsx +2 -2
- package/src/components/editor/output/MarimoTracebackOutput.tsx +1 -1
- package/src/components/editor/output/VideoOutput.tsx +1 -1
- package/src/components/editor/output/ansi-reduce.ts +21 -17
- package/src/components/editor/output/console/ConsoleOutput.tsx +3 -3
- package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +59 -0
- package/src/components/editor/output/console/text-rendering.tsx +3 -1
- package/src/components/editor/package-alert.tsx +20 -7
- package/src/components/home/components.tsx +1 -0
- package/src/components/pages/run-page.tsx +1 -0
- package/src/components/slides/__tests__/minimap-actions.test.tsx +7 -7
- package/src/components/slides/__tests__/minimap.test.ts +12 -12
- package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +8 -8
- package/src/components/static-html/share-modal.tsx +2 -1
- package/src/components/static-html/static-banner.tsx +2 -2
- package/src/components/ui/links.tsx +6 -1
- package/src/components/ui/typography.tsx +16 -8
- package/src/core/ai/context/__tests__/registry.test.ts +31 -28
- package/src/core/ai/context/providers/cell-output.ts +8 -8
- package/src/core/ai/context/providers/datasource.ts +10 -7
- package/src/core/ai/context/providers/error.ts +7 -7
- package/src/core/ai/context/providers/file.ts +8 -8
- package/src/core/ai/context/providers/tables.ts +7 -7
- package/src/core/ai/context/providers/variable.ts +7 -7
- package/src/core/ai/context/registry.ts +18 -18
- package/src/core/ai/ids/ids.ts +5 -5
- package/src/core/ai/model-registry.ts +12 -9
- package/src/core/ai/staged-cells.ts +6 -6
- package/src/core/ai/tools/base.ts +6 -6
- package/src/core/ai/tools/edit-notebook-tool.ts +6 -6
- package/src/core/ai/tools/registry.ts +4 -4
- package/src/core/ai/tools/run-cells-tool.ts +7 -7
- package/src/core/ai/tools/sample-tool.ts +6 -6
- package/src/core/cells/__tests__/cells.test.ts +27 -0
- package/src/core/cells/cells.ts +2 -1
- package/src/core/codemirror/cells/debugger-decorations.ts +13 -7
- package/src/core/codemirror/cells/line-timing-decorations.ts +9 -9
- package/src/core/codemirror/cells/traceback-decorations.ts +7 -4
- package/src/core/codemirror/code-lens/extension.ts +13 -13
- package/src/core/codemirror/copilot/__tests__/language-server.test.ts +6 -6
- package/src/core/codemirror/copilot/__tests__/transport.test.ts +12 -12
- package/src/core/codemirror/copilot/language-server.ts +13 -13
- package/src/core/codemirror/copilot/transport.ts +1 -1
- package/src/core/codemirror/find-replace/search-highlight.ts +5 -5
- package/src/core/codemirror/go-to-definition/underline.ts +3 -3
- package/src/core/codemirror/keymaps/vim.ts +3 -3
- package/src/core/codemirror/language/languages/markdown.ts +8 -8
- package/src/core/codemirror/language/languages/python.ts +7 -7
- package/src/core/codemirror/language/languages/sql/completion-builder.ts +5 -5
- package/src/core/codemirror/language/languages/sql/completion-store.ts +4 -4
- package/src/core/codemirror/language/languages/sql/sql.ts +21 -21
- package/src/core/codemirror/lsp/__tests__/transports.test.ts +10 -10
- package/src/core/codemirror/lsp/federated-lsp.ts +29 -27
- package/src/core/codemirror/lsp/notebook-lsp.ts +21 -21
- package/src/core/codemirror/misc/__tests__/dnd.test.ts +10 -10
- package/src/core/codemirror/misc/__tests__/paste.test.ts +7 -4
- package/src/core/codemirror/reactive-references/extension.ts +3 -3
- package/src/core/codemirror/rtc/loro/awareness.ts +12 -12
- package/src/core/codemirror/rtc/loro/sync.ts +5 -5
- package/src/core/codemirror/vim/cursor-visibility.ts +3 -3
- package/src/core/dom/ui-element.ts +5 -5
- package/src/core/dom/uiregistry.ts +10 -10
- package/src/core/hotkeys/hotkeys.ts +9 -9
- package/src/core/islands/__tests__/bridge.test.ts +4 -4
- package/src/core/islands/__tests__/test-utils.tsx +4 -4
- package/src/core/islands/bridge.ts +85 -82
- package/src/core/islands/components/web-components.tsx +7 -7
- package/src/core/islands/worker/__tests__/controller.test.ts +1 -1
- package/src/core/islands/worker/controller.ts +6 -3
- package/src/core/islands/worker-factory.ts +2 -2
- package/src/core/kernel/RuntimeState.ts +4 -4
- package/src/core/lsp/__tests__/transport.test.ts +19 -19
- package/src/core/lsp/transport.ts +5 -5
- package/src/core/network/CachingRequestRegistry.ts +2 -2
- package/src/core/network/DeferredRequestRegistry.ts +4 -4
- package/src/core/runtime/runtime.ts +25 -20
- package/src/core/static/virtual-file-tracker.ts +5 -5
- package/src/core/wasm/__tests__/bridge.test.ts +2 -2
- package/src/core/wasm/bridge.ts +130 -126
- package/src/core/wasm/router.ts +5 -5
- package/src/core/wasm/store.ts +4 -4
- package/src/core/wasm/worker/bootstrap.ts +8 -5
- package/src/core/wasm/worker/message-buffer.ts +3 -3
- package/src/core/websocket/transports/__tests__/ws.test.ts +8 -8
- package/src/core/websocket/transports/basic.ts +15 -8
- package/src/core/websocket/transports/sse.ts +7 -7
- package/src/core/websocket/transports/transport.ts +3 -3
- package/src/core/websocket/transports/ws.ts +9 -7
- package/src/css/globals.css +18 -21
- package/src/css/katex.min.css +260 -241
- package/src/hooks/__tests__/useOverflowDetection.test.tsx +5 -5
- package/src/hooks/__tests__/useResizeObserver.test.tsx +12 -12
- package/src/plugins/core/registerReactComponent.tsx +5 -5
- package/src/plugins/core/sidebar-element.tsx +2 -2
- package/src/plugins/impl/ButtonPlugin.tsx +3 -3
- package/src/plugins/impl/CheckboxPlugin.tsx +3 -3
- package/src/plugins/impl/CodeEditorPlugin.tsx +3 -3
- package/src/plugins/impl/DatePickerPlugin.tsx +3 -3
- package/src/plugins/impl/DateRangePlugin.tsx +3 -3
- package/src/plugins/impl/DateTimePickerPlugin.tsx +3 -3
- package/src/plugins/impl/DictPlugin.tsx +3 -3
- package/src/plugins/impl/DropdownPlugin.tsx +3 -3
- package/src/plugins/impl/FileUploadPlugin.tsx +3 -3
- package/src/plugins/impl/MatrixPlugin.tsx +4 -4
- package/src/plugins/impl/MicrophonePlugin.tsx +3 -3
- package/src/plugins/impl/MultiselectPlugin.tsx +3 -3
- package/src/plugins/impl/NumberPlugin.tsx +3 -3
- package/src/plugins/impl/RadioPlugin.tsx +9 -5
- package/src/plugins/impl/RangeSliderPlugin.tsx +3 -3
- package/src/plugins/impl/RefreshPlugin.tsx +3 -3
- package/src/plugins/impl/SliderPlugin.tsx +3 -3
- package/src/plugins/impl/SwitchPlugin.tsx +3 -3
- package/src/plugins/impl/TabsPlugin.tsx +3 -3
- package/src/plugins/impl/TextAreaPlugin.tsx +3 -3
- package/src/plugins/impl/TextInputPlugin.tsx +3 -3
- package/src/plugins/impl/__tests__/MatrixPlugin.test.tsx +2 -2
- package/src/plugins/impl/anywidget/model.ts +10 -10
- package/src/plugins/impl/anywidget/registry.ts +12 -9
- package/src/plugins/impl/anywidget/runtime.ts +11 -9
- package/src/plugins/impl/anywidget/widget-binding.ts +6 -6
- package/src/plugins/impl/image-comparison/ImageComparisonComponent.tsx +7 -6
- package/src/plugins/impl/matplotlib/MatplotlibPlugin.tsx +3 -3
- package/src/plugins/impl/matplotlib/__tests__/matplotlib-renderer.test.ts +2 -2
- package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +2 -2
- package/src/plugins/impl/mpl-interactive/mpl-websocket-shim.ts +10 -10
- package/src/plugins/impl/panel/utils.ts +5 -5
- package/src/plugins/impl/plotly/PlotlyPlugin.tsx +3 -3
- package/src/plugins/impl/vega/VegaPlugin.tsx +3 -3
- package/src/plugins/impl/vega/__tests__/use-vega-container-remeasure.test.ts +7 -7
- package/src/plugins/impl/vega/__tests__/utils.test.ts +16 -1
- package/src/plugins/impl/vega/__tests__/vega.test.ts +37 -0
- package/src/plugins/impl/vega/loader.ts +23 -1
- package/src/plugins/impl/vega/utils.ts +5 -4
- package/src/plugins/layout/AccordionPlugin.tsx +3 -3
- package/src/plugins/layout/CalloutPlugin.tsx +3 -3
- package/src/plugins/layout/ImageComparisonPlugin.tsx +5 -3
- package/src/plugins/layout/JsonOutputPlugin.tsx +3 -3
- package/src/plugins/layout/MimeRenderPlugin.tsx +3 -3
- package/src/plugins/layout/NavigationMenuPlugin.tsx +3 -3
- package/src/plugins/layout/OutlinePlugin.tsx +3 -3
- package/src/plugins/layout/ProgressPlugin.tsx +3 -3
- package/src/plugins/layout/RoutesPlugin.tsx +6 -8
- package/src/plugins/layout/StatPlugin.tsx +3 -3
- package/src/plugins/layout/TexPlugin.tsx +3 -3
- package/src/plugins/layout/carousel/CarouselPlugin.tsx +4 -4
- package/src/plugins/layout/mermaid/MermaidPlugin.tsx +3 -3
- package/src/utils/Deferred.ts +6 -6
- package/src/utils/async-capture-tracker.ts +10 -7
- package/src/utils/errors.ts +5 -5
- package/src/utils/id-tree.tsx +83 -80
- package/src/utils/lru.ts +1 -1
- package/src/utils/multi-map.ts +14 -12
- package/src/utils/paths.ts +6 -6
- package/src/utils/pluralize.ts +3 -3
- package/src/utils/progress.ts +6 -6
- package/src/utils/python-poet/poet.ts +14 -14
- package/src/utils/routes.ts +4 -2
- package/src/utils/semaphore.ts +6 -6
- package/src/utils/storage/storage.ts +6 -6
- package/src/utils/storage/typed.ts +16 -12
- package/src/utils/time.ts +9 -9
- package/src/utils/timed-cache.ts +4 -4
- package/src/utils/tracer.ts +9 -6
- package/dist/classDiagram-ZZMXUADV-Fe-V14Sc.js +0 -30
- package/dist/classDiagram-v2-VYDZK3BY-xTDg7lOs.js +0 -30
- package/dist/flowDiagram-HODETNUW-6dMdB8pR.js +0 -16
- package/dist/katex-DFBiSucW.js +0 -21840
- package/dist/stateDiagram-v2-MP3YSRHH-o05_rJN8.js +0 -30
- package/dist/swimlanesDiagram-VR7AAH4N-D_nFQfRc.js +0 -30
|
@@ -42,16 +42,16 @@ class LineTimerWidget extends WidgetType {
|
|
|
42
42
|
|
|
43
43
|
private readonly startedAtMs: number;
|
|
44
44
|
|
|
45
|
-
constructor(startedAtMs: number) {
|
|
45
|
+
public constructor(startedAtMs: number) {
|
|
46
46
|
super();
|
|
47
47
|
this.startedAtMs = startedAtMs;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
override eq(other: LineTimerWidget): boolean {
|
|
50
|
+
public override eq(other: LineTimerWidget): boolean {
|
|
51
51
|
return other.startedAtMs === this.startedAtMs;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
override toDOM(): HTMLElement {
|
|
54
|
+
public override toDOM(): HTMLElement {
|
|
55
55
|
const el = document.createElement("span");
|
|
56
56
|
el.className = "cm-line-timer";
|
|
57
57
|
el.setAttribute("aria-hidden", "true");
|
|
@@ -68,7 +68,7 @@ class LineTimerWidget extends WidgetType {
|
|
|
68
68
|
return el;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
override destroy(dom: HTMLElement): void {
|
|
71
|
+
public override destroy(dom: HTMLElement): void {
|
|
72
72
|
const interval = LineTimerWidget.intervals.get(dom);
|
|
73
73
|
if (interval !== undefined) {
|
|
74
74
|
window.clearInterval(interval);
|
|
@@ -76,7 +76,7 @@ class LineTimerWidget extends WidgetType {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
override ignoreEvent(): boolean {
|
|
79
|
+
public override ignoreEvent(): boolean {
|
|
80
80
|
return true;
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -112,9 +112,9 @@ function createTimingDecorations(
|
|
|
112
112
|
|
|
113
113
|
class ActiveLineTimer implements PluginValue {
|
|
114
114
|
private unsubscribe: () => void;
|
|
115
|
-
decorations: DecorationSet;
|
|
115
|
+
public decorations: DecorationSet;
|
|
116
116
|
|
|
117
|
-
constructor(
|
|
117
|
+
public constructor(
|
|
118
118
|
view: EditorView,
|
|
119
119
|
infoObservable: Observable<ActiveLineInfo | null>,
|
|
120
120
|
) {
|
|
@@ -129,11 +129,11 @@ class ActiveLineTimer implements PluginValue {
|
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
update(update: ViewUpdate) {
|
|
132
|
+
public update(update: ViewUpdate) {
|
|
133
133
|
this.decorations = this.decorations.map(update.changes);
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
destroy() {
|
|
136
|
+
public destroy() {
|
|
137
137
|
this.unsubscribe();
|
|
138
138
|
}
|
|
139
139
|
}
|
|
@@ -91,9 +91,12 @@ function unfoldErrorLines(view: EditorView, errors: TracebackInfos) {
|
|
|
91
91
|
*/
|
|
92
92
|
class ErrorHighlighter implements PluginValue {
|
|
93
93
|
private unsubscribe: () => void;
|
|
94
|
-
decorations: DecorationSet;
|
|
94
|
+
public decorations: DecorationSet;
|
|
95
95
|
|
|
96
|
-
constructor(
|
|
96
|
+
public constructor(
|
|
97
|
+
view: EditorView,
|
|
98
|
+
errorsObservable: Observable<TracebackInfos>,
|
|
99
|
+
) {
|
|
97
100
|
const errors = errorsObservable.get();
|
|
98
101
|
this.decorations = createErrorDecorations(view.state, errors);
|
|
99
102
|
unfoldErrorLines(view, errors);
|
|
@@ -113,11 +116,11 @@ class ErrorHighlighter implements PluginValue {
|
|
|
113
116
|
});
|
|
114
117
|
}
|
|
115
118
|
|
|
116
|
-
update(update: ViewUpdate) {
|
|
119
|
+
public update(update: ViewUpdate) {
|
|
117
120
|
this.decorations = this.decorations.map(update.changes);
|
|
118
121
|
}
|
|
119
122
|
|
|
120
|
-
destroy() {
|
|
123
|
+
public destroy() {
|
|
121
124
|
this.unsubscribe();
|
|
122
125
|
}
|
|
123
126
|
}
|
|
@@ -56,12 +56,12 @@ class LensHoverController {
|
|
|
56
56
|
private showTimer: number | undefined;
|
|
57
57
|
private hideTimer: number | undefined;
|
|
58
58
|
|
|
59
|
-
constructor(view: EditorView) {
|
|
59
|
+
public constructor(view: EditorView) {
|
|
60
60
|
this.view = view;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/** Pointer entered a lens icon */
|
|
64
|
-
enterLens(spec: CodeLensSpec, icon: HTMLElement): void {
|
|
64
|
+
public enterLens(spec: CodeLensSpec, icon: HTMLElement): void {
|
|
65
65
|
this.clearTimers();
|
|
66
66
|
dismissEditorHoverTooltips(this.view, icon);
|
|
67
67
|
const hovered = this.view.state.field(codeLensHoverField, false);
|
|
@@ -76,7 +76,7 @@ class LensHoverController {
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
/** Pointer left a lens icon or the popover */
|
|
79
|
-
leave(): void {
|
|
79
|
+
public leave(): void {
|
|
80
80
|
this.clearTimers();
|
|
81
81
|
this.hideTimer = window.setTimeout(() => {
|
|
82
82
|
this.hideTimer = undefined;
|
|
@@ -85,19 +85,19 @@ class LensHoverController {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
/** Pointer entered the popover */
|
|
88
|
-
enterPopover(): void {
|
|
88
|
+
public enterPopover(): void {
|
|
89
89
|
window.clearTimeout(this.hideTimer);
|
|
90
90
|
this.hideTimer = undefined;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
hide(): void {
|
|
93
|
+
public hide(): void {
|
|
94
94
|
this.clearTimers();
|
|
95
95
|
if (this.view.state.field(codeLensHoverField, false)) {
|
|
96
96
|
this.view.dispatch({ effects: setHoveredLens.of(null) });
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
destroy(): void {
|
|
100
|
+
public destroy(): void {
|
|
101
101
|
this.clearTimers();
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -135,18 +135,18 @@ function dismissEditorHoverTooltips(
|
|
|
135
135
|
class CodeLensWidget extends WidgetType {
|
|
136
136
|
private readonly spec: CodeLensSpec;
|
|
137
137
|
|
|
138
|
-
constructor(spec: CodeLensSpec) {
|
|
138
|
+
public constructor(spec: CodeLensSpec) {
|
|
139
139
|
super();
|
|
140
140
|
this.spec = spec;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
override eq(other: CodeLensWidget): boolean {
|
|
143
|
+
public override eq(other: CodeLensWidget): boolean {
|
|
144
144
|
// `pos` is captured by the DOM hover/click handlers, so a reused widget
|
|
145
145
|
// whose anchor moved must not be treated as equal
|
|
146
146
|
return specEquals(this.spec, other.spec);
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
override toDOM(view: EditorView): HTMLElement {
|
|
149
|
+
public override toDOM(view: EditorView): HTMLElement {
|
|
150
150
|
const { spec } = this;
|
|
151
151
|
const element = document.createElement("span");
|
|
152
152
|
element.className = "mo-code-lens";
|
|
@@ -188,7 +188,7 @@ class CodeLensWidget extends WidgetType {
|
|
|
188
188
|
return element;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
override ignoreEvent(): boolean {
|
|
191
|
+
public override ignoreEvent(): boolean {
|
|
192
192
|
// The widget handles its own events
|
|
193
193
|
return true;
|
|
194
194
|
}
|
|
@@ -281,7 +281,7 @@ class CodeLensPlugin {
|
|
|
281
281
|
private readonly debounceMs = 300;
|
|
282
282
|
private readonly scheduleUpdate: DebouncedFunc<() => void>;
|
|
283
283
|
|
|
284
|
-
constructor(view: EditorView, cellId: CellId, includeCache: boolean) {
|
|
284
|
+
public constructor(view: EditorView, cellId: CellId, includeCache: boolean) {
|
|
285
285
|
this.view = view;
|
|
286
286
|
this.cellId = cellId;
|
|
287
287
|
this.includeCache = includeCache;
|
|
@@ -297,7 +297,7 @@ class CodeLensPlugin {
|
|
|
297
297
|
this.scheduleUpdate();
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
-
update(update: ViewUpdate) {
|
|
300
|
+
public update(update: ViewUpdate) {
|
|
301
301
|
// Recompute on edits, and when the cell's language changes (e.g. Python ->
|
|
302
302
|
// SQL) so stale Python-only icons are cleared even if the text is unchanged
|
|
303
303
|
const adapterChanged =
|
|
@@ -308,7 +308,7 @@ class CodeLensPlugin {
|
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
-
destroy() {
|
|
311
|
+
public destroy() {
|
|
312
312
|
this.scheduleUpdate.cancel();
|
|
313
313
|
for (const unsubscribe of this.unsubscribes) {
|
|
314
314
|
unsubscribe();
|
|
@@ -22,11 +22,11 @@ vi.mock("../state", async (importOriginal) => {
|
|
|
22
22
|
|
|
23
23
|
class MockTransport implements Transport {
|
|
24
24
|
private readonly handlers = new Set<(message: JSONRPCMessage) => void>();
|
|
25
|
-
readonly sent: JSONRPCMessage[] = [];
|
|
25
|
+
public readonly sent: JSONRPCMessage[] = [];
|
|
26
26
|
|
|
27
|
-
connect = vi.fn().mockResolvedValue(undefined);
|
|
28
|
-
close = vi.fn();
|
|
29
|
-
send = vi.fn((message: JSONRPCMessage) => {
|
|
27
|
+
public connect = vi.fn().mockResolvedValue(undefined);
|
|
28
|
+
public close = vi.fn();
|
|
29
|
+
public send = vi.fn((message: JSONRPCMessage) => {
|
|
30
30
|
this.sent.push(message);
|
|
31
31
|
if (isRequest(message) && message.method === "initialize") {
|
|
32
32
|
queueMicrotask(() => {
|
|
@@ -39,14 +39,14 @@ class MockTransport implements Transport {
|
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
onMessage(handler: (message: JSONRPCMessage) => void): () => void {
|
|
42
|
+
public onMessage(handler: (message: JSONRPCMessage) => void): () => void {
|
|
43
43
|
this.handlers.add(handler);
|
|
44
44
|
return () => {
|
|
45
45
|
this.handlers.delete(handler);
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
emit(message: JSONRPCMessage) {
|
|
49
|
+
public emit(message: JSONRPCMessage) {
|
|
50
50
|
for (const handler of this.handlers) {
|
|
51
51
|
handler(message);
|
|
52
52
|
}
|
|
@@ -8,24 +8,24 @@ vi.mock("@/utils/Logger", () => ({
|
|
|
8
8
|
}));
|
|
9
9
|
|
|
10
10
|
class FakeWebSocket {
|
|
11
|
-
static readonly OPEN = 1;
|
|
12
|
-
static readonly CLOSED = 3;
|
|
13
|
-
static readonly instances: FakeWebSocket[] = [];
|
|
11
|
+
public static readonly OPEN = 1;
|
|
12
|
+
public static readonly CLOSED = 3;
|
|
13
|
+
public static readonly instances: FakeWebSocket[] = [];
|
|
14
14
|
|
|
15
|
-
readonly sent: string[] = [];
|
|
16
|
-
readyState = 0;
|
|
17
|
-
readonly url: string;
|
|
15
|
+
public readonly sent: string[] = [];
|
|
16
|
+
public readyState = 0;
|
|
17
|
+
public readonly url: string;
|
|
18
18
|
private readonly listeners = new Map<
|
|
19
19
|
string,
|
|
20
20
|
Set<(event: Record<string, never>) => void>
|
|
21
21
|
>();
|
|
22
22
|
|
|
23
|
-
constructor(url: string) {
|
|
23
|
+
public constructor(url: string) {
|
|
24
24
|
this.url = url;
|
|
25
25
|
FakeWebSocket.instances.push(this);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
addEventListener(
|
|
28
|
+
public addEventListener(
|
|
29
29
|
type: string,
|
|
30
30
|
listener: (event: Record<string, never>) => void,
|
|
31
31
|
) {
|
|
@@ -34,21 +34,21 @@ class FakeWebSocket {
|
|
|
34
34
|
this.listeners.set(type, listeners);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
send(frame: string) {
|
|
37
|
+
public send(frame: string) {
|
|
38
38
|
this.sent.push(frame);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
close() {
|
|
41
|
+
public close() {
|
|
42
42
|
this.readyState = FakeWebSocket.CLOSED;
|
|
43
43
|
this.emit("close");
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
open() {
|
|
46
|
+
public open() {
|
|
47
47
|
this.readyState = FakeWebSocket.OPEN;
|
|
48
48
|
this.emit("open");
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
fail() {
|
|
51
|
+
public fail() {
|
|
52
52
|
this.emit("error");
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -117,7 +117,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
117
117
|
private lastOpenedDocument: DidOpenTextDocumentParams | undefined;
|
|
118
118
|
private copilotSettings: Record<string, unknown> = {};
|
|
119
119
|
|
|
120
|
-
constructor(
|
|
120
|
+
public constructor(
|
|
121
121
|
options: ConstructorParameters<typeof LanguageServerClient>[0] & {
|
|
122
122
|
copilotSettings?: Record<string, unknown>;
|
|
123
123
|
},
|
|
@@ -140,7 +140,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
140
140
|
* Re-run the LSP initialize handshake and send configuration.
|
|
141
141
|
* Called by the transport's onReconnect callback after reconnecting.
|
|
142
142
|
*/
|
|
143
|
-
async reInitialize(): Promise<void> {
|
|
143
|
+
public async reInitialize(): Promise<void> {
|
|
144
144
|
logger.log("#reInitialize: Re-initializing LSP connection");
|
|
145
145
|
this.initializePromise = this.initialize();
|
|
146
146
|
await this.initializePromise;
|
|
@@ -186,7 +186,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
186
186
|
return this.notify(method, params);
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
override getInitializationOptions() {
|
|
189
|
+
public override getInitializationOptions() {
|
|
190
190
|
const info = {
|
|
191
191
|
name: "marimo",
|
|
192
192
|
version: "0.1.0",
|
|
@@ -208,7 +208,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
208
208
|
return !isCopilotEnabled();
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
override async textDocumentDidOpen(
|
|
211
|
+
public override async textDocumentDidOpen(
|
|
212
212
|
params: DidOpenTextDocumentParams,
|
|
213
213
|
): Promise<boolean> {
|
|
214
214
|
if (this.isDisabled()) {
|
|
@@ -223,7 +223,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
223
223
|
return super.textDocumentDidOpen(params);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
override async textDocumentDidClose(
|
|
226
|
+
public override async textDocumentDidClose(
|
|
227
227
|
params: DidCloseTextDocumentParams,
|
|
228
228
|
): Promise<void> {
|
|
229
229
|
if (this.openDocumentCount === 0) {
|
|
@@ -233,14 +233,14 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
233
233
|
return super.textDocumentDidClose(params);
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
-
override async textDocumentCompletion(
|
|
236
|
+
public override async textDocumentCompletion(
|
|
237
237
|
params: CompletionParams,
|
|
238
238
|
): Promise<CompletionList | CompletionItem[]> {
|
|
239
239
|
// Not used in Copilot
|
|
240
240
|
return [];
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
-
override async textDocumentDidChange(
|
|
243
|
+
public override async textDocumentDidChange(
|
|
244
244
|
params: DidChangeTextDocumentParams,
|
|
245
245
|
): Promise<void> {
|
|
246
246
|
if (this.isDisabled()) {
|
|
@@ -304,17 +304,17 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
304
304
|
});
|
|
305
305
|
}
|
|
306
306
|
|
|
307
|
-
override textDocumentHover(params: HoverParams): Promise<Hover> {
|
|
307
|
+
public override textDocumentHover(params: HoverParams): Promise<Hover> {
|
|
308
308
|
// Not used in Copilot
|
|
309
309
|
return Promise.resolve({ contents: [] });
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
// AUTH
|
|
313
|
-
signOut() {
|
|
313
|
+
public signOut() {
|
|
314
314
|
return this._request("signOut", {});
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
-
async signInInitiate() {
|
|
317
|
+
public async signInInitiate() {
|
|
318
318
|
logger.log("#signInInitiate: Starting sign-in flow");
|
|
319
319
|
try {
|
|
320
320
|
const result = await this._request("signIn", {});
|
|
@@ -326,7 +326,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
328
|
|
|
329
|
-
async signInConfirm(params: GitHubCopilotSignInConfirmParams) {
|
|
329
|
+
public async signInConfirm(params: GitHubCopilotSignInConfirmParams) {
|
|
330
330
|
logger.log("#signInConfirm: Confirming sign-in");
|
|
331
331
|
try {
|
|
332
332
|
const result = await this._request("signInConfirm", params);
|
|
@@ -338,7 +338,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
async signedIn() {
|
|
341
|
+
public async signedIn() {
|
|
342
342
|
try {
|
|
343
343
|
const { status } = await this._request("checkStatus", {});
|
|
344
344
|
logger.log("#checkStatus: Status check completed", { status });
|
|
@@ -375,7 +375,7 @@ export class CopilotLanguageServerClient extends LanguageServerClient {
|
|
|
375
375
|
200,
|
|
376
376
|
);
|
|
377
377
|
|
|
378
|
-
async getCompletion(
|
|
378
|
+
public async getCompletion(
|
|
379
379
|
params: InlineCompletionParams,
|
|
380
380
|
): Promise<InlineCompletionList | InlineCompletionItem[] | null> {
|
|
381
381
|
if (this.isDisabled()) {
|
|
@@ -38,7 +38,7 @@ export interface LazyWebsocketTransportOptions {
|
|
|
38
38
|
* Copilot-specific readiness checks, retries, and user-facing errors.
|
|
39
39
|
*/
|
|
40
40
|
export class LazyWebsocketTransport extends ReconnectingWebSocketTransport {
|
|
41
|
-
constructor(options: LazyWebsocketTransportOptions) {
|
|
41
|
+
public constructor(options: LazyWebsocketTransportOptions) {
|
|
42
42
|
super({
|
|
43
43
|
getWsUrl: options.getWsUrl,
|
|
44
44
|
waitForConnection: options.waitForReady,
|
|
@@ -90,15 +90,15 @@ const HighlightMargin = 250;
|
|
|
90
90
|
|
|
91
91
|
export const searchHighlighter = ViewPlugin.fromClass(
|
|
92
92
|
class {
|
|
93
|
-
decorations: DecorationSet;
|
|
94
|
-
readonly view: EditorView;
|
|
93
|
+
public decorations: DecorationSet;
|
|
94
|
+
public readonly view: EditorView;
|
|
95
95
|
|
|
96
|
-
constructor(view: EditorView) {
|
|
96
|
+
public constructor(view: EditorView) {
|
|
97
97
|
this.view = view;
|
|
98
98
|
this.decorations = this.highlight(view.state.field(searchState));
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
update(update: ViewUpdate) {
|
|
101
|
+
public update(update: ViewUpdate) {
|
|
102
102
|
const state = update.state.field(searchState);
|
|
103
103
|
if (
|
|
104
104
|
state !== update.startState.field(searchState) ||
|
|
@@ -110,7 +110,7 @@ export const searchHighlighter = ViewPlugin.fromClass(
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
highlight(query: QueryType) {
|
|
113
|
+
public highlight(query: QueryType) {
|
|
114
114
|
if (!query.spec.valid) {
|
|
115
115
|
return Decoration.none;
|
|
116
116
|
}
|
|
@@ -57,7 +57,7 @@ class MetaUnderlineVariablePlugin {
|
|
|
57
57
|
private hoveredRange: { from: number; to: number; position: number } | null;
|
|
58
58
|
private onClick: (view: EditorView) => void;
|
|
59
59
|
|
|
60
|
-
constructor(view: EditorView, onClick: (view: EditorView) => void) {
|
|
60
|
+
public constructor(view: EditorView, onClick: (view: EditorView) => void) {
|
|
61
61
|
this.view = view;
|
|
62
62
|
this.commandClickMode = false;
|
|
63
63
|
this.hoveredRange = null;
|
|
@@ -69,13 +69,13 @@ class MetaUnderlineVariablePlugin {
|
|
|
69
69
|
window.addEventListener("mouseleave", this.windowBlur);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
update(_update: ViewUpdate) {
|
|
72
|
+
public update(_update: ViewUpdate) {
|
|
73
73
|
// We cannot add any transactions here (e.g. clearing underlines),
|
|
74
74
|
// otherwise CM fails with
|
|
75
75
|
// "Calls to EditorView.update are not allowed while an update is in progress"
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
destroy() {
|
|
78
|
+
public destroy() {
|
|
79
79
|
window.removeEventListener("keydown", this.keydown);
|
|
80
80
|
window.removeEventListener("keyup", this.keyup);
|
|
81
81
|
window.removeEventListener("blur", this.windowBlur);
|
|
@@ -346,7 +346,7 @@ class CodeMirrorVimSync {
|
|
|
346
346
|
// noop
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
-
addInstance(instance: EditorView) {
|
|
349
|
+
public addInstance(instance: EditorView) {
|
|
350
350
|
this.instances.add(instance);
|
|
351
351
|
|
|
352
352
|
const cm = getCM(instance);
|
|
@@ -376,11 +376,11 @@ class CodeMirrorVimSync {
|
|
|
376
376
|
});
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
-
removeInstance(instance: EditorView) {
|
|
379
|
+
public removeInstance(instance: EditorView) {
|
|
380
380
|
this.instances.delete(instance);
|
|
381
381
|
}
|
|
382
382
|
|
|
383
|
-
broadcastModeChange(
|
|
383
|
+
public broadcastModeChange(
|
|
384
384
|
originInstance: EditorView,
|
|
385
385
|
mode: string,
|
|
386
386
|
subMode?: string,
|
|
@@ -41,23 +41,23 @@ export const MARKDOWN_INITIAL_HIDE_CODE = true;
|
|
|
41
41
|
export class MarkdownLanguageAdapter implements LanguageAdapter<MarkdownLanguageAdapterMetadata> {
|
|
42
42
|
private parser = new MarkdownParser();
|
|
43
43
|
|
|
44
|
-
readonly type = "markdown";
|
|
45
|
-
readonly defaultCode = this.parser.defaultCode;
|
|
46
|
-
readonly defaultMetadata: MarkdownLanguageAdapterMetadata =
|
|
44
|
+
public readonly type = "markdown";
|
|
45
|
+
public readonly defaultCode = this.parser.defaultCode;
|
|
46
|
+
public readonly defaultMetadata: MarkdownLanguageAdapterMetadata =
|
|
47
47
|
this.parser.defaultMetadata;
|
|
48
48
|
|
|
49
|
-
static fromMarkdown(markdown: string) {
|
|
49
|
+
public static fromMarkdown(markdown: string) {
|
|
50
50
|
return MarkdownParser.fromMarkdown(markdown);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
transformIn(
|
|
53
|
+
public transformIn(
|
|
54
54
|
pythonCode: string,
|
|
55
55
|
): [string, number, MarkdownLanguageAdapterMetadata] {
|
|
56
56
|
const result = this.parser.transformIn(pythonCode);
|
|
57
57
|
return [result.code, result.offset, result.metadata];
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
transformOut(
|
|
60
|
+
public transformOut(
|
|
61
61
|
code: string,
|
|
62
62
|
metadata: MarkdownLanguageAdapterMetadata,
|
|
63
63
|
): [string, number] {
|
|
@@ -65,11 +65,11 @@ export class MarkdownLanguageAdapter implements LanguageAdapter<MarkdownLanguage
|
|
|
65
65
|
return [result.code, result.offset];
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
isSupported(pythonCode: string): boolean {
|
|
68
|
+
public isSupported(pythonCode: string): boolean {
|
|
69
69
|
return this.parser.isSupported(pythonCode);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
getExtension(
|
|
72
|
+
public getExtension(
|
|
73
73
|
_cellId: CellId,
|
|
74
74
|
_completionConfig: CompletionConfig,
|
|
75
75
|
hotkeys: HotkeyProvider,
|
|
@@ -261,25 +261,25 @@ const pyrightClient = once((_: LSPConfig) => {
|
|
|
261
261
|
export class PythonLanguageAdapter implements LanguageAdapter<{}> {
|
|
262
262
|
private parser = new PythonParser();
|
|
263
263
|
|
|
264
|
-
readonly type = "python";
|
|
265
|
-
readonly defaultCode = this.parser.defaultCode;
|
|
266
|
-
readonly defaultMetadata = this.parser.defaultMetadata;
|
|
264
|
+
public readonly type = "python";
|
|
265
|
+
public readonly defaultCode = this.parser.defaultCode;
|
|
266
|
+
public readonly defaultMetadata = this.parser.defaultMetadata;
|
|
267
267
|
|
|
268
|
-
transformIn(code: string): [string, number, {}] {
|
|
268
|
+
public transformIn(code: string): [string, number, {}] {
|
|
269
269
|
const result = this.parser.transformIn(code);
|
|
270
270
|
return [result.code, result.offset, result.metadata];
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
transformOut(code: string, metadata: {}): [string, number] {
|
|
273
|
+
public transformOut(code: string, metadata: {}): [string, number] {
|
|
274
274
|
const result = this.parser.transformOut(code, metadata);
|
|
275
275
|
return [result.code, result.offset];
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
-
isSupported(code: string): boolean {
|
|
278
|
+
public isSupported(code: string): boolean {
|
|
279
279
|
return this.parser.isSupported(code);
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
-
getExtension(
|
|
282
|
+
public getExtension(
|
|
283
283
|
cellId: CellId,
|
|
284
284
|
completionConfig: CompletionConfig,
|
|
285
285
|
hotkeys: HotkeyProvider,
|
|
@@ -25,7 +25,7 @@ export class CompletionBuilder {
|
|
|
25
25
|
/**
|
|
26
26
|
* Add a table with its columns at the specified path
|
|
27
27
|
*/
|
|
28
|
-
addTable(path: string[], table: DataTable): this {
|
|
28
|
+
public addTable(path: string[], table: DataTable): this {
|
|
29
29
|
const tableNamespace: SQLNamespace = {
|
|
30
30
|
self: tableToCompletion({
|
|
31
31
|
table: table,
|
|
@@ -44,7 +44,7 @@ export class CompletionBuilder {
|
|
|
44
44
|
/**
|
|
45
45
|
* Add a schema at the specified path
|
|
46
46
|
*/
|
|
47
|
-
addSchema(path: string[], schema: DatabaseSchema): this {
|
|
47
|
+
public addSchema(path: string[], schema: DatabaseSchema): this {
|
|
48
48
|
const schemaObject: SQLNamespace = {
|
|
49
49
|
self: schemaToCompletion({
|
|
50
50
|
namespace: schema,
|
|
@@ -60,7 +60,7 @@ export class CompletionBuilder {
|
|
|
60
60
|
/**
|
|
61
61
|
* Add a database at the specified path
|
|
62
62
|
*/
|
|
63
|
-
addDatabase(path: string[], database: Database): this {
|
|
63
|
+
public addDatabase(path: string[], database: Database): this {
|
|
64
64
|
const databaseObject: SQLNamespace = {
|
|
65
65
|
self: databaseToCompletion({
|
|
66
66
|
namespace: database,
|
|
@@ -90,14 +90,14 @@ export class CompletionBuilder {
|
|
|
90
90
|
/**
|
|
91
91
|
* Build the final schema
|
|
92
92
|
*/
|
|
93
|
-
build(): SQLNamespace {
|
|
93
|
+
public build(): SQLNamespace {
|
|
94
94
|
return this.schema;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* Reset for reuse
|
|
99
99
|
*/
|
|
100
|
-
reset(): this {
|
|
100
|
+
public reset(): this {
|
|
101
101
|
this.schema = {};
|
|
102
102
|
return this;
|
|
103
103
|
}
|
|
@@ -28,7 +28,7 @@ const datasetTableCompletionsAtom = atom((get) => {
|
|
|
28
28
|
class SQLCompletionStore {
|
|
29
29
|
private cache: LRUCache<DataSourceConnection, CachedSchema>;
|
|
30
30
|
|
|
31
|
-
constructor() {
|
|
31
|
+
public constructor() {
|
|
32
32
|
this.cache = new LRUCache(10, {
|
|
33
33
|
create: (connection) => this.getConnectionSchema(connection),
|
|
34
34
|
});
|
|
@@ -121,7 +121,7 @@ class SQLCompletionStore {
|
|
|
121
121
|
* Returns the raw dialect of the connection passed from the backend,
|
|
122
122
|
* or null if the connection is not found
|
|
123
123
|
*/
|
|
124
|
-
getInternalDialect(connectionName: ConnectionName): string | null {
|
|
124
|
+
public getInternalDialect(connectionName: ConnectionName): string | null {
|
|
125
125
|
const connection = this.getConnection(connectionName);
|
|
126
126
|
if (!connection) {
|
|
127
127
|
return null;
|
|
@@ -133,7 +133,7 @@ class SQLCompletionStore {
|
|
|
133
133
|
* Get the inferred SQL dialect for a connection
|
|
134
134
|
* If the connection is not found, return the standard SQL dialect.
|
|
135
135
|
*/
|
|
136
|
-
getDialect(connectionName: ConnectionName): SQLDialect {
|
|
136
|
+
public getDialect(connectionName: ConnectionName): SQLDialect {
|
|
137
137
|
const connection = this.getConnection(connectionName);
|
|
138
138
|
if (!connection) {
|
|
139
139
|
return ModifiedStandardSQL;
|
|
@@ -141,7 +141,7 @@ class SQLCompletionStore {
|
|
|
141
141
|
return guessDialect(connection);
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
getCompletionSource(connectionName: ConnectionName): SQLConfig | null {
|
|
144
|
+
public getCompletionSource(connectionName: ConnectionName): SQLConfig | null {
|
|
145
145
|
const connection = this.getConnection(connectionName);
|
|
146
146
|
if (!connection) {
|
|
147
147
|
return null;
|