CodeMirror 实现 JavaScript、 MySql 关键字的变色和自动实时提示 autocomplete
引入静态资源:
<link rel="stylesheet" href="https://codemirror.net/lib/codemirror.css"> <#--https://codemirror.net/theme/--> <link rel="stylesheet" href="https://codemirror.net/theme/base16-light.css"> <script src="https://codemirror.net/lib/codemirror.js"></script> <script src="https://codemirror.net/mode/javascript/javascript.js"></script> <script src="https://codemirror.net/addon/hint/show-hint.js"></script> <script src="https://codemirror.net/addon/hint/javascript-hint.js"></script> <link rel="stylesheet" href="https://codemirror.net/addon/hint/show-hint.css"> <script src="https://codemirror.net/addon/selection/active-line.js"></script> <script src="https://codemirror.net/addon/edit/matchbrackets.js"></script> <link rel="stylesheet" href="https://codemirror.net/addon/fold/foldgutter.css"/> <script src="https://codemirror.net/addon/fold/foldcode.js"></script> <script src="https://codemirror.net/addon/fold/brace-fold.js"></script> <script src="https://codemirror.net/addon/fold/brace-fold.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jshint/r07/jshint.js"></script> <script src="https://codemirror.net/addon/lint/lint.js"></script> <script src="https://codemirror.net/addon/lint/javascript-lint.js"></script> <link rel="stylesheet" href="https://codemirror.net/addon/lint/lint.css">
js 代码实例:
/** * 用来实时对用户的输入进行提示 */ function showCodeHint(editor) { editor.on("cursorActivity", function () { //获取用户当前的编辑器中的编写的代码 var words = editor.getValue() + ""; //利用正则取出用户输入的所有的英文的字母 words = words.replace(/[a-z]+[\-|\']+[a-z]+/ig, '').match(/([a-z]+)/ig); //将获取到的用户的单词传入CodeMirror,并在javascript-hint中做匹配 CodeMirror.ukeys = words; //调用显示提示 editor.showHint(); }); } $(function () { appendNode(); // 初始化首节点 renderFirstCodeArea(); $('#add-node-btn').unbind().bind('click', () => { appendNode(); renderLastCodeArea(); }); function appendNode() { let firstNodeHtml = getNodeHtml(); $('#node-list').append(firstNodeHtml); } function renderFirstCodeArea() { let inputArray = $('[name="input"]'); let inputEditor = CodeMirror.fromTextArea(inputArray[0], CodeMirrorOptions); showCodeHint(inputEditor); let inputBody = inputEditor.doc.getValue(); let outputArray = $('[name="output"]'); let outputEditor = CodeMirror.fromTextArea(outputArray[0], CodeMirrorOptions); showCodeHint(outputEditor); let outputBody = outputEditor.doc.getValue(); } function renderLastCodeArea() { let inputArray = $('[name="input"]'); let inputArrayLength = inputArray.length; let inputEditor = CodeMirror.fromTextArea(inputArray[inputArrayLength - 1], CodeMirrorOptions); showCodeHint(inputEditor); let inputBody = inputEditor.doc.getValue(); let outputArray = $('[name="output"]'); let outputArrayLength = outputArray.length; let editor = CodeMirror.fromTextArea(outputArray[outputArrayLength - 1], CodeMirrorOptions); showCodeHint(editor); let outputBody = editor.doc.getValue(); } function getNodeHtml() { return `<div class="node"> <form class="form"> <div class="form-group row"> <label class="col-sm-2 col-form-label">节点名称</label> <div class="col-sm-10"> <input name="name" type="text" class="form-control" placeholder="节点名称"> </div> </div> <div class="form-group row"> <label class="col-sm-2">输入脚本</label> <div class="col-sm-10"> <textarea name="input" rows="10" class="form-control"></textarea> </div> </div> <div class="form-group row"> <label class="col-sm-2">期望输出脚本</label> <div class="col-sm-10"> <textarea name="output" class="form-control"></textarea> </div> </div> <div class="form-group row"> <label class="col-sm-2">期望输出值</label> <div class="col-sm-10"> <input name="actualOutput" class="form-control"> </div> </div> <div class="form-group row"> <label class="col-sm-2">断言算子</label> <div class="col-sm-10"> <select name="operator" class="form-control"> <option value="equals" selected>EQ(equals)</option> <option value="contains">CNT(contains)</option> <option value="startWith">STW(startWith)</option> <option value="endWith">EDW(endWith)</option> </select> </div> </div> <div class="form-group row"> <label class="col-sm-2 col-form-label"></label> <div class="col-sm-10"> <button class="btn-sm btn-outline-primary">保存</button> </div> </div> </form> </div>`; } });
参考资料:
https://codemirror.net/doc/manual.html#config
CodeMirror实现MySql关键字的变色和自动提示:
https://blog.csdn.net/qq1142003960/article/details/45651097
Javascript codemirror 高级应用:
https://blog.csdn.net/kingrome2017/article/details/81626084
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
java.lang.Integer源码精读(二)
JDK源码精读汇总帖 getInteger() 然后比较少用的方法getInteger,这个方法是用来返回系统属性(String nm)的整数值的,很容易理解。 public static Integer getInteger(String nm) { return getInteger(nm, null); } public static Integer getInteger(String nm, int val) { Integer result = getInteger(nm, null); return (result == null) ? Integer.valueOf(val) : result; } public static Integer getInteger(String nm, Integer val) { String v = null; try { v = System.getProperty(nm); } catch (IllegalArgumentException e) { } catch (NullPointerException e) { } if ...
- 下一篇
Python | 初识爬虫框架Scrapy
一、前言 今天给大家分享的是,Python里的爬虫框架Scrapy学习,包含python虚拟环境的搭建、虚拟环境的使用、Scrapy安装方法详解、Scrapy基本使用、Scrapy项目目录及内容基本介绍,let's go! 二、Python爬虫框架Scrapy简介 推荐查看Scrapy中文帮助文档: 1#维基百科看Scrapy 2''' 3Scrapy(SKRAY-pee)是一个免费和开源网络爬行框架Python编写的。最初设计用于Web抓取,它还可 4以用于使用API或作为通用Web爬网程序提取数据。它目前由网络抓取开发和服务公司ScrapinghubLtd.维护 5。 6Scrapy项目体系结构是围绕“Spider”构建的,它们是自包含的爬虫,可以获得一组指令。遵循其他框架的精 7神,不重复自己的框架,例如Django,
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16