CodeMirror 使用多个提示源进行自动完成
CodeMirror Use multiple hint sources for autocomplete
本文关键字:提示 CodeMirror 更新时间:2023-09-26
是否可以包含多个提示源以进行自动完成?我试过这个:
CodeMirror.commands.autocomplete = function(cm) {
CodeMirror.showHint(cm, CodeMirror.hint.xml);
CodeMirror.showHint(cm, CodeMirror.hint.html);
CodeMirror.showHint(cm, CodeMirror.hint.css);
CodeMirror.showHint(cm, CodeMirror.hint.javascript);
};
但它似乎只包含引用的最后一个源文件,而忽略其余文件。有没有简单的方法可以做到这一点?
我在另一个问题中找到了问题的答案,所以如果这让这个问题有点多余,请原谅我。我需要做的是找出在调用自动完成时当前处于活动状态的模式(我使用的是混合模式)。首先,我需要模式:
var mode = CodeMirror.innerMode(cm.getMode(), cm.getTokenAt(POS).state).mode.name;
我在这里找到的。对于我的情况,我想在调用自动完成时执行此操作,因此我的函数如下所示:
CodeMirror.commands.autocomplete = function(cm) {
var doc = cm.getDoc();
var POS = doc.getCursor();
var mode = CodeMirror.innerMode(cm.getMode(), cm.getTokenAt(POS).state).mode.name;
if (mode == 'xml') { //html depends on xml
CodeMirror.showHint(cm, CodeMirror.hint.html);
} else if (mode == 'javascript') {
CodeMirror.showHint(cm, CodeMirror.hint.javascript);
} else if (mode == 'css') {
CodeMirror.showHint(cm, CodeMirror.hint.css);
}
};
现在,每当调用自动完成功能时,它都会检查编辑器在文档中特定点所处的模式。
处理此问题的功能已经存在于(最新版本的)CodeMirror中,您可以在其中使用 defineHelper 定义特定于语言的帮助程序函数,如果您不给它显式完成函数,标准完成器(show-hint.js)将使用为该语言定义的函数。标准完成器插件确实将自己注册为适用于他们的语言,因此它应该"开箱即用"地工作。
相关文章:
- 提示使用服务器端事件处理程序激活JavaScript
- d3.js Chord图的动态工具提示
- Javascript 可选类型提示
- 单击按钮后启动javascript提示
- Graphiti中是否有任何工具提示功能
- JS,用于播放提示音以通知未按预期工作
- "工具提示"jQuery插件坏了
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- 单元格的工具提示或标题不显示超过2000个字符
- JQM simpledialog:如何提示输入数字
- d3.js用按钮更新条形图工具提示
- 使Intro.js工具提示响应
- 画布中绘制的矩形区域的弹出工具提示
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- 是否可以用变量确认提示警报
- 禁用NVD3 multiBarHorizontalChart中0值的工具提示
- 模态提示-如何重写此代码
- CodeMirror自定义提示列表工作不正常
- Codemirror-提示/使用分隔符自动完成
- CodeMirror 使用多个提示源进行自动完成