blob: 253db22db8b14babb245823dc99a19b3871e5936 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// ==VimperatorPlugin==
// @name Plugin Loader
// @description-ja 指定(ディレクトリ|プラグイン)を起動時にロードする
// @license Creative Commons 2.1 (Attribution + Share Alike)
// @version 2.2
// @author anekos
// ==/VimperatorPlugin==
//
// Usage:
// let g:plugin_loader_roots = "<PLUGIN_DIRECTORIES>"
// let g:plugin_loader_plugins = "<PLUGIN_NAMES>"
//
// Example:
// let g:plugin_loader_roots = "/home/anekos/coderepos/vimp-plugins/ /home/anekos/my-vimp-plugins/"
// let g:plugin_loader_plugins = "lo,migemized_find,nico_related_videos"
//
// Link:
// http://d.hatena.ne.jp/nokturnalmortum/20081008#1223397705
function toArray (obj) {
return obj instanceof Array ? obj
: obj.toString().split(/[,|\s]/);
}
let roots = toArray(globalVariables.plugin_loader_roots);
let plugins = toArray(globalVariables.plugin_loader_plugins);
let filter = new RegExp('[\\\\/](' + plugins.join('|') + ')\\.(js|vimp)$');
log('plugin_loader: loading');
for each (let root in roots) {
let files = io.readDirectory(io.getFile(root), true);
for each (let file in files) {
if (!filter.test(file.path))
continue;
liberator.io.source(file.path, false);
}
}
log('plugin_loader: loaded');
|