let sourceJSM = function sourceJSM() {
context = contexts.Module(uri);
dactyl.triggerObserver("io.source", context, file, file.lastModifiedTime);
- }
+ };
if (/\.jsm$/.test(filename))
sourceJSM();
},
/**
- * Creates a temporary file.
+ * Returns a temporary file.
*
+ * @param {string} ext The filename extension.
+ * @default "txt"
+ * @param {string} label A metadata string appended to the filename. Useful
+ * for identifying the file, beyond its extension, to external
+ * applications.
+ * @default ""
* @returns {File}
*/
- createTempFile: function createTempFile(name, type) {
- if (name instanceof Ci.nsIFile) {
- var file = name.clone();
- if (!type || type == "file")
- file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, octal(666));
- else
- file.createUnique(Ci.nsIFile.DIRECTORY_TYPE, octal(777));
- }
- else {
- file = services.directory.get("TmpD", Ci.nsIFile);
- file.append(this.config.tempFile + (name ? "." + name : ""));
- file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, octal(666));
- }
+ createTempFile: function createTempFile(ext = "txt", label = "") {
+ let file = services.directory.get("TmpD", Ci.nsIFile);
+ file.append(config.name + label + "." + ext);
+ file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, octal(666));
services.externalApp.deleteTemporaryFileOnExit(file);
* @returns {boolean} false if temp files couldn't be created,
* otherwise, the return value of *func*.
*/
- withTempFiles: function withTempFiles(func, self, checked, ext) {
+ withTempFiles: function withTempFiles(func, self, checked, ext, label) {
let args = array(util.range(0, func.length))
- .map(bind("createTempFile", this, ext)).array;
+ .map(bind("createTempFile", this, ext, label)).array;
try {
if (!args.every(util.identity))
return false;
lines.push("\n\" vim: set ft=" + config.name + ":");
try {
- file.write(lines.join("\n"));
+ file.write(lines.join("\n").concat("\n"));
dactyl.echomsg(_("io.writing", file.path.quote()), 2);
}
catch (e) {
item.file = file;
}
- rtItems.ftdetect.template = // {{{
+ rtItems.ftdetect.template = //{{{
literal(/*" Vim filetype detection file
<header>
au BufNewFile,BufRead *<name>rc*,*.<fileext> set filetype=<name>
*/);//}}}
- rtItems.ftplugin.template = // {{{
+ rtItems.ftplugin.template = //{{{
literal(/*" Vim filetype plugin file
<header>
let &cpo = s:cpo_save
unlet s:cpo_save
*/);//}}}
- rtItems.syntax.template = // {{{
+ rtItems.syntax.template = //{{{
literal(/*" Vim syntax file
<header>
return lines.map(function (l) l.join("")).join("\n").replace(/\s+\n/gm, "\n");
}//}}}
- let params = { // {{{
+ let params = { //{{{
header: ['" Language: ' + config.appName + ' configuration file',
'" Maintainer: Doug Kearns <dougkearns@gmail.com>',
'" Version: ' + config.version].join("\n"),
array(o.realNames for (o in options) if (o.type == "boolean"))
.flatten().map(String.quote),
", ") + "]"
- }; // }}}
+ }; //}}}
for (let { file, template } in values(rtItems)) {
try {
} catch(e){ if (isString(e)) e = Error(e); dump(e.fileName+":"+e.lineNumber+": "+e+"\n" + e.stack); }
-// vim: set fdm=marker sw=4 ts=4 et ft=javascript:
+// vim: set fdm=marker sw=4 sts=4 ts=8 et ft=javascript: