我正在努力让C语法突出显示为我的HTML应用程序工作。
我正在嵌入猎户座编辑器。目前只有JavaScript语法高亮显示有效,但我认为也应该可以获得C高亮显示,因为https://github.com/eclipse/orion/tree/master/editor/releases/latest/stylers的git存储库也为Java和C提供了“样式”。
这是我的设置代码:
<link rel="stylesheet" type="text/css" href="http://eclipse.org/orion/editor/releases/latest/built-editor.css"/>
<script src="http://eclipse.org/orion/editor/releases/latest/built-editor.js"></script>
<script>
if (window.addEventListener) {
window.addEventListener('load', function() {
require(["orion/editor/edit"], function(edit) {
edit({className: "editor"});
});
}, false);
}
</script>
<style>
pre.editor{
padding: 0px;
border: 1px solid lightgrey;
}
</style>
此标记代码成功创建了一个带有JavaScript突出显示的编辑框:
<pre class="editor" data-editor-lang="js">
// JavaScript
function() { }
</pre>
以下是C的代码无法正常工作(data-editor-lang="c"
属性是猜测,无法找到相关文档):
<pre class="editor" data-editor-lang="c">
// C/C++
int main() {
volatile float x = 12.f;
}
</pre>
这是Java版本(但如果我将orion/editor/releases/latest/
更改为orion/editor/releases/5.0/
,则可以使用):
<pre class="editor" data-editor-lang="java">
// Java
class X extends Y {}
</pre>
我在测试此HTML时收到以下错误消息:
Error: undefined missing orion/editor/stylers/c/syntax built-editor.js:297
Error: undefined missing orion/editor/stylers/text_x-java-source/syntax built-editor.js:297
答案 0 :(得分:0)
经过一些试验和错误后,当只使用Orion客户端时,我获得了javascript工作的语法高亮显示。相同的策略可能适合您:
requirejs.config({
baseUrl : '.',
paths: {
'orion/editor': 'lib/orion',
'jquery': 'bower_components/jquery/dist/jquery.min'
}
});
-
require(['orion/editor/built-editor', 'orion/editor/stylers/application_javascript/syntax'], function(edit, syntax) {
var deferred = new $.Deferred();
deferred.resolve(syntax);
edit({
className: "editor",
lang:'js',
grammarProvider: function(){
return deferred.promise();
}
});
});
另一种选择可能是为客户端使用built-codeEdit而不是build-editor。另见