Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
51008 views
1
(function () {
2
"use strict";
3
4
var pseudoClasses = {link: 1, visited: 1, active: 1, hover: 1, focus: 1,
5
"first-letter": 1, "first-line": 1, "first-child": 1,
6
before: 1, after: 1, lang: 1};
7
8
CodeMirror.registerHelper("hint", "css", function(cm) {
9
var cur = cm.getCursor(), token = cm.getTokenAt(cur);
10
var inner = CodeMirror.innerMode(cm.getMode(), token.state);
11
if (inner.mode.name != "css") return;
12
13
var word = token.string, start = token.start, end = token.end;
14
if (/[^\w$_-]/.test(word)) {
15
word = ""; start = end = cur.ch;
16
}
17
18
var spec = CodeMirror.resolveMode("text/css");
19
20
var result = [];
21
function add(keywords) {
22
for (var name in keywords)
23
if (!word || name.lastIndexOf(word, 0) == 0)
24
result.push(name);
25
}
26
27
var st = token.state.state;
28
if (st == "pseudo" || token.type == "variable-3") {
29
add(pseudoClasses);
30
} else if (st == "block" || st == "maybeprop") {
31
add(spec.propertyKeywords);
32
} else if (st == "prop" || st == "parens" || st == "at" || st == "params") {
33
add(spec.valueKeywords);
34
add(spec.colorKeywords);
35
} else if (st == "media" || st == "media_parens") {
36
add(spec.mediaTypes);
37
add(spec.mediaFeatures);
38
}
39
40
if (result.length) return {
41
list: result,
42
from: CodeMirror.Pos(cur.line, start),
43
to: CodeMirror.Pos(cur.line, end)
44
};
45
});
46
})();
47
48