【发布时间】:2020-03-24 01:43:27
【问题描述】:
我正在开发 DSL 并尝试自定义 webEditor。 当使用“Ctrl + Space”手动调用时,使用编辑器以及自动完成功能都可以正常工作。 现在,如果在任何 keyup 之后调用提示会很方便。我在这里找到了几种可能的解决方案。不幸的是,没有显示弹出窗口(但显示了日志消息)。
这是我的代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Example Web Editor</title>
<link rel="stylesheet" type="text/css" href="webjars/codemirror/5.41.0/lib/codemirror.css" />
<link rel="stylesheet" type="text/css" href="xtext/2.17.0/xtext-codemirror.css" />
<link rel="stylesheet" type="text/css" href="webjars/codemirror/5.41.0/addon/hint/show-hint.css" />
<script type="text/javascript" src="webjars/codemirror/5.41.0/lib/codemirror.js"></script>
<script type="text/javascript" src="webjars/codemirror/5.41.0/addon/hint/show-hint.js"></script>
<script src="webjars/requirejs/2.3.6/require.min.js"></script>
<script type="text/javascript">
var baseUrl = window.location.pathname;
var fileIndex = baseUrl.indexOf("index.html");
if (fileIndex > 0)
baseUrl = baseUrl.slice(0, fileIndex)
require.config({
baseUrl : baseUrl,
paths : {
"jquery" : "webjars/jquery/3.3.1-1/jquery.min",
"xtext/xtext-codemirror" : "xtext/2.17.0/xtext-codemirror"
},
packages : [ {
name : "codemirror",
location : "webjars/codemirror/5.41.0",
main : "lib/codemirror"
} ]
});
require([ "xtext/xtext-codemirror" ], function(xtext) {
var editor = xtext.createEditor();
editor.on('inputRead', function onChange(editor, input) {
console.log("hey");
CodeMirror.commands.autocomplete(editor);
});
});
</script>
</head>
<body>
<div class="content">
<div id="xtext-editor" data-editor-xtext-lang="adv"></div>
</div>
</body>
</html>
这里没有什么特别的事情发生,我只是尝试在任何按键操作后自动完成。
【问题讨论】:
-
您确定已将 codemirror webjar 添加到 pom/build.gradle 中吗?
-
浏览器控制台是否显示任何错误?
-
我在 pom.xml 中添加了所有依赖项。一切正常,我没有收到任何错误。如前所述,日志消息也正确显示。如果我输入任何内容,则只有自动完成的弹出窗口不会显示。只有当我通过“Ctrl + Space”调用它时
-
如果您删除 index.html 并将
webSupport= { framework="CODEMIRROR" }添加到工作流中,您的 html 看起来与 xtext 生成的有点不同 我也不知道您是否有一个语法可以产生内容辅助您正在测试的地方 -
我删除了旧索引,但还是一样。生成的和我的之间的变化也很小。产生内容辅助的语法是什么意思?由于我可以使用快捷方式调用提示,因此必须生成内容辅助 - 还是我错了?
标签: javascript autocomplete xtext codemirror hint