✦ Write the way right-to-left languages are meant to be read ✦
VS Code's built-in editor is left-aligned and has no official API to flip text direction. Qalam solves this with a dedicated right-to-left custom editor and a matching live preview — so your .md files finally look the way you write them. Built for Persian (فارسی), Arabic (العربية), Hebrew (עברית), and Urdu (اردو), and great for any mixed RTL/LTR document.
| ✏️ Edit |
🔀 Split |
👁️ Preview |
| True RTL, right-aligned writing |
Editor + live preview, synced scroll |
Clean rendered, fully RTL |
✨ Features
- 🪶 True RTL editing — right-aligned, natural right-to-left base direction
- 🎨 Colorful code — built-in offline syntax highlighting for 17+ languages, with a language badge and one-click Copy
- 📖 11 reading themes — switch the preview template live: Auto · GitHub · Sepia · Nord · Dracula · One Dark · Solarized Light/Dark · Rosé Pine · Gruvbox · Monokai
- 🧰 Formatting toolbar — bold, italic, headings, lists, checklists, links, tables & more (
Ctrl+B/I/K)
- 🧭 Live outline — auto table of contents with click-to-scroll
- 📊 Status bar — word, character & line counts + reading time
|
- 🪞 Live preview — fully RTL, synced scrolling in Split mode
- 🧱 Rich rendering — headings, nested lists, task lists, aligned tables, quotes, GitHub callouts, auto-links
- 🔤 Smart code direction — code stays LTR inside RTL text
- 🔘 Status bar toggle — turn the RTL editor on/off with one click
- ⚙️ Customizable — font, size, line height, default mode, reading theme
- 🔌 Offline & Restricted-Mode friendly — no network, no trust needed
|
🚀 Getting Started
1. Install the extension
2. Open any .md, .markdown, or .mdx file
3. It opens automatically in the Qalam RTL editor
Use the toolbar to switch between Edit, Split, and Preview.
💡 Open in the normal editor: click “Open in Text Editor” in the toolbar, or right-click the file → Reopen Editor With… → Text Editor.
⚙️ Settings
| Setting |
Default |
Description |
rtlMarkdown.fontFamily |
Vazirmatn, Tahoma, 'Segoe UI', sans-serif |
Font family for editor & preview |
rtlMarkdown.fontSize |
16 |
Font size in pixels |
rtlMarkdown.lineHeight |
2 |
Line height |
rtlMarkdown.defaultMode |
preview |
View on open: edit, split, or preview |
rtlMarkdown.previewTheme |
auto |
Reading theme: auto, github, sepia, nord, dracula, one-dark, solarized-light, solarized-dark, rose-pine, gruvbox, monokai (also switchable live from the toolbar) |
💡 For the best Persian/Arabic typography, install the free Vazirmatn font.
⌨️ Shortcuts & Commands
| Action |
How |
| Save |
Ctrl / Cmd + S |
| Bold / Italic / Link |
Ctrl / Cmd + B · I · K |
| Insert indentation |
Tab (two spaces) |
| Toggle outline / change reading theme |
Toolbar |
| Copy a code block |
Copy button on the block |
| Open in RTL editor |
Command Palette → RTL Markdown: Open in RTL Editor |
| Open in plain text editor |
Command Palette → RTL Markdown: Open in Text Editor |
🔧 Make it the default editor (optional)
Qalam registers itself as the default editor for Markdown. If VS Code still opens the plain editor, add this to your settings.json:
"workbench.editorAssociations": {
"*.md": "rtlMarkdown.editor",
"*.markdown": "rtlMarkdown.editor",
"*.mdx": "rtlMarkdown.editor"
}
🛠️ Build from source
git clone https://github.com/morpheusadam/RTL-.md-Files-Vs-Code-Extention.git
cd RTL-.md-Files-Vs-Code-Extention
npm install -g @vscode/vsce
vsce package # creates qalam-rtl-markdown-0.0.1.vsix
Install the generated .vsix from the Extensions view → … → Install from VSIX, or press F5 to launch an Extension Development Host.
❓ FAQ
Does it support syntax highlighting?
Yes — the rendered preview colorizes fenced code blocks for 17+ languages using a built-in, fully offline highlighter (no network), complete with a language badge and a Copy button. The editing textarea itself stays clean RTL text; for token-by-token highlighting while typing, switch back to the text editor anytime via the toolbar button.
Will my changes sync with Git / the normal editor?
Yes. Qalam edits the real file; changes are two-way synced and saved normally.
Which languages are supported?
Any RTL script — Persian, Arabic, Hebrew, Urdu, and more — including documents that mix RTL and LTR (English words or code inside RTL text).