✨ Column selection
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Im Issue werden keine Dateien oder Tests genannt. Beginne damit, die vorhandenen Einstiegspunkte von CodeEditTextView für Auswahl, Cursor, Tastatur, Maus und Zwischenablage nachzuverfolgen; fertig bedeutet, dass die Spaltenauswahl für die aufgeführten Eingabemethoden und Bearbeitungsvorgänge funktioniert, mit einem Fadenkreuz-Cursor, Zwischenablageunterstützung, Kompatibilitätsabdeckung und Dokumentation im Benutzerhandbuch.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
We need to implement column selection (also known as block selection or rectangular selection) in CodeEdit, allowing users to select text in a columnar fashion. This feature is particularly useful for editing structured text, such as code, where the same changes need to be applied to multiple lines simultaneously.
Triggering Column Selection:
- Users should be able to initiate column selection by either
- holding down the
⌥ Optionkey and dragging the mouse or - using the keyboard with
⇧ Shift+⌃ Control+▲ up/▼ downarrow keys
- holding down the
Visual Indication:
- There should be a clear visual indication that column selection mode is active by changing the cursor to crosshairs
Editing Behavior:
- When text is typed while in column selection mode, it should replace the selected text in all lines within the selection.
- Deleting should remove the selected block of text across all lines.
- Navigating and selection with the arrow keys should apply to each cursor as expected, including with modifier keys held
Clipboard Support:
- Copying should retain the multi-line selection.
Additional Context
This feature is common in many text editors and IDEs, such as Visual Studio Code, Sublime Text, and JetBrains IDEs, and can significantly enhance productivity, especially when working with large codebases.
Possible Challenges
- Ensuring that column selection works seamlessly with all supported languages and file types.
- Managing edge cases, such as selections that start or end in the middle of a tab character or mixed tab/space indentations.
References
Tasks
- Implement the core column selection functionality.
- Change cursor when ⌥ is held and over editor to indicate column selection mode.
- Ensure clipboard operations work with column selections.
- Test for compatibility with other editor features and languages.
- Document the feature in the CodeEdit user guide.
Screenshots
https://github.com/user-attachments/assets/55c15e53-d341-417e-81d6-9aaccbe1fc9f
- Vorherrschende Sprache
- Swift
- Sterne
- 182
- Forks
- 57
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus CodeEditApp/CodeEditTextView
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
CodeEditApp/CodeEditTextView#124 ·
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
CodeEditApp/CodeEditTextView#121 ·
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 28/100
CodeEditApp/CodeEditTextView#119 ·
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
CodeEditApp/CodeEditTextView#106 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
Alle Issues in CodeEditApp/CodeEditTextView
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
manaflow-ai/cmux#13763 ·
-
type: feature request
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
googleapis/google-cloud-swift#1036 · 1 Kommentar ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
wultra/mtoken-sdk-ios#253 ·
-
area:dictation documentation P2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
uttrflow/uttrflow-swift#1180 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100