• 【React踩坑记五】React项目中引入并使用react-ace代码编辑插件(自定义列表提示)


    最近有一个引入sql编辑器插件的需求,要求代码高亮显示,代码智能提示,以及支持自定义代码提示列表等功能。中途在自定义代码提示列表中由于没有相关demo,所以踩了一些坑,遂将其整理如下,以便日后查看。

    1.安装

    yarn add react-ace //或 npm install react-ace
    

    2.在项目中引入

    import AceEditor from 'react-ace';
    

    3.在组件中使用

    <AceEditor
      ref="editor"
      mode="mysql"
      theme="xcode"
      onChange={this.onChange.bind(this)}
      name="UNIQUE_ID_OF_DIV"
      editorProps={{ $blockScrolling: true }}
      enableBasicAutocompletion={true}
      enableLiveAutocompletion={true}
      enableSnippets={true}
      style={{ width: "100%", height: "100%", fontSize: "18px" }}
      onLoad={this.complete.bind(this)}
    />
    

    4.API

    • mode:代码语言,可选类型如下
      代码语言类型
    • theme:主题,可选类型如下
      主题类型
    • enableBasicAutocompletion 普通自动完成,可选类型(true/false)
    • enableLiveAutocompletion 实时自动完成,可选类型(true/false)
    • enableSnippets 代码自动补全,可选类型(true/false)
    • onLoad:加载完成后执行的函数,第一个参数编辑器的实例

    这里主要说一下自定义代码提示列表,实现的功能示例如下
    在这里插入图片描述
    1.首先定义自定义提示列表,如下

    const completers = [
      {
        name: 'name',
        value: 'one',
        score: 100,
        meta: '手动添加1'
      },
      {
        name: 'name',
        value: 'two',
        score: 100,
        meta: '手动添加2'
      },
      {
        name: 'name',
        value: 'three',
        score: 100,
        meta: '手动添加3'
      }
    ];
    

    2.接着在onLoad函数里执行如下方法即可

    complete(editor) {
        //向编辑器中添加自动补全列表
        editor.completers.push({
          getCompletions: function (callback) {
            callback(null, completers);
          }
        });
      }
    

    以上。

    这里有324.57GB的修仙资料。嘿嘿嘿你懂得。/手动狗头

    前端入坑全套教学视频
    那么问题来了,如果你也想入坑前端或者学习更多技术,广交天下朋友(基友),认识更多有趣的灵魂的话,欢迎加入前端交流群鸭~
    扫码加群哦
    扫二维码加为好友就完事了!安排~

  • 相关阅读:
    Javascript之in操作符的用法
    auguements实参对象的数组化
    jQuery多库共存问题解决方法
    JS框架设计之命名空间设计一种子模块
    WebStorm 快键键
    Sington单例模式(创建型模式)
    Asp.Net Cache缓存技术学习
    跨域
    webuploader跨域上传
    BuiltWith
  • 原文地址:https://www.cnblogs.com/twodog/p/11986151.html
Copyright © 2020-2023  润新知