mirror of
https://github.com/zyedidia/micro.git
synced 2026-02-07 07:30:20 +09:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"io/ioutil"
|
|
)
|
|
|
|
var loadedPlugins []string
|
|
|
|
var preInstalledPlugins = []string{
|
|
"go",
|
|
}
|
|
|
|
// LoadPlugins loads the pre-installed plugins and the plugins located in ~/.config/micro/plugins
|
|
func LoadPlugins() {
|
|
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 {
|
|
if f.Name() == pluginName+".lua" {
|
|
if err := L.DoFile(configDir + "/plugins/" + pluginName + "/" + f.Name()); err != nil {
|
|
TermMessage(err)
|
|
continue
|
|
}
|
|
loadedPlugins = append(loadedPlugins, pluginName)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for _, pluginName := range preInstalledPlugins {
|
|
plugin := "runtime/plugins/" + pluginName + "/" + pluginName + ".lua"
|
|
data, err := Asset(plugin)
|
|
if err != nil {
|
|
TermMessage("Error loading pre-installed plugin: " + pluginName)
|
|
continue
|
|
}
|
|
if err := L.DoString(string(data)); err != nil {
|
|
TermMessage(err)
|
|
continue
|
|
}
|
|
loadedPlugins = append(loadedPlugins, pluginName)
|
|
}
|
|
}
|