load_plugin.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import 'package:app_flowy/plugin/plugin.dart';
  2. import 'package:app_flowy/startup/startup.dart';
  3. import 'package:app_flowy/workspace/presentation/stack_page/blank/blank_page.dart';
  4. import 'package:app_flowy/workspace/presentation/stack_page/doc/doc_stack_page.dart';
  5. import 'package:app_flowy/workspace/presentation/stack_page/trash/trash_page.dart';
  6. enum DefaultPlugin {
  7. quillEditor,
  8. blank,
  9. trash,
  10. }
  11. extension FlowyDefaultPluginExt on DefaultPlugin {
  12. int type() {
  13. switch (this) {
  14. case DefaultPlugin.quillEditor:
  15. return 0;
  16. case DefaultPlugin.blank:
  17. return 1;
  18. case DefaultPlugin.trash:
  19. return 2;
  20. }
  21. }
  22. }
  23. bool isDefaultPlugin(PluginType pluginType) {
  24. return DefaultPlugin.values.map((e) => e.type()).contains(pluginType);
  25. }
  26. class PluginLoadTask extends LaunchTask {
  27. @override
  28. LaunchTaskType get type => LaunchTaskType.dataProcessing;
  29. @override
  30. Future<void> initialize(LaunchContext context) async {
  31. registerPlugin(builder: BlankPluginBuilder());
  32. registerPlugin(builder: TrashPluginBuilder());
  33. registerPlugin(builder: DocumentPluginBuilder());
  34. }
  35. }