import * as CodeMirror from "codemirror";
import { startswith } from "@cocalc/util/misc";
const data = require("@cocalc/assets/codemirror-extra/data/latex-completions.txt");
const completions: string[] = data.split("\n");
function tex_hint(editor) {
const cur = editor.getCursor();
const line = editor.getLine(cur.line);
const s = line.slice(0, cur.ch);
const i = s.lastIndexOf("\\");
const list: string[] = [];
if (i == -1) {
} else {
const delete_trailing_brace = line[cur.ch] == "}";
const t = s.slice(i);
for (const word of completions) {
if (startswith(word, t)) {
if (delete_trailing_brace && word[word.length - 1] == "}") {
list.push(word.slice(0, word.length - 1));
} else {
list.push(word);
}
}
}
}
return {
list,
from: CodeMirror.Pos(cur.line, i),
to: CodeMirror.Pos(cur.line, cur.ch),
};
}
CodeMirror.registerHelper("hint", "stex", tex_hint);