Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev3.0.1

rich_text_controller

Um controlador de edição de texto estendido que suporta diferentes estilos embutidos para padrões regex personalizados.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
7,9 mil
Curtidas
104
Pontos Pub
160

Instalar pacote

flutter pub add rich_text_controller

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

rich_text_controller é um pacote Flutter/Dart que estende o controlador de edição de texto padrão para permitir formatação embutida no texto com base em expressões regulares personalizadas. Ele permite que desenvolvedores apliquem estilos diferentes — como cores, fontes ou decorações — a padrões específicos dentro de um campo de texto, como hashtags, menções ou links. Ideal para entradas de texto rico em aplicativos de mensagens, ferramentas de anotações ou interfaces de redes sociais, ele melhora a experiência do usuário ao destacar visualmente conteúdo estruturado. O pacote suporta todas as principais plataformas e se integra perfeitamente aos fluxos existentes de TextEditingController.

Casos de uso

  • Aplicativos de mensagens com menções estilizadas
  • Aplicativos de anotações com destaque de sintaxe
  • Campos de texto de mídia social com estilo de hashtag
  • Editores de texto rico personalizados
  • edição colaborativa em tempo real

Principais recursos

  • Estilo embutido por meio de padrões regex
  • Suporte para vários tipos de estilo
  • Integração contínua com TextEditingController
  • Compatibilidade multiplataforma
  • Visualização ao vivo de texto estilizado
  • correspondência de padrão configurável

Indicado para

  • Desenvolvedores construindo campos de entrada de texto rico
  • Aplicativos que exigem formatação de texto dinâmica
  • Projetos com conteúdo gerado pelo usuário
  • Equipes que usam marcação de conteúdo baseada em expressões regulares
  • UIs que precisam de distinção visual de padrões de texto

Considerações

  • Requer um design cuidadoso de expressão regular para evitar problemas de desempenho
  • Pode aumentar o uso de memória com padrões complexos
  • A lógica de estilização deve ser testada em várias plataformas
  • Não adequado para edição em larga escala de documentos
  • Modelos internos limitados para casos de uso comuns

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

rich_text_controller

Pub Version License Pub Points

rich_text_controller is an extended text editing controller for Flutter that supports applying different inline styles based on custom regex patterns. This package simplifies text styling and interaction in Flutter applications, making it easy to create feature-rich text inputs.


Table of Contents

  1. Demo
  2. Features
  3. Installation
  4. Usage
  5. Contributing
  6. License

Demo

Demo GIF

Features

  • Custom Regex Styling: Apply styles dynamically to text patterns.
  • Interactive Callbacks: Define actions for user interactions with matched text.
  • Dynamic Updates: Modify regex patterns on the fly without recreating the controller.
  • IME Composition Support: Smooth handling for languages like Japanese and Chinese.
  • Performance Optimizations: Cached regex for better performance.
  • RichWrapper Widget: A widget for seamless integration with the controller.
  • Fine-grained Configuration: Control deletion behavior, styles, and tap actions for specific matches.

Installation

  1. Add the package to your pubspec.yaml file:
dependencies:
  rich_text_controller: ^[latest_version]
  1. Run the following command to install the package:
flutter pub get
  1. Import the package into your Dart file:
import 'package:rich_text_controller/rich_text_controller.dart';

Usage

Here's a quick example of how to use RichTextController to style specific patterns in a TextField:

Example
import 'package:flutter/material.dart';
import 'package:rich_text_controller/rich_text_controller.dart';

defaultTextStyle(BuildContext context) => TextStyle(color: Colors.black);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('RichTextController Example')),
        body: Center(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: TextField(
              controller: RichTextController(
                text: '',
                onMatch: (match, target) {
                  print('Match found: \$match');
                },
                targetMatches: [
                  MatchTargetItem(
                    textStyle: TextStyle(color: Colors.blue, fontWeight: FontWeight.bold),
                    regex: RegExp(r'#[a-zA-Z0-9_]+'),
                  ),
                  MatchTargetItem(
                    textStyle: TextStyle(color: Colors.green),
                    regex: RegExp(r'@[a-zA-Z0-9_]+'),
                  ),
                ],
              ),
              decoration: InputDecoration(border: OutlineInputBorder()),
            ),
          ),
        ),
      ),
    );
  }
}

Contributing

Contributions are always welcome! Here’s how you can help:

  1. Report bugs or request features via GitHub Issues.
  2. Submit pull requests with well-documented code and examples.
  3. Share your thoughts and ideas to improve the package.

License

Licensed under the MIT License. You are free to use, modify, and distribute this package. See the LICENSE.md file for details.

Categorias

Repositório-fonte

Projetos que usam este pacote