- let runtime = config.OS.isWindows ? "~/vimfiles/" : "~/.vim/";
- let file = io.File(runtime + "syntax/" + config.name + ".vim");
- if (args.length)
- file = io.File(args[0]);
+ dactyl.assert(args.length <= 1, _("io.oneFileAllowed"));
+
+ if (args.length) {
+ var rtDir = io.File(args[0]);
+ dactyl.assert(rtDir.exists(), _("io.noSuchDir", rtDir.path.quote()));
+ }
+ else
+ rtDir = io.File(config.OS.isWindows ? "~/vimfiles/" : "~/.vim/");
+
+ dactyl.assert(!rtDir.exists() || rtDir.isDirectory(), _("io.eNotDir", rtDir.path.quote()));
+
+ let rtItems = { ftdetect: {}, ftplugin: {}, syntax: {} };
+
+ // require bang if any of the paths exist
+ for (let [type, item] in iter(rtItems)) {
+ let file = io.File(rtDir).child(type, config.name + ".vim");
+ dactyl.assert(!file.exists() || args.bang, _("io.exists", file.path.quote()));
+ item.file = file;
+ }
+
+ rtItems.ftdetect.template = // {{{
+literal(/*" Vim filetype detection file
+<header>
+
+au BufNewFile,BufRead *<name>rc*,*.<fileext> set filetype=<name>
+*/);//}}}
+ rtItems.ftplugin.template = // {{{
+literal(/*" Vim filetype plugin file
+<header>