如何为语法高亮定义和加载自定义 ace 模式

How to define and load custom ace mode for syntax highlighting

我正在尝试在 Ace 中突出显示我自己的语法。到目前为止我这样做了:

  1. 克隆的 ace 回购 git clone https://github.com/ajaxorg/ace.git
  2. 用过 Iro to design some syntax. Later I pasted the code generated by Iro into mode creator,它似乎工作得很好。
  3. 我复制了Iro生成的代码放在了ace/lib/ace/mode/mealy.js
  4. 运行 npm installace 目录中
  5. 运行 node ./Makefile.dryice.jsace 目录中。我ac成功看到ace/build/src/mode-mealy.js.
  6. 我创建了这个嵌入代码
    <!doctype html>
    <html lang="en-us">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>SyntaxHighlighter</title>
        <style type="text/css" media="screen">
        #editor { 
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
        }
        </style>
      </head>
      <body>
        <div id="editor"></div>
        <script type="text/javascript" src="../ace/build/src/ace.js"></script>
        <script>
            var editor = ace.edit("editor");
            editor.setTheme("ace/theme/monokai");
            
            editor.session.setMode("ace/mode/mealy");
        </script>
      </body>
    </html>

不幸的是,语法突出显示根本不起作用,但如果我使用 editor.session.setMode("ace/mode/javascript"),那么一切正常。我什至将我的语言添加到 lib/ace/ext/modelist.js.

这种方法有几处错误,但非常接近。最好按照本指南获取完整详细的说明 https://aleksander-mendoza.github.io/syntax_highlighter.html