使用AceEditor:如何解析Acute( ` ) 字符并获取代码结构?

Using AceEditor: How to parse Acute( ` ) character and get code structure?

我现在正在使用 React 开发一个网站,它包含 solidity 代码视图面板。 编辑器看起来像下面 link 中的那个。 https://ftmscan.com/address/0xce761d788df608bd21bdd59d6f4b54b2e27f25bb#contracts

我已经使用 AceEditor 实现了类似的,可以通过安装 react-ace、ace-builds 模块获得。

代码是这样的


import "./styles.css";
import React from "react";
import { render } from "react-dom";
import AceEditor from "react-ace";

import "ace-builds/src-noconflict/mode-java";
import "ace-builds/src-noconflict/theme-github";
import "ace-builds/src-noconflict/ext-language_tools";
import { code } from "./code";

function onChange(newValue) {
  console.log("change", newValue);
}

export default function App() {
  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      <h2>Start editing to see some magic happen!</h2>
      <AceEditor
        theme="github"
        onChange={onChange}
        name="UNIQUE_ID_OF_DIV"
        editorProps={{ $blockScrolling: true }}
        setOptions={{
          enableBasicAutocompletion: true,
          enableLiveAutocompletion: true,
          enableSnippets: true
        }}
        value={code}
        readOnly="true"
      />
    </div>
  );
}

我从 code.tsx 文件导入代码,当该代码包含锐音符时出现错误。

我的示例代码在 codesandbox 上,这里是 link。 https://codesandbox.io/s/dazzling-sun-0zj25?file=/src/index.js

我有 2 个问题。

  1. 如何解析里面有锐音符(`)的代码? 正如您从我的示例代码中看到的那样,解析代码被分配给 value props 并且应该被尖角字符包裹,我无法解决包裹内部包含尖角字符的代码。
  2. 如你所见ftmstan site 我在上面提到过,你可以在代码视图面板的右上角看到轮廓按钮,它显示了 solidity 代码的结构。 而且我无法理解如何获得像该站点那样的代码结构。

我们将不胜感激并提前致谢。

ace 网站有关于创建或导入新模式的说明https://ace.c9.io/#nav=higlighter. You can use that with the syntax from vscode extension https://github.com/juanfranblanco/vscode-solidity/blob/master/syntaxes/solidity.json