javascript - Codemirror 自动完成删除全局建议

标签 javascript codemirror

编织:http://kodeweave.sourceforge.net/editor/#d956c96bdee0cdd1ce9193aee78353ac

有谁知道从 Codemirror 的自动完成中删除一些全局变量的有效方法吗?

例如 StyleFix、PrefixFree、Html2Jade 等:不应可见。

enter image description here

最佳答案

以下是其摘要:(来自 https://codemirror.net/doc/manual.html#addon_javascript-hint )

This will simply use the JavaScript environment that the editor runs in as a source of information about objects and their properties.

及相关源码:

var found = [], start = token.string, global = options && options.globalScope || window;

function gatherCompletions(obj) {
  if (typeof obj == "string") forEach(stringProps, maybeAdd);
  else if (obj instanceof Array) forEach(arrayProps, maybeAdd);
  else if (obj instanceof Function) forEach(funcProps, maybeAdd);
  for (var name in obj) maybeAdd(name);//important
}

(来自 https://mikethedj4.github.io/kodeWeave/editor/libraries/codemirror/addon/hint/javascript-hint.js )

其中obj全局

因此,如果您想删除一些全局变量 ,只需修改 globalScope 参数即可。

更改此行:

CodeMirror.commands.autocomplete(cm,null, {completeSingle: false});

var scope={};
var preventList=['StyleFix', 'PrefixFree', 'Html2Jade','alert'];// map is better
for(var i in window){
  if(preventList.indexOf(i)===-1){
    scope[i]=window[i]
  }
}
CodeMirror.commands.autocomplete(cm,null, {completeSingle: false,globalScope:scope});

现场演示: https://mikethedj4.github.io/kodeWeave/editor/#cf4c4aa884b6ddb30c4ac79dd8bf3997

关于javascript - Codemirror 自动完成删除全局建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38176997/

相关文章:

javascript - 使用 node.js 覆盖文件中的一行

javascript - 无法使用 Rails 在 Ajax 请求中通过 url 传递参数

javascript - 将 base64 转换后的文件存储在变量中供以后使用

CodeMirror 自定义模式 - 如何在关键字上应用样式?

javascript - Opera mini 中的触发滚动

javascript - 是否可以在同一个元素上应用多个 AngularJS Controller

javascript - Codemirror javascript 缩进问题

jquery - 当 CodeMirror 隐藏它在 Gentelella 主题中 Hook 的 TextArea 时消失

javascript - 如何在 CodeMirror 中触发键盘事件?

javascript - CodeMirror 2 - 隐藏文本区域取消隐藏后编辑器高度错误