Def*_*wun 3 javascript plugins codemirror adobe-brackets
我正在尝试找到一种方法来测试光标是否在特定字符串之前,然后触发事件.
我正在尝试做的示例:
用户点击编辑器内的某处,cursorActivity(光标或编辑器已更改)事件被触发,我捕获事件并测试前6个字符是否与字符串匹配'color:'如果是,那么我做什么.
我似乎无法找到任何类型的方法,让您实际上直接从编辑器中读取,除了捕获readInput每次键入字符或粘贴字符串时触发的事件.这适用于某一点但是当用户通过鼠标单击移动光标时失败.
TL; DR如何在特定字符串后立即检测光标何时移动?
好吧终于找到了解决方案.您可以检索实际文档,使用editor.doc该文档可以获得光标线和字符位置.然后,您可以检索所需的行editor.doc.getLine(n)并比较您的子字符串
这是我的测试用例:
<!-- Create a simple CodeMirror instance -->
<link rel="stylesheet" href="lib/codemirror.css">
<script src="lib/codemirror.js"></script>
<textarea id="myTextarea"></textarea>
<script>
var editor = CodeMirror.fromTextArea(myTextarea, {
lineNumbers: true
});
//Catch cursor change event
editor.on('cursorActivity',function(e){
var line = e.doc.getCursor().line, //Cursor line
ch = e.doc.getCursor().ch, //Cursor character
stringToMatch = "color:",
n = stringToMatch.length,
stringToTest = e.doc.getLine(line).substr(Math.max(ch - n,0),n);
if (stringToTest == stringToMatch) console.log("SUCCESS!!!");
});
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |