Skip to content

Latest commit

 

History

History
146 lines (113 loc) · 4.44 KB

File metadata and controls

146 lines (113 loc) · 4.44 KB

Idioma: English | 简体中文 | Español

CodeForge

Un widget de editor de codigo potente y completo, con backend en Rust

Lleva una experiencia de edicion tipo VS Code a tus apps Flutter

Pub Version License GitHub Stars Platform


CodeForge Demo
Edicion fluida en archivos de mas de 1M lineas, probado en un PC antiguo de bajos recursos.

CodeForge Demo
Resaltado inteligente y diferido con LSP en archivos de 100k+ lineas

Demo de funciones: CodeForge Features Showcase

Note

code_forge no es compatible con Flutter web porque depende de dart:io para funciones principales. Para web, usa code_forge_web.

Por que CodeForge?

CodeForge es un widget de editor de codigo de nueva generacion para desarrolladores exigentes. Ya sea que construyas un IDE, un visor de snippets o una plataforma educativa, CodeForge ofrece herramientas avanzadas.

Funcion CodeForge Otros
Resaltado de sintaxis 180+ lenguajes
Plegado de codigo Deteccion inteligente Limitado
Integracion LSP Soporte completo
Autocompletado con IA Multi-modelo
Tokens semanticos En tiempo real
Diagnosticos Errores inline
Deshacer/Rehacer Agrupacion inteligente Basico
Temas Totalmente personalizable Limitado

Que hace diferente a CodeForge

  • Usa estructura de datos rope para manejar texto grande con mejor rendimiento.
  • Renderiza con RenderBox y ParagraphBuilder en lugar de TextField.
  • Incluye cliente integrado de Language Server Protocol.
  • Soporta autocompletado de codigo con IA.

Instalacion

  1. Instala rustup y asegurate de que este en PATH.

  2. Agrega CodeForge a pubspec.yaml:

dependencies:
  code_forge: ^10.6.0
  1. Agrega la inicializacion en main():
void main() async {
  await RustLib.init();
  runApp(const MyApp());
}
  1. Luego ejecuta:
flutter pub get

Inicio rapido

import '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,
        ),
      ),
    );
  }
}

Ejemplo con controlador

class _EditorState extends State<Editor> {
  final _controller = CodeForgeController();
  final _undoController = UndoRedoController();

  @override
  Widget build(BuildContext context) {
    return CodeForge(
      controller: _controller,
      undoController: _undoController,
    );
  }
}

Para detalles avanzados (configuracion LSP, acciones de codigo, renombrado, selector de color y mas), consulta la documentacion en ingles: README.md