CodeMirror XML模式:读取所有属性
在XML模式下运行的CodeMirror中是否有方法读取光标位置处标记的所有属性 光标处的标记可通过以下方式确定:CodeMirror XML模式:读取所有属性,xml,codemirror,Xml,Codemirror,在XML模式下运行的CodeMirror中是否有方法读取光标位置处标记的所有属性 光标处的标记可通过以下方式确定: var cur=cm.getCursor(), 令牌=cm.getTokenAt(cur); 例如: 语句“”可能导致以下情况: { id:“1”, 名称:“测试” } 谢谢你的建议。这可能会帮助一些人 cm.on("cursorActivity", function () { var cur = cm.getCursor(), tagList = [
var cur=cm.getCursor(),
令牌=cm.getTokenAt(cur);
例如:
语句“
”可能导致以下情况:
{
id:“1”,
名称:“测试”
}
谢谢你的建议。这可能会帮助一些人
cm.on("cursorActivity", function () {
var cur = cm.getCursor(),
tagList = [
"control",
"fql",
"text"
],
range = cm.getViewport(),
attributes = {};
range.from = Math.min(range.from, cur.line);
range.to = Math.max(cur.line + 1, range.to);
var match = CodeMirror.findMatchingTag(cm, cur, range);
if (match && match.at === "open" && tagList.indexOf(match.open.tag.toLowerCase()) > -1) {
var doc = cm.getDoc(),
tagLine = doc.getRange(match.open.from, match.open.to, false).join(""),
re = /(\S+)\s*?=\s*(['"])(.*?|)\2/g,
m;
while ((m = re.exec(tagLine)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
attributes[m[1]] = m[3];
}
console.log(attributes);
}
});
这可能对某人有帮助
cm.on("cursorActivity", function () {
var cur = cm.getCursor(),
tagList = [
"control",
"fql",
"text"
],
range = cm.getViewport(),
attributes = {};
range.from = Math.min(range.from, cur.line);
range.to = Math.max(cur.line + 1, range.to);
var match = CodeMirror.findMatchingTag(cm, cur, range);
if (match && match.at === "open" && tagList.indexOf(match.open.tag.toLowerCase()) > -1) {
var doc = cm.getDoc(),
tagLine = doc.getRange(match.open.from, match.open.to, false).join(""),
re = /(\S+)\s*?=\s*(['"])(.*?|)\2/g,
m;
while ((m = re.exec(tagLine)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
attributes[m[1]] = m[3];
}
console.log(attributes);
}
});