BAKUL

2026 · SHIPPED · UNKNOWN

Bnlang for VS Code

Writing code in Bangla without an IME

  • TypeScript
  • VS Code Extension API
  • TextMate grammars

Bnlang for VS Code provides syntax highlighting, snippets, completions and formatting for the Bangla programming language Bnlang. A .bnl file freely mixes English and Bangla keywords, because both forms tokenize to the same thing in the lexer.

The feature that matters is phonetic typing: type a roman spelling and accept the Bangla token. Because the language defines a closed set of keywords, this removes the system IME requirement entirely for the tokens the language owns.

Problem

Bnlang lets you write programs with Bangla keywords. But typing Bangla on a standard keyboard requires a system IME, which means the language is only usable by people who have already solved a separate, unrelated problem.

Question

If a language defines a closed set of keywords, does the editor need an IME at all — or can phonetic completion cover every token the language actually defines?

Approach

Because Bnlang keywords are a closed set, the editor can accept a roman spelling and complete it to the Bangla token: type jodi, accept যদি; type likhun, accept লিখুন. That covers all 28 keyword groups plus Bangla globals and built-in module aliases, so no system IME is needed for any token the language defines.

System

Open any stage to see what it does.

Demo

Open a .bnl file, type a roman spelling of any keyword, and accept the Bangla token. Mixed English and Bangla source highlights and formats as one language.

Result

  • Covers all 28 keyword groups plus Bangla globals and built-in module aliases with phonetic completion.
  • No system IME is required for any closed-set token the language defines.
  • English and Bangla keyword forms are fully interchangeable, matching the behaviour of the Bnlang lexer.

Lesson

Language accessibility is usually framed as a font or encoding problem. Here it was an input problem, and the fix was possible only because keywords are a closed set — a constraint of the language turned into the feature that makes it usable.

Source

Connected

  • hdgame.meBoth are SYSTEMS and CREATIVE CODING work, and both are built with TypeScript.
  • CodeRelayBoth are SYSTEMS work, and both are built with TypeScript, VS Code Extension API.
  • Epistemic GuardBoth are SYSTEMS work, and both are built with TypeScript, VS Code Extension API.
  • BazarioBoth are SYSTEMS work, and both are built with TypeScript.