Flutter代码编辑器插件monaco_editor的使用
Flutter代码编辑器插件monaco_editor的使用
Monaco Editor
这个版本仍然是v0,可能会有bug。
目前仅支持Web平台,此插件是围绕微软的 Monaco Editor 进行封装的,一个基于浏览器的代码编辑器。
特性
支持的功能
setTextgetTextonTextChanged
支持的主题
vsvs-darkhc-lighthc-black
支持的语言
plaintextjavascriptjsontypescripthtmlcssscsspythonphpjavaccppcsharpshellpowershelldockerfilemarkdownxmlyamlsqlgorubyswiftluarustkotlinperlobjectivecrfsharpgroovybatcoffeescripthandlebarsjadepugrazorschemetwigvbvbnetvueyamldartclojureelmhaxeocamlperl6racketreasonredschemeshelltclverilogvhdlwollokeiffelerlangfortranjuliamakefilematlabpowershellrrestructuredtextsassmalltalkstatatwigtsxvbscriptxmlyaml
示例
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 回复


