Flutter代码编辑器插件monaco_editor的使用
Flutter代码编辑器插件monaco_editor的使用
Monaco Editor
这个版本仍然是v0,可能会有bug。
目前仅支持Web平台,此插件是围绕微软的 Monaco Editor 进行封装的,一个基于浏览器的代码编辑器。
特性
支持的功能
setText
getText
onTextChanged
支持的主题
vs
vs-dark
hc-light
hc-black
支持的语言
plaintext
javascript
json
typescript
html
css
scss
python
php
java
c
cpp
csharp
shell
powershell
dockerfile
markdown
xml
yaml
sql
go
ruby
swift
lua
rust
kotlin
perl
objectivec
r
fsharp
groovy
bat
coffeescript
handlebars
jade
pug
razor
scheme
twig
vb
vbnet
vue
yaml
dart
clojure
elm
haxe
ocaml
perl6
racket
reason
red
scheme
shell
tcl
verilog
vhdl
wollok
eiffel
erlang
fortran
julia
makefile
matlab
powershell
r
restructuredtext
sas
smalltalk
stata
twig
tsx
vbscript
xml
yaml
示例
import 'package:flutter/material.dart';
import 'package:monaco_editor/monaco_editor.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final controller1 = MonacoEditorController();
final controller2 = MonacoEditorController();
[@override](/user/override)
void initState() {
// 初始化控制器,设置语言和主题
controller1.initialize(
MonacoEditorOptions(
language: MonacoLanguage.json,
theme: MonacoTheme.vsDark,
),
);
controller2.initialize(
MonacoEditorOptions(
language: MonacoLanguage.json,
theme: MonacoTheme.vsDark,
),
);
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () async {
// 获取第一个编辑器的内容并打印
String text = await controller1.getText();
print(text);
},
child: const Icon(Icons.add),
),
appBar: AppBar(
title: const Text('Monaco Editor Example'),
),
body: Row(
children: [
// 第一个编辑器
Expanded(
child: MonacoEditorWidget(
controller: controller1,
),
),
// 第二个编辑器
Expanded(
child: MonacoEditorWidget(
controller: controller2,
),
),
],
),
),
);
}
}
更多关于Flutter代码编辑器插件monaco_editor的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复