🎨 Add plugin config items backends and frontends https://github.com/siyuan-note/siyuan/issues/8386

Improve plugin load performance https://github.com/siyuan-note/siyuan/issues/8397
This commit is contained in:
Daniel 2023-05-29 21:17:24 +08:00
parent 52c9b5fbca
commit f5a9c2d316
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
5 changed files with 78 additions and 31 deletions

View file

@ -108,7 +108,39 @@ func Plugins(frontend string) (plugins []*Plugin) {
return
}
func InstalledPlugins(frontend string) (ret []*Plugin) {
func IsIncompatibleInstalledPlugin(name, frontend string) (found, incompatible bool) {
pluginsPath := filepath.Join(util.DataDir, "plugins")
if !util.IsPathRegularDirOrSymlinkDir(pluginsPath) {
return
}
pluginDirs, err := os.ReadDir(pluginsPath)
if nil != err {
logging.LogWarnf("read plugins folder failed: %s", err)
return
}
for _, pluginDir := range pluginDirs {
if !util.IsDirRegularOrSymlink(pluginDir) {
continue
}
dirName := pluginDir.Name()
if name != dirName {
continue
}
plugin, parseErr := PluginJSON(dirName)
if nil != parseErr || nil == plugin {
return
}
found = true
incompatible = isIncompatiblePlugin(plugin, frontend)
}
return
}
func InstalledPlugins(frontend string, checkUpdate bool) (ret []*Plugin) {
ret = []*Plugin{}
pluginsPath := filepath.Join(util.DataDir, "plugins")
@ -122,7 +154,10 @@ func InstalledPlugins(frontend string) (ret []*Plugin) {
return
}
bazaarPlugins := Plugins(frontend)
var bazaarPlugins []*Plugin
if checkUpdate {
bazaarPlugins = Plugins(frontend)
}
for _, pluginDir := range pluginDirs {
if !util.IsDirRegularOrSymlink(pluginDir) {