Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Vahid Code RTLNew to Visual Studio Code? Get it now.
Vahid Code RTL

Vahid Code RTL

Vahid Code

|
1 install
| (0) | Free
Right-to-left Persian text in the Claude Code chat and the Markdown preview; English and code stay left-to-right.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Vahid Code RTL

متن فارسی را در پنجره‌های چت Claude Code و در پیش‌نمایش فایل‌های Markdown راست‌به‌چپ نشان می‌دهد؛ انگلیسی و کد چپ‌به‌راست می‌مانند.

جهت هر بند

جهت از کلمه‌ها تعیین می‌شود، نه از اولین حرف (direction.js): اگر حتی یک کلمهٔ یک بند فارسی باشد، بند راست‌به‌چپ است (قاعدهٔ ۲۰۲۶-۱۰-۱۶؛ پیش از آن ۴۰٪ کلمه‌ها لازم بود). dir="auto" و unicode-bidi: plaintext با اولین حرف تصمیم می‌گیرند و برای همین «Wix و Shopify تامبنیل‌ها را …» را چپ‌به‌راست نشان می‌دادند. کد درون‌خطی حساب نمی‌شود.

  • بند، تیتر، آیتم فهرست و خانهٔ جدول: جهت کلمه‌های خودش (آیتم بدون زیرفهرستش).
  • فهرست، نقل‌قول و جدول: جهت همهٔ متن داخلش (سمت گلوله‌ها، خط نقل‌قول، ترتیب ستون‌ها).
  • در چت همین قاعده روی پیام خودت و کادر نوشتن هم اعمال می‌شود و با رسیدن تکه‌تکهٔ جواب دوباره حساب می‌شود.
  • بیرون از متن جواب‌ها (پنل سؤال‌ها، توضیح ابزارها، پیام سادهٔ نمای Focus، …) هر بلوکی که در نوشتهٔ خودش یا span‌های داخلش کلمهٔ فارسی داشته باشد راست‌به‌چپ می‌شود و نوشتهٔ انگلیسی دست نمی‌خورد. dir="auto"ای که خود Claude Code روی پیام ساده می‌گذارد (با اولین حرف تصمیم می‌گیرد) جایگزین می‌شود؛ dir="ltr" یا "rtl" خودش دست نمی‌خورد. نوشته‌ای که Claude Code چپ‌چین کرده بود (text-align: left) بعد از برگشتن راست‌چین می‌شود (data-vcr-align)؛ وسط‌چین وسط می‌ماند. پنل سؤال‌ها (questionBlock) یک‌جا برمی‌گردد تا دکمه‌های انتخاب هم سمت راست بروند.

پیش‌نمایش Markdown

از راه رسمی VS Code: markdown.previewStyles و یک افزونهٔ markdown-it که dir هر بلوک را می‌گذارد. چیزی بیرون از این افزونه عوض نمی‌شود.

چت Claude Code

هیچ افزونه‌ای به صفحهٔ افزونهٔ دیگری راه ندارد، پس این افزونه به ته webview/index.css و webview/index.js خود Claude Code یک بلوک (بین /* VAHID-CODE-RTL-START */ و END) اضافه می‌کند؛ سر هر بار باز شدن VS Code و بعد از هر به‌روزرسانی Claude Code دوباره.

  • نسخهٔ دست‌نخوردهٔ هر فایل کنارش نگه داشته می‌شود (*.vahid-code-rtl.orig) و وصله همیشه از آن ساخته می‌شود؛ برداشتن وصله (دستور یا حذف افزونه) همان را برمی‌گرداند.
  • هر نوشتن اول در یک فایل موقت انجام می‌شود و بعد جای فایل اصلی می‌نشیند (rename)، تا هیچ پنجره‌ای هیچ‌وقت فایل نیمه‌نوشته نخواند. نسخهٔ 1.0.0 (vahid.persian-rtl) فایل را درجا بازنویسی می‌کرد و یک بار index.js را نصفه گذاشت؛ همهٔ پنجره‌های Claude Code سفید شدند.
  • نسخه‌هایی که VS Code برای پاک شدن علامت زده (.obsolete) دست نمی‌خورند.
  • بلوک افزونهٔ Vahid Code Notes (/* VAHID-CODE-NOTES-START */) که بعد از این بلوک می‌آید، با هر بار نوشتن یا برداشتن این وصله دست‌نخورده می‌ماند و هیچ‌وقت وارد نسخهٔ دست‌نخورده نمی‌شود.

دستورها و تنظیمات

  • Vahid Code RTL: اعمال دوبارهٔ راست‌چین روی چت Claude Code
  • Vahid Code RTL: برداشتن راست‌چین از چت Claude Code
  • vahidCodeRtl.chat.enabled، vahidCodeRtl.markdown.enabled

ساخت و آزمون

node scripts/test-patch.js          # روی یک کپی از Claude Code نصب‌شده، با ۲۴ پنجرهٔ هم‌زمان
node scripts/test-dom.js --shot /tmp/dom.png   # صفحه‌ای به شکل webview در Chrome بی‌سر: جهت هر عنصر
python3 -I scripts/build-vsix.py    # vahid-code-rtl-<version>.vsix
code --install-extension vahid-code-rtl-1.4.0.vsix
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft