python / python/cpython

IDLE: add a Unicode character browser

Open
#152,940 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stdlib topic-IDLE type-feature
Dominant language
Python
Stars
77.2k
Forks
35.9k
PR merge metrics
PR metrics pending

Description

Feature or enhancement

IDLE has no way to browse or search for a Unicode character. Inserting one requires already knowing its code point (and typing an escape) or pasting it from another application.

Besides making characters easy to insert, such a tool is useful for learning about Unicode — exploring blocks, looking up a character's name, category, and other properties, and seeing how it is written as an escape, as UTF-8 bytes, as an XML or HTML reference, and in the normalization forms.

I propose a Character Browser, similar to KDE's kcharselect and GNOME Characters, added as a CharSelect extension on the Edit menu (available in both the Shell and the editor).

Features:

  • A grid of Unicode blocks selected from a drop-down, scrollable, with hover and selection highlight.
  • Search by character name substring, or by code point in many notations: U+2764, 0x2764, ❤, ❤, a bare hex/decimal number, \u/\U/\x/\N{...}/simple escapes, surrogate pairs, and a UTF-8 byte escape run.
  • A detail panel with three tabs: an Overview (name, code point, decimal), a Repr tab (literal, Python escape, UTF-8 bytes, surrogate pair, XML and HTML references, \N{...}), and a Unicode tab (block, category, bidi, combining, East Asian width, mirrored, decomposition, numeric values, and normalization forms).
  • Insert the character at the cursor of the editor or Shell (replacing any selection, and staying within the Shell's input area), or Copy it to the clipboard. Double-clicking a character in the grid inserts it.
  • On the detail tabs, clicking a value copies it and double-clicking inserts it.

When opened with an editor selection, the browser seeds the search with it.

A PR will follow.

Related (not a duplicate): #80648 (help with invisible characters).

Linked PRs
  • gh-152945

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin by reviewing the proposed CharSelect extension on IDLE's Edit menu and the linked PR gh-152945. Compare the implementation against the listed Unicode browsing, search, detail, insertion, and copy requirements for both the Shell and editor; done means the agreed scope is implemented and verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.