您现在的位置是:网站首页> 编程资料编程资料
Asp.Net Core 使用Monaco Editor 实现代码编辑器功能_实用技巧_
2023-05-24
203人已围观
简介 Asp.Net Core 使用Monaco Editor 实现代码编辑器功能_实用技巧_
在项目中经常有代码在线编辑的需求,比如修改基于Xml的配置文件,编辑Json格式的测试数据等。我们可以使用微软开源的在线代码编辑器Monaco Editor实现这些功能。Monaco Editor是著名的VSCode的前身,项目地址:https://microsoft.github.io/monaco-editor/。本文介绍在Asp.Net Core项目中使用Monaco Editor实现代码编辑器功能。
安装
可以使用npm下载moaco-editor:
npm install monaco-editor@0.31.1
我们需要的文件在node_modules/monaco-editor/min/vs目录中,将整个vs目录拷贝到Asp.Net Core Web项目的wwwroot/lib目录下:

在Program.cs中需要启动静态文件:
app.UseStaticFiles();
在布局页面中引入如下css和js:
基本的环境设置就完成了。
基本功能
现在可以在页面中实现编辑器的基本功能,在页面中增加一个div,作为编辑器容器:
然后增加编辑器的js代码:

设置
编辑器有多种设置,比如是否显示代码行、显示样式等等,设置完成后,可以使用updateOptions修改设置,示例代码如下:
var editor = monaco.editor.create(document.getElementById('container'), { value: "function sayHello(){\n console.write('Hello World');\n}", language: 'javascript', lineNumbers: 'on', roundedSelection: false, scrollBeyondLastLine: false, readOnly: false, theme: 'vs-dark' }); 
代码比较
monaco editor的一个强大的功能是文字比较功能,可以将两段文字进行比较:
效果如下:

自定义语言
monaco editor 支持常见的几乎所有编程语言,在编辑这些语言的代码时可以高亮显示关键字,同时也支持对自定义语言的扩展。其功能非常强大,同时配置起来也比较复杂,这里只举个简单的例子,说明如何使用。
这里使用的“语言”很简单,目的是记录中国象棋的棋谱,关键字只有代表“车马炮”等棋子的大写汉语拼音,运算符只有代表向前、向后和平行移动的“++”、“--”和“==”,还有就是注释。
使用自定义语言,首先要注册这个语言的id:
monaco.languages.register({ id: 'mylang' }); 然后设置语言的Token Provider:
monaco.languages.setMonarchTokensProvider('mylang', getlang());这样就可以在编辑器中使用这种自定义语言了,下面是完整的代码:
@page @model CustomLanguageModel @{ ViewData["Title"] = "自定义语言"; } @ViewData["Title"]
@section Scripts { }}效果如下:

本文的示例项目已经上传到github: https://github.com/zhenl/monacoEditorDotNet
到此这篇关于Asp.Net Core 使用Monaco Editor 实现代码编辑器的文章就介绍到这了,更多相关Asp.Net Core代码编辑器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关内容
- .NET微服务架构CI/CD自动打包镜像_实用技巧_
- .NET 6开发TodoList应用之实现数据塑形_实用技巧_
- .NET 6开发TodoList应用之实现查询排序_实用技巧_
- gojs一些实用的高级用法_实用技巧_
- .NET 6中间件Http Logging使用介绍_实用技巧_
- .NET 6开发TodoList应用之请求日志组件HttpLogging介绍_实用技巧_
- .NET 6开发TodoList应用之实现查询分页_实用技巧_
- .Net Core下使用Dapper的方法_自学过程_
- ORM框架之Dapper简介和性能测试_基础应用_
- .NetCore使用Swagger+API多版本控制的流程分析_实用技巧_
