Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
TITLE:
Arabic RTL chat messages render with broken BiDi layout (LTR container)
PRODUCT:
Cursor IDE — Agent / Chat panel
SEVERITY:
High — Arabic responses are difficult or impossible to read correctly
SUMMARY:
When the AI assistant replies in Arabic (RTL), the chat UI renders the message
in a Left-to-Right (LTR) layout container. Arabic characters are shaped correctly
(glyphs join properly), but paragraph direction, word order, punctuation placement,
and list formatting are wrong. Mixing Arabic with English technical terms, numbers,
URLs, or keyboard shortcuts in the same line makes the text appear scrambled or
“reversed” to Arabic readers.
STEPS TO REPRODUCE:
- Open Cursor on Windows 10
- Open Agent / Chat
- Ask the assistant to reply in Arabic
- Request content that includes:
- Bullet lists
- Numbered steps
- English technical terms (e.g. hover, Bento, OTP, FAB, modals)
- Keyboard shortcuts (Ctrl + Shift + P)
- Numbers with units (20px, 64px)
- Observe the rendered message in the chat bubble
EXPECTED BEHAVIOR:
- Chat bubble should use dir=“rtl” or equivalent for Arabic content
- Text should be right-aligned
- Bullet points should appear on the RIGHT side of lines
- Numbered lists should read naturally RTL: number on the right, period after number
- LTR segments (English words, shortcuts, URLs) should be isolated (Unicode BiDi
isolates or separate blocks) without breaking Arabic word order - Punctuation should follow Arabic reading order
ACTUAL BEHAVIOR:
-
LIST ALIGNMENT:
- Bullet lists are left-aligned; bullets appear on the LEFT instead of RIGHT
- Entire Arabic paragraphs align to the left edge of the chat bubble
-
WORD ORDER (BiDi):
- Arabic and English in the same line are ordered as if the line is LTR
- Example symptom: Arabic words appear to the LEFT of English terms when they
should follow RTL sentence flow - Sentences feel “backwards” or fragmented to native Arabic readers
-
PUNCTUATION:
- Periods appear at the LEFT of list numbers (e.g. “.1” instead of “1.”)
- Commas, colons, dashes (—), and parentheses are misplaced relative to Arabic text
- Parenthetical English like “(zebra)” breaks the Arabic sentence structure
-
MIXED CONTENT:
- Technical terms (hover, Bento, OTP, FAB, modals, wallet, IBM Plex) disrupt layout
- Keyboard shortcuts (Ctrl + Shift + P) split Arabic instruction text incorrectly
- Numbers and px units appear in wrong positions within Arabic phrases
-
CHARACTER RENDERING:
- Arabic letters themselves are NOT individually reversed — joining is correct
- The bug is LAYOUT / DIRECTIONALITY, not font shaping
EXAMPLE CONTENT THAT TRIGGERS THE BUG (from screenshots):
Screenshot 1 — Bullet list titled “التحسينات الجديدة”:
- Items mix Arabic with English (hover, Bento, zebra, OTP, FAB, modals, wallet, IBM Plex)
- Bullets on left; lines left-aligned; dashes and commas in wrong positions
Screenshot 2 — Numbered instructions “اختصار لوحة الأوامر”:
- Steps show “.1 اضغط Ctrl + Shift + P” with period on the wrong side
- Arabic verb “اضغط” appears left of the shortcut instead of natural RTL order
- Same issue for “.2 اكتب: Report Issue” and “.3 اختر الأمر وتابع”
WORKAROUND (user-side):
- Ask the assistant to write pure Arabic without inline English
- Copy reply to Word/Notepad/browser with explicit RTL — displays correctly there
- Confirms the bug is in Cursor chat rendering, not in the generated text itself
ENVIRONMENT:
- OS: Windows 10 (build 19045)
- Interface language: Arabic user, mixed AR/EN assistant output
- Cursor version: [INSERT FROM Help > About]
- Chat: Agent panel (RTL Arabic responses)
ATTACHMENTS:
- Screenshot 1: Bullet list with broken RTL layout and mixed EN/AR terms
- Screenshot 2: Numbered steps with reversed punctuation and shortcut placement
REQUEST:
Please add proper RTL/BiDi support to the chat message renderer:
- Detect Arabic (or respect lang/dir on message blocks)
- Apply direction: rtl and text-align: right for Arabic messages
- Use unicode-bidi: plaintext or BiDi isolates (U+2066/U+2067) for mixed segments
- Fix list (ul/ol) direction in markdown rendering for RTL locales
Thank you.
Steps to Reproduce
STEPS TO REPRODUCE:
- Open Cursor on Windows 10
- Open Agent / Chat
- Ask the assistant to reply in Arabic
- Request content that includes:
- Bullet lists
- Numbered steps
- English technical terms (e.g. hover, Bento, OTP, FAB, modals)
- Keyboard shortcuts (Ctrl + Shift + P)
- Numbers with units (20px, 64px)
- Observe the rendered message in the chat bubble
Expected Behavior
EXPECTED BEHAVIOR:
- Chat bubble should use dir=“rtl” or equivalent for Arabic content
- Text should be right-aligned
- Bullet points should appear on the RIGHT side of lines
- Numbered lists should read naturally RTL: number on the right, period after number
- LTR segments (English words, shortcuts, URLs) should be isolated (Unicode BiDi
isolates or separate blocks) without breaking Arabic word order - Punctuation should follow Arabic reading order
Screenshots / Screen Recordings
Operating System
Windows 10/11
Version Information
Cursor 3.7.19 (stable) — VS Code 1.105.1 — commit 80c653c2c3528e65016a0d304b54486084b470b0 — Windows 10
Does this stop you from using Cursor
Yes - Cursor is unusable
