21 Repos
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 ist ein benutzerdefiniertes Android-View-Widget, das darauf ausgelegt ist, untergeordnete Elemente über mehrere Zeilen hinweg umzubrechen. Es fungiert als Adapter-basiertes Layout, das fließende Inhalte aus einer Datenquelle auffüllt und aktualisiert, speziell für die Anzeige von Sammlungen von Tags oder Chips. Die Komponente beinhaltet ein Tag-Auswahlsystem, das Einzel- oder Mehrfachauswahlmodi mit konfigurierbaren Limits unterstützt. Es verwaltet Benutzerinteraktionen durch Tag-Click-Handling und beinhaltet einen State-Manager, um Auswahlindizes über die Rekonstruktion von Aktivitäten und Bildschirmdrehungen hinweg zu speichern. Die Bibliothek bietet Funktionen für dynamische Datenbefüllung und automatische Layout-Messung, um sicherzustellen, dass Elemente basierend auf dem verfügbaren horizontalen Bildschirmplatz korrekt umbrechen.
Saves and restores the current selection of items during activity reconstruction to prevent data loss.
Codehike ist ein React-basiertes Dokumentations-Framework und Tool für interaktive Code-Walkthroughs. Es fungiert als Markdown-Content-Orchestrator, der annotiertes Markdown in strukturierte Daten und React-Komponenten umwandelt und als Visualisierungsebene für das Hervorheben von Code-Bereichen, Diffs und Compiler-Fehlern dient. Das Projekt zeichnet sich durch die Fähigkeit aus, „Scrollycoding“-Erlebnisse und schrittweise technische Tutorials zu erstellen. Es bietet Animationen auf Token-Ebene, die visuell demonstrieren, wie sich Logik zwischen Code-Versionen entwickelt, und ermöglicht die Synchronisierung des UI-Zustands mit der Scroll-Position des Browsers. Das Framework deckt eine breite Palette an Visualisierungsfunktionen ab, darunter Code-Slideshows, Spotlight-Layouts und Code-Blöcke mit Tabs. Es unterstützt detaillierte Code-Annotationen durch Tooltips, Callouts und Fußnoten sowie funktionale Hilfsmittel wie Sprachumschalter, Code-Transpilierung und die Integration von Echtzeit-Compiler-Daten. Das System nutzt schema-basierte Validierung, um Typsicherheit und Konsistenz für die aus Markdown-Dateien extrahierten strukturierten Daten zu gewährleisten.
Uses regular expressions to identify and select specific text patterns within code blocks for styling and annotation.
CadQuery ist eine programmatische 3D-Modellierungsbibliothek und ein parametrisches CAD-Framework, das die Generierung komplexer geometrischer Körper und Baugruppen mittels einer flüssigen Python-API ermöglicht. Es fungiert als B-Rep-Geometrie-Engine, die die Konstruktion von Modellen durch Code anstelle einer grafischen Benutzeroberfläche ermöglicht. Das Projekt basiert auf dem Open CASCADE Technology Kernel und nutzt eine Method-Chaining-API, um geometrische Befehle in Sequenz zu verknüpfen. Es zeichnet sich durch ein arbeitsebenenbasiertes Koordinatensystem und ein leistungsstarkes Auswahlsystem aus, das topologische und räumliche Filterung verwendet, um spezifische Flächen, Kanten oder Eckpunkte für Operationen anzusteuern. Die Bibliothek deckt ein umfassendes Spektrum an Funktionen ab, einschließlich parametrischer 2D-Skizzierung, 3D-Körpergenerierung durch Extrusion und Lofting sowie hierarchisches Baugruppenmanagement mit geometrischen Abhängigkeiten. Zudem bietet sie Tools zur Geometrieverfeinerung, wie Verrundungen (Fillets) und Wandstärken (Shelling), und unterstützt den Import und Export von Industriestandardformaten wie STEP und DXF. Das Framework enthält eine integrierte Rendering-Engine für interaktive Modellvisualisierung und Inspektion während des Skriptprozesses.
Groups multiple geometric filters using logical operators to refine the selection of specific model elements.
Squire ist ein DOM-basierter Rich-Text-Editor und WYSIWYG-Content-Editor, der rohes HTML als Quelle der Wahrheit behandelt. Er fungiert als System zur direkten Manipulation des Document Object Models, um eine visuelle Schnittstelle für die Bearbeitung komplexer Webinhalte bereitzustellen. Das Projekt konzentriert sich auf die Bearbeitung beliebiger HTML-Inhalte und ermöglicht die Modifikation jeglicher HTML-Inhalte, ohne die ursprüngliche Formatierung zu verlieren. Es enthält Tools zur HTML-Inhaltsnormalisierung und -Sanitisierung, um sicherzustellen, dass rohe Eingaben konsistent bereinigt und strukturiert werden, bevor sie als editierbare Knoten gerendert werden. Das Fähigkeitsspektrum des Editors deckt Inline-Formatierung, Block-Element-Management und das Einfügen von Medienfragmenten ab. Er bietet zudem Zustandsmanagement zur Nachverfolgung von Cursor-Positionen und zur Aufrechterhaltung einer snapshot-basierten Undo- und Redo-Historie.
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 ist ein Vim- und Neovim-Plugin, das Multi-Cursor-Textbearbeitung bietet. Es fungiert als Multi-Cursor-Texteditor und Makro-Orchestrator, der parallele Einfügungen, Löschungen und Ersetzungen über diverse Textvorkommen hinweg ermöglicht. Das Plugin enthält ein Regex-Textauswahl-Tool, das verwendet wird, um mehrere Cursor basierend auf regulären Ausdrucksmustern zu spawnen. Dies ermöglicht die Identifizierung übereinstimmender Wörter oder Fragmente, um Batch-Modifikationen über eine Datei hinweg durchzuführen. Das System deckt mehrere Funktionsbereiche ab, einschließlich der vertikalen Ausrichtung und Synchronisation von Cursorn auf eine gemeinsame Spalte. Es bietet zudem Automatisierung für die Batch-Befehlsausführung, wodurch Makros über alle aktiven Cursor-Positionen hinweg ausgeführt werden können. Auswahl-Management-Tools ermöglichen das Hinzufügen, Entfernen oder Überspringen spezifischer Vorkommen, um das aktive Cursor-Set zu verfeinern.
Simulates multiple active editing points by tracking coordinates outside the native editor state.
Cherry Markdown ist ein webbasierter Markdown-Editor und eine Parsing-Engine, die Markup-Text in bereinigtes HTML mit einer synchronisierten Echtzeit-Vorschau umwandelt. Er fungiert als Rich-Text-Schnittstelle und WYSIWYG-Tool und bietet ein System zur Umwandlung von Markup-Strings in HTML-Dokumente oder portable Formate. Das Projekt zeichnet sich durch High-Performance-Rendering und ein flexibles Erweiterbarkeitsmodell aus. Es verwendet Virtual-DOM-Diffing und partielles Rendering, um die Reaktionsfähigkeit bei großen Dokumenten aufrechtzuerhalten, und ermöglicht die Erstellung benutzerdefinierter Parsing-Regeln und spezialisierter HTML-Komponenten über ein Plugin-System. Die Funktionsoberfläche des Editors umfasst eine umfassende Inhaltsverwaltung für mathematische Formeln, Diagramme und Rich Media sowie fortgeschrittene Eingabesteuerungen wie Multi-Cursor-Editing und Vim-Style-Modus-Navigation. Er bietet zudem einen robusten Dokumenten-Export-Workflow und ein Design-Token-System für tiefgreifende visuelle Anpassungen des Editors und der Vorschau-Bereiche. Das System enthält eine Sicherheitsschicht, die Whitelist-basiertes HTML-Sanitizing verwendet, um Injection-Angriffe zu verhindern.
Provides APIs to programmatically adjust the cursor and selection range for wrapping text in Markdown syntax.
ngx-datatable is a feature-rich data table component for Angular applications designed to display and manage large datasets. It functions as a customizable data grid that supports sorting, pagination, and the use of custom Angular templates for styling data cells. The component is distinguished by its high-performance virtual scrolling grid, which renders only visible rows to optimize memory and CPU usage. It provides an interactive interface for managing data through row selection, column reordering, and expandable detail views. The project covers a broad set of capabilities including colum
Implements conditional logic to determine whether specific rows are eligible for selection based on defined criteria.
Vis ist ein terminalbasierter modaler Texteditor, der vi-Keybindings und ein System struktureller regulärer Ausdrücke verwendet. Er fungiert als skriptbare Umgebung, in der Lua für Konfiguration, benutzerdefinierte Tastenzuweisungen und Plugin-Entwicklung verwendet wird. Der Editor zeichnet sich durch ein Syntax-Highlighting-System aus, das auf Parsing Expression Grammars basiert, sowie durch eine Pattern-Matching-Engine, die Text als Struktur für komplexe Suchen-und-Ersetzen-Operationen behandelt. Er integriert sich zudem direkt in die System-Shell, sodass Benutzer Textbereiche an externe Befehle weiterleiten und die resultierende Ausgabe erfassen können. Das Projekt bietet breite Funktionen für die Textmanipulation, einschließlich der Verwendung mehrerer Cursor und Selektionen, eines gerichteten Graphen für nicht-lineare Undo- und Redo-Historien sowie einer Multi-Window-Schnittstelle, die über VT-100-Escape-Sequenzen gerendert wird. Benutzer können benutzerdefinierte Bewegungen und Operatoren über die eingebettete Skript-API definieren. Die Anwendung kann für Portabilität in eine einzige statisch gelinkte Binärdatei kompiliert werden.
Supports the management of multiple active cursors and non-contiguous selections for parallel editing.
ContentTools ist ein JavaScript-Framework und eine Suite von Werkzeugen zum Erstellen visueller WYSIWYG-Editoren. Es bietet eine DOM-Manipulationsbibliothek zum Parsen und Transformieren von HTML-Strings in strukturierte, editierbare Bereiche, zusammen mit einem visuellen Dokument-Orchestrator, der Elementverhalten und Zustandsübergänge verwaltet. Das Framework enthält einen spezialisierten Browser-Auswahlmanager, um eine konsistente Cursor-Positionierung und Textbereichsmarkierung über verschiedene Webbrowser hinweg sicherzustellen. Es verfügt zudem über einen HTML-Inhaltsvalidator, der zur Bereinigung der Ausgabe verwendet wird und Medienlinks von Drittanbietern in gültige Einbettungsformate konvertiert. Das System deckt eine breite Palette von Funktionen ab, einschließlich interaktiver DOM-Manipulation für verschiebbare und in der Größe veränderbare Elemente, Rich-Text-Formatierung und Bildverarbeitungs-Workflows zum Zuschneiden und Drehen. Es bietet zudem Werkzeuge zur Verfolgung der Bearbeitungshistorie mittels DOM-Snapshots sowie ein UI-Komponentensystem zur Verwaltung von Toolboxes und hierarchischer Breadcrumb-Navigation. Das Projekt erzwingt Sicherheit durch Einschränkungen von Elementattributen, um unbefugte Änderungen an HTML-Tags zu verhindern.
Saves and restores caret positions and selection ranges to maintain user context during DOM re-mounting.