Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Free Bidi EditorNew to Visual Studio Code? Get it now.
Free Bidi Editor

Free Bidi Editor

Nautilus Legacy Tech Consulting Inc.

nltc-inc.com
|
498 installs
| (0) | Free
Converts RTL encoded (such as ISO-8859-8 or ISO-8859-6) files to UTF-8 with LRO added before every RTL language (such as Hebrew or Arabic) segments for free bidi display, preserving bidirectional display
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Free Bidi VS Code Extension Overview The Free Bidi extension for Visual Studio Code simplifies working with COBOL files containing RTL language text. It automatically converts files from a configurable RTL encoding (default: ISO-8859-8) to UTF-8, adding Left-to-Right Override (LRO, \u202D) markers before RTL language text to ensure proper display. The converted files are stored in a .freebidi directory and opened in VS Code with UTF-8 encoding. When typing new RTL language characters in these converted files, the extension automatically inserts LRO markers to maintain consistent text direction. Features

Automatic Conversion: Converts COBOLIT files (.cob, .inc, .cpy, .pco) with RTL language text from a configurable RTL encoding (default: ISO-8859-8) to UTF-8 with LRO markers. Readonly Virtual View: When the extension cannot create a local .freebidi directory because of filesystem permissions, it opens a readonly virtual document in VS Code instead of creating a fallback file on disk. Smart Tab Management: When opening a source file that has an existing .freebidi version, automatically closes the original file tab and opens only the freebidi version. Line Number Preservation: When opening a file with a specific line number (e.g., src/file.cob:100), the freebidi version opens at the same line position. Temporary Files: Saves converted files in a .freebidi directory, which are automatically deleted when their tabs are closed. Real-Time RTL language Support: Automatically inserts LRO markers (\u202D) before new RTL language characters typed in .freebidi files. Encoding Enforcement: Ensures .freebidi files are opened with UTF-8 encoding, regardless of VS Code?s files.encoding or files.autoGuessEncoding settings. Non-Recursive: Prevents recursive file opening for .freebidi files. Save Back: Updates the original file using the configured RTL encoding (default: ISO-8859-8) when saving changes to the .freebidi file, removing LRO markers.

Installation

Install the Extension:

Open VS Code. Go to the Extensions view (Ctrl+Shift+X or Cmd+Shift+X on macOS). Search for Free Bidi by NLTCInc. Click Install.

Set Up Dependencies:

Ensure Node.js is installed for development (optional). Run npm install in the extension directory (~/free-bidi) to install dependencies like iconv-lite.

Configure VS Code Settings:

Open VS Code settings (Ctrl+, or Cmd+, on macOS). Add the following to settings.json for the best experience:{ "editor.renderControlCharacters": false, "editor.unicodeHighlight.invisibleCharacters": false, "freeBidi.rtlEncoding": "ISO-8859-8" }

The settings "editor.renderControlCharacters": false and "editor.unicodeHighlight.invisibleCharacters": false prevent visual glyphs for LRO markers and other invisible Unicode characters, ensuring a clean editing experience.

Git Recommendation

If your project uses Git, add the temporary .freebidi/ directory to .gitignore so converted working files are not tracked:

.freebidi/

Usage

Open a COBOL File:

Open a COBOLIT file (.cob, .inc, .cpy, or .pco) containing RTL language text (e.g., /Users/orennissan/Desktop/test.cob). Set the language mode to COBOLIT (Ctrl+Shift+P ? ?Change Language Mode? ? COBOLIT).

Automatic Conversion:

The extension uses freeBidi.rtlEncoding from settings.json (default: ISO-8859-8) and creates a UTF-8 version with LRO markers in the .freebidi directory (e.g., /Users/orennissan/Desktop/.freebidi/test.cob). If that directory cannot be created because the source tree is readonly, the extension opens a readonly virtual version of the converted content directly in VS Code instead of creating a temporary fallback file. The converted file opens automatically in VS Code with UTF-8 encoding.

Edit RTL language Text:

When typing RTL language characters in the .freebidi file, the extension automatically inserts \u202D before each RTL language sequence to maintain text direction.

Save Changes:

Saving the .freebidi file updates the original file, removing LRO markers and encoding it back using freeBidi.rtlEncoding (default: ISO-8859-8). Readonly virtual documents opened because the source tree is not writable cannot be edited or saved back to the original source location.

Close File:

Closing a writable .freebidi file deletes it to keep your workspace clean. Readonly virtual documents do not create temporary fallback files on disk.

Manual Conversion

Run the command Free Bidi Editor: Convert File (Ctrl+Shift+P ? type ?Free Bidi?) to manually convert the active COBOLIT file (.cob, .inc, .cpy, or .pco).

Fix Pasted RTL Text

If Hebrew or another RTL language was pasted into VS Code and appears reversed, use the internal command:

  1. Open the converted .freebidi file, or convert the COBOL file first with Free Bidi Editor: Convert File.
  2. Select the pasted lines, or leave no selection to fix the whole current document.
  3. Run Free Bidi Editor: Fix Pasted RTL Text from the Command Palette.
  4. Save the .freebidi file to write the corrected content back to the original file encoding.

Troubleshooting

File Not Converting:

Ensure the file has the COBOLIT language ID. Check the Output panel (free-bidi) for error messages. Verify the file contains RTL language characters.

Encoding Issues:

Confirm the .freebidi file opens with UTF-8 (check the status bar). Run the following to inspect the file:xxd -l 3 /Users/orennissan/Desktop/.freebidi/test.cob

Expect: 00000000: efbb bf ... (UTF-8 BOM).

LRO Not Inserted:

Ensure you're editing the .freebidi file, not the original .cob file. Check the Output panel for Inserted LRO before RTL language text....

Extension Not Activating:

Check the Output panel for Free Bidi extension activated on platform: .... Disable conflicting extensions like redhat.java (see settings above). Clear workspace storage:rm -rf ~/Library/Application\ Support/Code/User/workspaceStorage/9eee23559e7c9649f178964da0909a5c

Debugging:

Open the extension in VS Code (~/free-bidi). Set breakpoints in src/extension.ts. Run ?Run Extension? in the Debug view (F5). Share Debug Console and Output panel logs if issues persist.

Development

Clone the Repository: git clone https://github.com/Nautilus009/free-bidi.git ~/free-bidi

Install Dependencies: cd ~/free-bidi npm install

Compile: npm run compile

Test: npm test

Publish: npx vsce login NLTCInc npx vsce publish

Contact For issues, feature requests, or contributions, visit the GitHub repository or file an issue.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft