feat(editor): replace spec provider with extension manager (#11861)

Closes: BS-3273
This commit is contained in:
Saul-Mirone
2025-04-22 07:40:41 +00:00
parent 8fdb00e0ab
commit 6d6504e2af
51 changed files with 623 additions and 177 deletions

View File

@@ -1,13 +1,7 @@
import '@toeverything/theme/style.css';
import '@toeverything/theme/fonts.css';
import { effects as blocksEffects } from '@blocksuite/affine/effects';
import {
EdgelessEditorBlockSpecs,
PageEditorBlockSpecs,
registerStoreSpecs,
StoreExtensions,
} from '@blocksuite/affine/extensions';
import { registerStoreSpecs } from '@blocksuite/affine/extensions';
import type { DocMode } from '@blocksuite/affine/model';
import { AffineSchemas } from '@blocksuite/affine/schemas';
import {
@@ -27,11 +21,17 @@ import {
import { effects } from '../../effects.js';
import { TestAffineEditorContainer } from '../../index.js';
import { getTestStoreManager } from '../../store.js';
import { getTestViewManager } from '../../view.js';
// FIXME: used for test import/export
registerStoreSpecs();
blocksEffects();
const storeManager = getTestStoreManager();
const viewManager = getTestViewManager();
effects();
const storeExtensions = storeManager.get('store');
export function getRenderer() {
return editor.std.get(
ViewportTurboRendererIdentifier
@@ -85,12 +85,12 @@ async function createEditor(
editor.doc = doc;
editor.mode = mode;
editor.pageSpecs = [
...PageEditorBlockSpecs,
...viewManager.get('page'),
FontConfigExtension(CommunityCanvasTextFonts),
...extensions,
];
editor.edgelessSpecs = [
...EdgelessEditorBlockSpecs,
...viewManager.get('edgeless'),
FontConfigExtension(CommunityCanvasTextFonts),
...extensions,
];
@@ -123,7 +123,7 @@ export async function setupEditor(
extensions: ExtensionType[] = []
) {
const collection = new TestWorkspace(createCollectionOptions());
collection.storeExtensions = StoreExtensions;
collection.storeExtensions = storeExtensions;
collection.meta.initialize();
window.collection = collection;

View File

@@ -0,0 +1,7 @@
import { StoreExtensionManager } from '@blocksuite/affine/ext-loader';
import { MigratingStoreExtension } from '@blocksuite/affine/extensions/store';
export function getTestStoreManager() {
const manager = new StoreExtensionManager([MigratingStoreExtension]);
return manager;
}

View File

@@ -0,0 +1,7 @@
import { ViewExtensionManager } from '@blocksuite/affine/ext-loader';
import { MigratingViewExtension } from '@blocksuite/affine/extensions/view';
export function getTestViewManager() {
const manager = new ViewExtensionManager([MigratingViewExtension]);
return manager;
}