From cc849fe1d27aacfa145b8cf8285e980a5a50a22c Mon Sep 17 00:00:00 2001 From: Nicolas Morel Date: Wed, 25 Mar 2026 15:20:40 +0100 Subject: [PATCH] feat: add sandbox autocompletion --- .vitepress/theme/index.ts | 13 +-- components/CodeMirrorEditor.vue | 37 ++++++++- components/TesterContent.vue | 4 +- composables/joiCompletionSource.ts | 126 +++++++++++++++++++++++++++++ env.d.ts | 5 ++ generated/metadata/modules.json | 24 +++--- package.json | 3 + pnpm-lock.yaml | 39 +++++++++ 8 files changed, 228 insertions(+), 23 deletions(-) create mode 100644 composables/joiCompletionSource.ts diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 2603404..e00d20b 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -1,18 +1,19 @@ import DefaultTheme from 'vitepress/theme'; -import { h } from 'vue'; +import { defineAsyncComponent, h } from 'vue'; import './variables.css'; import './main.css'; import 'virtual:group-icons.css'; -import ApiOutline from '../../components/ApiOutline.vue'; -import CarbonAds from '../../components/CarbonAds.vue'; -import ModuleIndex from '../../components/ModuleIndex.vue'; -import StatusContent from '../../components/StatusContent.vue'; -import TesterContent from '../../components/TesterContent.vue'; import { getRedirectPath } from './redirect.js'; import type { Theme } from 'vitepress'; +const ApiOutline = defineAsyncComponent(() => import('../../components/ApiOutline.vue')); +const CarbonAds = defineAsyncComponent(() => import('../../components/CarbonAds.vue')); +const ModuleIndex = defineAsyncComponent(() => import('../../components/ModuleIndex.vue')); +const StatusContent = defineAsyncComponent(() => import('../../components/StatusContent.vue')); +const TesterContent = defineAsyncComponent(() => import('../../components/TesterContent.vue')); + export default { Layout() { return h(DefaultTheme.Layout, null, { diff --git a/components/CodeMirrorEditor.vue b/components/CodeMirrorEditor.vue index 0dd8743..910a66e 100644 --- a/components/CodeMirrorEditor.vue +++ b/components/CodeMirrorEditor.vue @@ -3,11 +3,12 @@