- files, _ := ioutil.ReadDir(configDir + "/plugins")
- for _, plugin := range files {
- if plugin.IsDir() {
- pluginName := plugin.Name()
- files, _ := ioutil.ReadDir(configDir + "/plugins/" + pluginName)
- for _, f := range files {
- fullPath := filepath.Join(configDir, "plugins", pluginName, f.Name())
- if f.Name() == pluginName+".lua" {
- data, _ := ioutil.ReadFile(fullPath)
- pluginDef := "\nlocal P = {}\n" + pluginName + " = P\nsetmetatable(" + pluginName + ", {__index = _G})\nsetfenv(1, P)\n"
-
- if err := L.DoString(pluginDef + string(data)); err != nil {
- TermMessage(err)
- continue
- }
- loadedPlugins = append(loadedPlugins, pluginName)
- } else if f.Name() == "help.md" {
- AddPluginHelp(pluginName, fullPath)
- }
- }
+
+ loadedPlugins = make(map[string]string)
+
+ for _, plugin := range ListRuntimeFiles(RTPlugin) {
+
+ pluginName := plugin.Name()
+ if _, ok := loadedPlugins[pluginName]; ok {
+ continue