react Ace 编辑器,快捷键、代码提示

2019-06-19  本文已影响0人  ai_cuicui

react使用ace:

1.安装命令
npm install react-ace
2.导入

在使用ace 的组件中导入相关配置信息

import AceEditor from 'react-ace';
//language_tools语言工具,(这个好像是检测语法,有点忘了,想不起来从哪里找到的)
import 'brace/ext/language_tools';
//searchbox过滤框,快捷键ctrl+F
import 'brace/ext/searchbox';
//一下import的是编辑器支持的语法,我的项目都用到了,所以全部导入
import 'brace/mode/javascript';//
import 'brace/mode/html';//
import 'brace/mode/java';//
import 'brace/mode/python';//
import 'brace/mode/lua';//
import 'brace/mode/xml';//
import 'brace/mode/ruby';//
import 'brace/mode/sass';
import 'brace/mode/markdown';//
import 'brace/mode/mysql';
import 'brace/mode/json';//
import 'brace/mode/css';//
import 'brace/mode/typescript';
//以下import的是风格,还有好多种,可以根据自己需求导入
// github、tomorrow、kuioir、twilight、xcode、textmeta、terminal、solarized-light、solarized-dark
import 'brace/theme/monokai';//
3.在render使用
<AceEditor
    mode={this.state.mode}
    readOnly={this.state.readOnly}
    theme="monokai"
    name="app_code_editor"
    onChange={this.onChange}
    fontSize={fontSize}
    showPrintMargin
    showGutter
    highlightActiveLine  //突出活动线
    enableSnippets  //启用代码段
    value={this.state.editorContent}
    style={{width: '100%', height: this.state.deskHeight, minHeight: 600}}
    commands={[{    //命令是键绑定数组。
           name: 'saveFile', //键绑定的名称。
           bindKey: {win: 'Ctrl-S', mac: 'Command-S'}, //用于命令的组合键。
           exec: ()=>{
                  if (!this.state.changed) {
                          message.warning('文件未改动')
                  } else {
                          //保存文件操作
                  }
           }   //重新绑定命令的名称
    }]}
    setOptions={{
           enableBasicAutocompletion: false,   //启用基本自动完成功能
           enableLiveAutocompletion: true,   //启用实时自动完成功能 (比如:智能代码提示)
           enableSnippets: false,  //启用代码段
           showLineNumbers: true,
           tabSize: 4
     }}
 />
4.快捷键绑定

ctrl+F ctrl+H

import 'brace/ext/searchbox';

ctrl+S
添加commands属性,看 3.在render中使用

commands={[{    //命令是键绑定数组。
           name: 'saveFile', //键绑定的名称。
           bindKey: {win: 'Ctrl-S', mac: 'Command-S'}, //用于命令的组合键。
           exec: ()=>{
                  if (!this.state.changed) {
                          message.warning('文件未改动')
                  } else {
                          //保存文件操作
                  }
           }   //重新绑定命令的名称
    }]}
如果有为您解决问题,请您点颗小心心~
上一篇下一篇

猜你喜欢

热点阅读