Skip to content

Feature Request: RTL (Arabic/Hebrew) input support in line editing #5166

@Lord1Egypt

Description

@Lord1Egypt

Feature Request: RTL Text Input Support (Arabic / Hebrew)

Problem

PSReadLine handles all interactive line editing in PowerShell. When an Arabic-speaking user types Arabic text at the pwsh prompt, the characters appear in reversed order because PSReadLine processes input strictly left-to-right. This makes it impossible to type Arabic naturally at the PowerShell prompt.

Expected Behavior

  • Arabic (and other RTL) characters should appear in correct right-to-left reading order as the user types
  • Cursor movement ( / ) should respect text direction within RTL runs
  • Cut/copy/paste operations should preserve RTL text correctly

Current Behavior

Arabic letters are displayed in reversed order (LTR rendering of RTL text), making the input unreadable until submitted.

Environment

  • Shell: PowerShell 7.x (pwsh) — standalone, not inside Windows Terminal
  • Console host: Windows Console Host (conhost.exe)
  • PSReadLine: 2.x
  • OS: Windows 11

Suggested Approach

  • Implement basic Unicode Bidirectional Algorithm (UAX nice to have: import history at module load #9) support in the line buffer rendering
  • Detect RTL Unicode ranges (U+0600–U+06FF Arabic, U+0590–U+05FF Hebrew, etc.) and apply correct display order
  • This is the highest-impact fix for RTL users since PSReadLine controls all prompt input

Impact

Arabic, Hebrew, Persian, and Urdu speakers cannot type their native language at the PowerShell prompt. This affects a significant global developer community.

Also filed in PowerShell/PowerShell and microsoft/terminal repos for full coverage:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs-Triage 🔍It's a new issue that core contributor team needs to triage.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions