CodeMirror实现MySql关键字的变色和自动提示

最近开发需要,接触到了CodeMirror,觉得的确是个不错的东东。

这里把最常用的两个功能分享给大家。一个是关键字变色一个是自动提示


先看下最终的效果图。外观还是不错的。可以自己选择主题(codemirror-5.2/theme/ambiance.css)


点击这里下载CodeMirror-5.2


核心代码

<script type="text/javascript" src="js/jquery-1.6.4.source.js"></script>
<link rel="stylesheet" href="js/codemirror-5.2/theme/ambiance.css">
<link type="text/css" rel="stylesheet" href="js/codemirror-5.2/lib/codemirror.css" />
<link type="text/css" rel="stylesheet" href="js/codemirror-5.2/addon/hint/show-hint.css" />
<script type="text/javascript" src="js/codemirror-5.2/lib/codemirror.js"></script>
<script type="text/javascript" src="js/codemirror-5.2/mode/sql/sql.js"></script>
<script type="text/javascript" src="js/codemirror-5.2/addon/hint/show-hint.js"></script>
<script type="text/javascript" src="js/codemirror-5.2/addon/hint/sql-hint.js"></script>
	
<style>.CodeMirror {border: 1px solid black;}</style>
	
	
<body>
<h2>SQL编辑器</h2>
<form><textarea id="code" name="code"></textarea></form>
    <script>
      var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
        lineNumbers: true,
        extraKeys: {"Ctrl": "autocomplete"},//输入s然后ctrl就可以弹出选择项
        mode: {name: "text/x-mysql"},
        theme: "ambiance"//主题
      });
    </script>
</body>
</html>


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`CodeMirror` 和 `react-codemirror2` 是两个用于创建交互式代码编辑器的库,结合使用它们可以在 React 应用中实现强大的代码提示功能。以下是使用这两个库实现代码提示的一般步骤: 1. 安装依赖: - 首先,你需要安装 `codemirror` 和 `react-codemirror2`,可以通过 npm 或 yarn 进行安装: ``` npm install codemirror react-codemirror2 ``` 2. 引入组件: 在你的 React 组件中,引入 `CodeMirror` 和 `Editor` 组件: ```jsx import { Editor } from 'react-codemirror2'; import 'codemirror/mode/javascript/javascript'; import 'codemirror/addon/lint/lint'; import 'codemirror/addon/lint/javascript-lint'; ``` 3. 设置配置选项: 创建一个 CodeMirror 的配置对象,其中包含 `lint` 和 `autocompletion` 配置: ```jsx const CodeEditor = ({ value, onChange }) => { const options = { lineNumbers: true, mode: 'javascript', theme: 'abcdef', // 选择你喜欢的主题 lintWith: 'eslint', // 使用 ESLint 作为 lint 工具 completion: { hint: CodeMirror.hint.bracketedCompletion, // 自动补全功能 }, }; return ( <Editor value={value} options={options} onChange={onChange} spellCheck={true} // 如果需要启用拼写检查 /> ); }; ``` 4. 实现自动提示: - `completion` 配置中的 `hint` 属性指定了 CodeMirror 使用哪种类型的提示。`bracketedCompletion` 是一种常用的提示类型,它会在输入后显示可能的代码片段。 5. 使用和初始化: 在你的组件中初始化 `CodeEditor` 组件,并提供初始代码值和 onChange 回调,用于处理用户输入改变后的操作: ```jsx const [code, setCode] = useState(''); // 初始化代码 const handleCodeChange = (newCode) => { setCode(newCode); // 如果需要,你可以在这里处理自动补全结果或发送到服务器进行实时建议 }; return ( <CodeEditor value={code} onChange={handleCodeChange} /> ); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值