21 repositorios
APIs for programmatically manipulating the cursor position and selection range within a text editor.
Distinct from Pane Cursor Controllers: Distinct from system cursor or terminal cursors; focuses on the text selection API of a rich text editor.
Explore 21 awesome GitHub repositories matching user interface & experience · Text Selection Control. Refine with filters or upvote what's useful.
CodeMirror 5 is a browser-based code editor and extensible UI component. It functions as a syntax highlighting engine and a programmable text surface, providing a professional coding experience embedded within web pages. The project is distinguished by its ability to act as a collaborative text editor, synchronizing document changes across multiple users in real time. It also includes a dedicated Vim emulation layer that implements modal keyboard interactions, motions, and operators. The system covers broad capability areas including language support for autocompletion and error analysis, co
Allows defining text ranges as read-only or atomic to control user interaction.
Trix is a rich text editor and WYSIWYG text component designed for composing and formatting documents with inline styling and block elements. It functions as an HTML content editor that manages and sanitizes input to ensure a secure and consistent document structure, while serving as a document state manager that tracks edit history and persists serialized state. The editor integrates directly with standard HTML forms, converting rich text into data for submission. It features a configurable sanitization engine that cleanses input HTML to remove unsupported tags and mitigate security risks.
Provides programmatic control to set the start and end positions of the user cursor and selection range.
xi-editor is a high-performance text editor core written in Rust. It employs a client-server architecture that separates the backend editor logic from the user interface, allowing diverse frontends to communicate with the core via a standardized protocol. The project is distinguished by its use of rope-based text buffers for efficient manipulation of large documents and a collaborative engine powered by conflict-free replicated data types to synchronize concurrent edits. It further features an extensible plugin system that integrates external binaries and third-party tools through JSON-based
Manages cursor movement and complex selection ranges across point, word, or line granularity.
This project is a comprehensive collection of web development reference guides and technical cheat sheets. It provides a curated set of markdown-based documentation designed to help developers quickly locate syntax patterns and API examples for common web technologies and programming languages. The repository serves as a specialized reference library covering several distinct technical domains. It includes extensive guides for CSS, focusing on selectors, Flexbox, Grid, and responsive layout properties, as well as a DevOps command reference for Docker, Kubernetes, AWS, Ansible, and general she
Offers technical references for programmatically manipulating cursor positions and selection ranges within a text editor.
Kakoune is a scriptable, modal text editor for the terminal that employs a client-server architecture. This model allows multiple terminal windows to connect to a single editing session, providing a programmable environment for managing source code and text. The editor is distinguished by its selection-first logic, where a text region must be predefined before a command is applied. It leverages regular expressions to manage multiple cursors and perform bulk edits across complex text patterns, and it integrates deeply with the shell by piping selections through external programs and filters.
The editor finds occurrences of text via regex to create or jump between selections.
This project is a Python terminal user interface library and toolkit designed for building interactive command-line applications. It provides a terminal input manager and a widget toolkit for rendering dashboards, menus, and editors within a terminal emulator. The library enables the creation of full-screen terminal interfaces and interactive shells. It distinguishes itself with advanced input handling, including lexer-based syntax highlighting for visual feedback on code structure and support for industry-standard keyboard navigation modes such as Emacs and Vi. The capability surface covers
Provides capabilities for highlighting and selecting text blocks for copying and pasting.
This repository contains the HTML specification, which defines the core standards for web page structuring, content organization, and document rendering. It establishes the fundamental algorithms for state-machine-based tokenization, tree construction for the document object model, and origin-based security isolation. The specification provides a framework for defining custom elements with independent lifecycles and registries. It also details the requirements for cross-document communication, session history management, and the synchronization of interface properties with content attributes.
Controls the start, end, and direction of text selection and programmatic range replacement.
This is a Vim plugin that adds simultaneous multi-selection and parallel editing capabilities to the editor. It functions as a multi-cursor tool and regex-based batch editor, allowing users to perform the same editing action across multiple locations in a buffer at once. The extension enables the placement of virtual cursors across a document using regular expressions or by identifying all occurrences of a word. It also allows for the generation of cursors on every line within a visual selection to facilitate multi-line block editing. The tool supports synchronized character insertion and pa
Provides regular expression-based selection to identify and spawn virtual cursors at all matching text occurrences.
CodeMirror is a browser-based code editor framework and modular extension system used to embed full-featured text editors into web pages. It functions as a syntax tree parsing engine and a language server protocol client, enabling structural language analysis and deep integration with external programming language services. The project is distinguished by its modular architecture, which uses a system of extensions and compartments for dynamic reconfiguration at runtime. It supports real-time collaborative editing and state synchronization through an operational transformation framework, allow
Supports simultaneous editing across multiple non-contiguous text selections using multiple cursors.
Tabulator is an interactive data table library and virtual DOM data grid used to create high-performance tables from JSON or arrays. It functions as a hierarchical data viewer and a spreadsheet interface component, capable of rendering thousands of records efficiently through viewport-based virtualization and progressive loading. The library distinguishes itself by providing a full spreadsheet interface mode with multi-sheet management, cell range selection, and bulk copy-paste capabilities. It supports complex data architectures, including nested data field mapping, expandable tree structure
Evaluates custom conditions to determine which specific rows are permitted to be selected.
FlowLayout es un widget de vista personalizado para Android diseñado para ajustar elementos secundarios a través de múltiples líneas. Funciona como un diseño basado en adaptador que rellena y actualiza contenido fluido desde una fuente de datos, específicamente para mostrar colecciones de etiquetas o chips. El componente incluye un sistema de selección de etiquetas que admite modos de selección única o múltiple con límites configurables. Gestiona las interacciones del usuario a través del manejo de clics en etiquetas e incluye un gestor de estado para persistir los índices de selección a través de la reconstrucción de la actividad y las rotaciones de pantalla. La librería proporciona capacidades para el llenado dinámico de datos y la medición automática del diseño para asegurar que los elementos se ajusten correctamente según el espacio horizontal disponible en la pantalla.
Saves and restores the current selection of items during activity reconstruction to prevent data loss.
Codehike es un framework de documentación basado en React y una herramienta interactiva para recorridos de código. Funciona como un orquestador de contenido markdown que transforma markdown decorado en datos estructurados y componentes de React, sirviendo como capa de visualización para resaltar rangos de código, diffs y errores de compilación. El proyecto destaca por su capacidad para crear experiencias de "scrollycoding" y tutoriales técnicos paso a paso. Cuenta con animaciones a nivel de token que demuestran visualmente cómo evoluciona la lógica entre versiones de código y proporciona un sistema para sincronizar el estado de la UI con la posición del scroll del navegador. El framework cubre una amplia gama de capacidades de visualización, incluyendo la creación de presentaciones de código, diseños de spotlight y bloques de código con pestañas. Admite anotaciones detalladas mediante tooltips, callouts y notas al pie, así como utilidades funcionales como selectores de lenguaje, transpilación de código e integración de datos de compiladores en tiempo real. El sistema utiliza validación basada en esquemas para garantizar la seguridad de tipos y la consistencia de los datos estructurados extraídos de archivos markdown.
Uses regular expressions to identify and select specific text patterns within code blocks for styling and annotation.
CadQuery es una librería de modelado 3D programático y framework de CAD paramétrico que permite la generación de sólidos geométricos complejos y ensamblajes utilizando una API fluida en Python. Funciona como un motor de geometría B-Rep, permitiendo la construcción de modelos mediante código en lugar de una interfaz gráfica de usuario. El proyecto está construido sobre el kernel Open CASCADE Technology y utiliza una API de encadenamiento de métodos para vincular comandos geométricos en secuencia. Se distingue por un sistema de coordenadas basado en planos de trabajo y un potente sistema de selección que utiliza filtrado topológico y espacial para apuntar a caras, aristas o vértices específicos para las operaciones. La librería cubre una gama integral de capacidades, incluyendo bocetos paramétricos 2D, generación de sólidos 3D mediante extrusión y lofting, y gestión jerárquica de ensamblajes con restricciones geométricas. También proporciona herramientas para el refinamiento de geometría, como redondeos (fillets) y vaciados (shelling), y admite la importación y exportación de formatos estándar de la industria, incluyendo STEP y DXF. El framework incluye un motor de renderizado integrado para la visualización e inspección interactiva del modelo durante el proceso de scripting.
Groups multiple geometric filters using logical operators to refine the selection of specific model elements.
Squire es un editor de texto enriquecido basado en DOM y editor de contenido WYSIWYG que trata el HTML crudo como la fuente de verdad. Funciona como un sistema para manipular el modelo de objetos del documento directamente para proporcionar una interfaz visual para editar contenido web complejo. El proyecto se centra en la edición de HTML arbitrario, permitiendo la modificación de cualquier contenido HTML sin perder el formato original. Incluye herramientas para la normalización y sanitización de contenido HTML para asegurar que la entrada cruda se limpie y estructure de forma consistente antes de ser renderizada como nodos editables. La superficie de capacidades del editor cubre formato en línea, gestión de elementos de bloque y la inserción de fragmentos multimedia. También proporciona gestión de estado para rastrear posiciones del cursor y mantener un historial de deshacer y rehacer basado en snapshots.
Manages editor focus and moves the cursor to document boundaries using the browser selection range.
gluestack-ui is a cross-platform React component library built with Tailwind CSS. It provides over 30 pre-built, accessible components that can be installed by copying their source files directly into a project, giving developers full control over customization without external runtime dependencies. Every component implements WAI-ARIA patterns, keyboard navigation, and screen reader support out of the box. A key differentiator is the copy-paste architecture: rather than a traditional package dependency, component source code is placed in the project, allowing direct editing and eliminating ve
Retains the user's selected option when a bottom sheet is closed by dragging down or tapping the backdrop.
vim-visual-multi es un plugin de Vim y Neovim que proporciona edición de texto con múltiples cursores. Funciona como un editor de texto de múltiples cursores y orquestador de macros, permitiendo inserciones, eliminaciones y reemplazos paralelos a través de diversas ocurrencias de texto. El plugin incluye una herramienta de selección de texto por regex utilizada para generar múltiples cursores basados en patrones de expresiones regulares. Esto permite la identificación de palabras o fragmentos coincidentes para realizar modificaciones por lotes en un archivo. El sistema cubre varias áreas de capacidad, incluyendo la alineación vertical y la sincronización de cursores a una columna común. También proporciona automatización para la ejecución de comandos por lotes, permitiendo que las macros se ejecuten en todas las posiciones activas del cursor. Las herramientas de gestión de selección permiten añadir, eliminar o saltar ocurrencias específicas para refinar el conjunto de cursores activos.
Simulates multiple active editing points by tracking coordinates outside the native editor state.
Cherry Markdown es un editor de Markdown basado en web y motor de análisis que convierte texto de marcado en HTML saneado con un panel de vista previa sincronizado en tiempo real. Funciona como una interfaz de texto enriquecido y herramienta WYSIWYG, proporcionando un sistema para transformar cadenas de marcado en documentos HTML o formatos portátiles. El proyecto se distingue por un renderizado de alto rendimiento y un modelo de extensibilidad flexible. Utiliza diffing de DOM virtual y renderizado parcial para mantener la capacidad de respuesta en documentos grandes, y permite la creación de reglas de análisis personalizadas y componentes HTML especializados mediante un sistema de plugins. La superficie de capacidades del editor incluye gestión integral de contenido para fórmulas matemáticas, diagramas y medios enriquecidos, así como controles de entrada avanzados como edición con múltiples cursores y navegación modal estilo Vim. También cuenta con un flujo de trabajo robusto de exportación de documentos y un sistema de tokens de diseño para una personalización visual profunda del editor y las áreas de vista previa. El sistema incluye una capa de seguridad que utiliza saneamiento de HTML basado en listas blancas para prevenir ataques de inyección.
Provides APIs to programmatically adjust the cursor and selection range for wrapping text in Markdown syntax.
ngx-datatable es un componente de tabla de datos rico en funciones para aplicaciones Angular diseñado para mostrar y gestionar grandes conjuntos de datos. Funciona como una cuadrícula de datos personalizable que admite ordenamiento, paginación y el uso de plantillas de Angular personalizadas para dar estilo a las celdas de datos. El componente se distingue por su cuadrícula de desplazamiento virtual de alto rendimiento, que renderiza solo las filas visibles para optimizar el uso de memoria y CPU. Proporciona una interfaz interactiva para gestionar datos mediante selección de filas, reordenamiento de columnas y vistas de detalle expandibles. El proyecto cubre un amplio conjunto de capacidades, incluyendo gestión de columnas para fijar y redimensionar, ordenamiento de múltiples columnas e integración del lado del servidor para la obtención remota de datos. También incluye personalizaciones a nivel de fila como estilos dinámicos, componentes de fila personalizados y modos de selección flexibles. Las características de utilidad adicionales incluyen la localización de mensajes de tabla y la aplicación de temas personalizados mediante CSS.
Implements conditional logic to determine whether specific rows are eligible for selection based on defined criteria.
Vis es un editor de texto modal basado en terminal que utiliza atajos de teclado de vi y un sistema de expresiones regulares estructurales. Funciona como un entorno programable donde Lua se utiliza para la configuración, mapeos de teclas personalizados y desarrollo de plugins. El editor se distingue por un sistema de resaltado de sintaxis basado en gramáticas de expresión de análisis (PEG) y un motor de coincidencia de patrones que trata el texto como una estructura para operaciones complejas de búsqueda y reemplazo. También se integra directamente con el shell del sistema, permitiendo a los usuarios enviar rangos de texto a comandos externos y capturar la salida resultante. El proyecto proporciona amplias capacidades para la manipulación de texto, incluyendo el uso de múltiples cursores y selecciones, un grafo dirigido para el historial de deshacer y rehacer no lineal, y una interfaz de múltiples ventanas renderizada mediante secuencias de escape VT-100. Los usuarios pueden definir movimientos y operadores personalizados a través de la API de scripting integrada. La aplicación se puede compilar en un único binario vinculado estáticamente para mayor portabilidad.
Supports the management of multiple active cursors and non-contiguous selections for parallel editing.
ContentTools es un framework de JavaScript y un conjunto de herramientas para construir editores visuales WYSIWYG. Proporciona una biblioteca de manipulación del DOM para analizar y transformar cadenas HTML en regiones editables estructuradas, junto con un orquestador de documentos visual que gestiona los comportamientos de los elementos y las transiciones de estado. El framework incluye un gestor de selección de navegador especializado para asegurar un posicionamiento del cursor y un resaltado de rango de texto consistentes en diferentes navegadores web. También cuenta con un validador de contenido HTML utilizado para sanitizar la salida y convertir enlaces de medios de terceros en formatos de incrustación válidos. El sistema cubre una amplia gama de capacidades, incluyendo manipulación interactiva del DOM para elementos arrastrables y redimensionables, formato de texto enriquecido y flujos de trabajo de procesamiento de imágenes para recortar y rotar. También proporciona herramientas para el seguimiento del historial de edición mediante instantáneas del DOM y un sistema de componentes de UI para gestionar cajas de herramientas y navegación jerárquica mediante breadcrumbs. El proyecto aplica seguridad mediante restricciones de atributos de elementos para evitar modificaciones no autorizadas de etiquetas HTML.
Saves and restores caret positions and selection ranges to maintain user context during DOM re-mounting.