Add plain text file type fallback, fix array handling

This commit is contained in:
Shadowfacts 2016-10-02 10:09:37 -04:00
parent f9e306b891
commit b2fac20cc6
Signed by: shadowfacts
GPG Key ID: 94A5AB95422746E5
2 changed files with 28 additions and 6 deletions

View File

@ -162,7 +162,7 @@ let languages = {
"Groovy": { "Groovy": {
file: "groovy", file: "groovy",
mime: "text/x-groovy", mime: "text/x-groovy",
extensions: ["groovy", "grt", "gtpl", "gvy"] extensions: ["groovy", "grt", "gtpl", "gvy", "gradle"]
}, },
"HAML": { "HAML": {
file: "haml", file: "haml",
@ -294,6 +294,11 @@ let languages = {
mime: "text/x-protobuf", mime: "text/x-protobuf",
extensions: ["proto"] extensions: ["proto"]
}, },
"Plain Text": {
file: [],
mime: "text/plain",
extensions: ["txt"]
},
"R": { "R": {
file: "r", file: "r",
mime: "text/x-rsrc", mime: "text/x-rsrc",
@ -417,5 +422,5 @@ function getLanguageByExtension(ext) {
} }
} }
} }
return null; return languages["Plain Text"];
} }

View File

@ -18,9 +18,23 @@ $.get({
.then((chunk) => { .then((chunk) => {
let lang = getLanguageByExtension(getFileExtension()); let lang = getLanguageByExtension(getFileExtension());
console.log(`Detected language as ${lang.mime}`); console.log(`Detected language as ${lang.mime}`);
$.getScript(`https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.19.0/mode/${lang.file}/${lang.file}.min.js`, () => { if (Array.isArray(lang.file)) {
setup(chunk, lang.mime); if (lang.file.length != 0) {
}); var req = req = $.getScript(`https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.19.0/mode/${lang.file[0]}/${lang.file[0]}.min.js`);
for (var i = 1; i < lang.file.length; i++) {
req = req.then($.getScript(`https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.19.0/mode/${lang.file[i]}/${lang.file[i]}.min.js`));
}
req.then(() => {
setup(chunk, lang.mime);
});
} else {
setup(chunk, lang.mime);
}
} else {
$.getScript(`https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.19.0/mode/${lang.file}/${lang.file}.min.js`, () => {
setup(chunk, lang.mime);
});
}
}) })
.catch((e) => { .catch((e) => {
throw e; throw e;
@ -260,6 +274,9 @@ function getStartPos() {
function getEndPos() { function getEndPos() {
var line = editor.doc.size - 1; var line = editor.doc.size - 1;
while (true) { while (true) {
if (line <= editor.doc.size) {
return { line: editor.doc.size - 1, ch: editor.doc.getLine(editor.doc.size - 1).length - 1 };
}
let text = editor.doc.getLine(line); let text = editor.doc.getLine(line);
let trimmed = text.trim(); let trimmed = text.trim();
if (trimmed.length != 0) { if (trimmed.length != 0) {
@ -304,7 +321,7 @@ function getChunk(code) {
let chunk = val[filePath].chunk; let chunk = val[filePath].chunk;
let totalChunks = Math.ceil(lines.length / 50); let totalChunks = Math.ceil(lines.length / 50);
if (chunk == totalChunks - 1) { if (chunk == totalChunks - 1) {
return lines.slice(totalChunks - (lines.length % 50), lines.length); return lines.slice(lines.length - (lines.length % 50), lines.length);
} else { } else {
return lines.slice(chunk * 50, (chunk + 1) * 50); return lines.slice(chunk * 50, (chunk + 1) * 50);
} }