功能强大、特性丰富的代码编辑器组件,后端基于 Rust
在 Flutter 应用中带来接近 VS Code 的编辑体验

在 100 万+ 行代码中依然流畅编辑,测试设备为老旧低端 PC(奔腾双核,无独显)。
Note
code_forge 不支持 Flutter Web,因为核心功能依赖 dart:io。如需 Web 支持,请使用 code_forge_web。
CodeForge 是面向开发者的新一代代码编辑器组件。无论你在做 IDE、代码片段查看器,还是教学平台,CodeForge 都能提供强大能力。
| 功能 | CodeForge | 其他组件 |
|---|---|---|
| 语法高亮 | 180+ 语言 | ✅ |
| 代码折叠 | 智能检测 | 有限 |
| LSP 集成 | 完整支持 | ❌ |
| AI 补全 | 多模型 | ❌ |
| 语义高亮 | 实时 | ❌ |
| 诊断信息 | 行内错误 | ❌ |
| 撤销/重做 | 智能分组 | 基础 |
| 主题定制 | 全量可定制 | 有限 |
- 使用 Rope 数据结构处理大文本,性能更稳定。
- 使用 Flutter 底层
RenderBox和ParagraphBuilder渲染,而不是TextField。 - 内置 Language Server Protocol 客户端。
- 支持 AI 代码补全。
-
安装 rustup 并确保已加入
PATH。 -
在
pubspec.yaml中添加依赖:
dependencies:
code_forge: ^10.14.0- 在
main()中添加初始化:
void main() async {
await RustLib.init();
runApp(const MyApp());
}- 然后执行:
flutter pub getimport 'package:flutter/material.dart';
import 'package:code_forge/code_forge.dart';
import 'package:re_highlight/languages/python.dart';
import 'package:re_highlight/styles/atom-one-dark.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: CodeForge(
language: langPython,
editorTheme: atomOneDarkTheme,
),
),
);
}
}class _EditorState extends State<Editor> {
final _controller = CodeForgeController();
final _undoController = UndoRedoController();
@override
Widget build(BuildContext context) {
return CodeForge(
controller: _controller,
undoController: _undoController,
);
}
}更多高级能力(LSP 配置、代码动作、重命名、颜色选择器等)请参考英文文档: README.md
