mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-06 08:48:49 +01:00
🧑💻 Add onDataChanged method to handle data changes in the plugin (#16244)
This commit is contained in:
parent
319cdbb98a
commit
9bfe00cf10
7 changed files with 94 additions and 35 deletions
|
|
@ -1594,7 +1594,8 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult,
|
|||
var upsertTrees int
|
||||
// 可能需要重新加载部分功能
|
||||
var needReloadFlashcard, needReloadOcrTexts, needReloadPlugin bool
|
||||
upsertPluginSet := hashset.New()
|
||||
upsertCodePluginSet := hashset.New() // 插件代码变更 data/plugins/
|
||||
upsertDataPluginSet := hashset.New() // 插件存储数据变更 data/storage/petal/
|
||||
needUnindexBoxes, needIndexBoxes := map[string]bool{}, map[string]bool{}
|
||||
for _, file := range mergeResult.Upserts {
|
||||
upserts = append(upserts, file.Path)
|
||||
|
|
@ -1617,7 +1618,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult,
|
|||
needReloadPlugin = true
|
||||
if parts := strings.Split(file.Path, "/"); 3 < len(parts) {
|
||||
if pluginName := parts[3]; "petals.json" != pluginName {
|
||||
upsertPluginSet.Add(pluginName)
|
||||
upsertDataPluginSet.Add(pluginName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1625,7 +1626,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult,
|
|||
if strings.HasPrefix(file.Path, "/plugins/") {
|
||||
if parts := strings.Split(file.Path, "/"); 2 < len(parts) {
|
||||
needReloadPlugin = true
|
||||
upsertPluginSet.Add(parts[2])
|
||||
upsertCodePluginSet.Add(parts[2])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1655,7 +1656,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult,
|
|||
needReloadPlugin = true
|
||||
if parts := strings.Split(file.Path, "/"); 3 < len(parts) {
|
||||
if pluginName := parts[3]; "petals.json" != pluginName {
|
||||
removePluginSet.Add(pluginName)
|
||||
upsertDataPluginSet.Add(pluginName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1676,7 +1677,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult,
|
|||
|
||||
for _, upsertPetal := range mergeResult.UpsertPetals {
|
||||
needReloadPlugin = true
|
||||
upsertPluginSet.Add(upsertPetal)
|
||||
upsertCodePluginSet.Add(upsertPetal)
|
||||
}
|
||||
for _, removePetal := range mergeResult.RemovePetals {
|
||||
needReloadPlugin = true
|
||||
|
|
@ -1692,7 +1693,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult,
|
|||
}
|
||||
|
||||
if needReloadPlugin {
|
||||
pushReloadPlugin(upsertPluginSet, removePluginSet, "")
|
||||
PushReloadPlugin(upsertCodePluginSet, upsertDataPluginSet, removePluginSet, "")
|
||||
}
|
||||
|
||||
for _, widgetDir := range removeWidgetDirSet.Values() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue