線上程式碼編輯器選型
線上程式碼編輯器選型
一、CodeMirror https://github.com/codemirror/CodeMirror
-
簡介
CodeMirror 是一款“Online Source Editor”,基於Javascript,短小精悍,風格包括js, java, php, c++等等100多種語言。比較強大可以自行配置語言模式。能夠做到自動補全,程式碼摺疊,可配置鍵盤事件,vim, emacs, sublime text 風格、能完成查詢替換,括號匹配,分欄顯示,顯示行號,自行配置字型大小和風格,是許多大名鼎鼎的線上程式碼編輯器的基礎庫。
-
實踐
lib 下是放的是核心庫和核心 css,mode 下放的是各種支援語言的語法定義,theme 目錄下是支援的主題樣式。一般在開發中,新增 lib 下的引用和 mode 下的引用就夠了。
下面兩個是使用 Code Mirror 必須引入的:
<link rel="stylesheet" href="./codemirror-5.58.3/lib/codemirror.css"> <script src="./codemirror-5.58.3/lib/codemirror.js"></script>
接下來要引用的就是在 mode 目錄下編輯器中要編輯的語言對應的 js 檔案,這裡以 javascript 為例:
<!--程式碼高亮--> <script src="./codemirror-5.58.3/mode/javascript/javascript.js"></script>
引用的檔案用於支援對應語言的語法高亮。
不同的主題,只需按照如下引入即可:
<!--引入css檔案,用以支援主題--> <link rel="stylesheet" href="./codemirror-5.58.3/theme/dracula.css"/>
建立編輯器
使用textarea標籤作為容器<textarea id="demotext"></textarea>
在js中進行對之前引入的檔案進行配置配置
var editor = CodeMirror.fromTextArea(document.getElementById("demotext"), { lineNumbers: true, mode: "javascript", // 語言 theme: "dracula", //設定主題 //readOnly: true, //只讀 });
-
效果圖
-
總結
通過以上配置可以快速生成一個簡潔的線上編輯器,也可以通過引入其他功能對應的js檔案進行豐富。總言而之是個小巧、靈活的線上編輯器庫!
-
參考連結
二、Monaco Editor https://github.com/microsoft/monaco-editor
-
簡介
Monaco Editor是為VS Code提供支援的程式碼編輯器,執行在瀏覽器環境中。編輯器提供程式碼提示,智慧建議等功能。供開發人員遠端更方便的編寫程式碼。移動瀏覽器或移動Web框架不支援Monaco編輯器。簡單的理解就是VSCode中的程式碼編輯器和Monaco Editor使用的很多相同的核心模組,你可以將Monaco Editor用到自己的專案中,作為雲端編輯器的支援,支援IE 11,Edge,Chrome,Firefox,Safari和Opera!
-
實踐
為了編寫demo方便,我直接用的script直接引入的js檔案。
官方也提供了不同情況下的demo,非常全。github連結下面放一些核心程式碼,更詳細的配置請參見官網。
<!-- css檔案 --> <link rel="stylesheet" data-name="vs/editor/editor.main" href="./package/min/vs/editor/editor.main.css" />
<!-- js檔案 --> <script> var require = { paths: { vs: './package/min/vs' } }; </script> <script src="./package/min/vs/loader.js"></script> <script src="./package/min/vs/editor/editor.main.nls.js"></script> <script src="./package/min/vs/editor/editor.main.js"></script> <div id="container" style="width: 800px; height: 600px; border: 1px solid grey"></div> <script> var editor = monaco.editor.create(document.getElementById('container'), { value: ['function x() {', '\tconsole.log("Hello world!");', '}'].join('\n'), language: 'javascript', theme: "vs-dark" // 主題 }); </script>
-
效果圖
-
總結
由圖可見,功能十分齊全,基本上是vscode 線上版。
相關文章
- 10個線上HTML程式碼編輯器HTML
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- 前端程式碼線上編輯器:codepen、codesandbox前端
- vue2+editor 編輯器選型Vue
- HTML線上編輯器HTML
- 巧用 Swagger 線上編輯器生成前端介面程式碼Swagger前端
- 谷歌開發者工具線上編輯HTML程式碼谷歌HTML
- 僅一行程式碼,打造一個線上編輯器行程
- Html 文件線上編輯器HTML
- 實時程式碼編輯器
- Ace editor 線上網頁版的vscode!程式碼編輯器網頁VSCode
- 線上富文字編輯器初探
- 線上HTML編輯器推薦HTML
- 網上搜集的線上編輯執行程式碼行程
- 程式碼編輯器:sublime text for MacMac
- Sublime Text 4 for Mac(程式碼編輯器)Mac
- Sublime Text程式碼編輯器Mac/WindowsMacWindows
- 10個程式設計師最喜歡的HTML和CSS等線上程式碼編輯器程式設計師HTMLCSS
- 10個程式設計師最喜歡的 HTML和CSS 等線上程式碼編輯器程式設計師HTMLCSS
- PyCharm CE for Mac(IDE程式碼編輯器)PyCharmMacIDE
- CodeRunner for Mac(多功能程式碼編輯器)Mac
- Scripted - VMWare出品的JavaScript程式碼編輯器JavaScript
- React專案接入程式碼編輯器aceEditorReact
- 基於GPT3的程式碼編輯器Cursor試用-你的智慧程式碼編輯助手GPT
- EditRocket (原始碼編輯器)原始碼
- web 應用線上編輯器 glitch 簡介Web
- Markdown線上、離線編輯器與使用教程
- 開源線上視覺化流程編輯器視覺化
- 快速開發,7個 Bootstrap 線上編輯器boot
- 線上編輯器KindEditor看樣子不錯
- 程式碼編輯器Sublime_Text3的使用
- 五款頂級Python程式碼編輯器!Python
- 低程式碼 系列 —— 視覺化編輯器3視覺化
- 程式碼編輯器:sublime text for Mac 註冊版Mac
- 配置UltraEdit為Oracle PL/SQL程式碼編輯器OracleSQL
- 剛才把kindeditor線上編輯器做成視覺化UBB編輯模式了視覺化模式
- 分享一款可編輯本地電腦檔案的線上編輯器
- Laravel-admin 中引入 Ace 程式碼編輯器Laravel