|
| 1 | +--- |
| 2 | +title: "ArxLang VS Code Extension: A Closer Look" |
| 3 | +slug: "arxlang-vs-code-extension-a-closer-look" |
| 4 | +date: 2026-06-09 |
| 5 | +authors: ["Yogendra Sankhla"] |
| 6 | +tags: ["ArxLang", "VS Code", "Extension"] |
| 7 | +categories: ["Tools"] |
| 8 | +description: "A closer look at the ArxLang VS Code extension, its features, and how it is built." |
| 9 | +thumbnail: "/header.png" |
| 10 | +template: "blog-post.html" |
| 11 | +--- |
| 12 | + |
| 13 | +I’ve been keeping an eye on the Arx language for a while now. It’s still |
| 14 | +early days for the language, but when I got to know about the new |
| 15 | +version of the VS Code extension, I figured I’d actually sit down and |
| 16 | +try it properly. So here’s my honest take. |
| 17 | + |
| 18 | +## What is Arx? |
| 19 | + |
| 20 | +Arx is a statically typed language with Python-like indentation, two |
| 21 | +spaces, strictly enforced. Tabs will throw an error. It has a more |
| 22 | +explicit type system than Python and comes with built-in support for |
| 23 | +dataframe, series, and tensor types, making it well-suited for |
| 24 | +data-heavy workloads. The language is currently in draft stage, but the |
| 25 | +syntax is already coherent and well-structured. |
| 26 | + |
| 27 | +Without the extension, opening `.x` or `.arx` files in VS Code gives you |
| 28 | +a plain text experience – means no highlighting, no structure, no |
| 29 | +language recognition. |
| 30 | + |
| 31 | +## Installing the Extension |
| 32 | + |
| 33 | +The extension registers both `.x` and `.arx` file extensions. Once |
| 34 | +installed, the language shows up as ArxLang in the VS Code status bar, |
| 35 | +and syntax highlighting activates immediately. |
| 36 | + |
| 37 | +Standard keywords: `fn`, `class`, `return`, `if`, `while`, etc., are |
| 38 | +highlighted as expected. The extension also correctly handles |
| 39 | +Arx-specific constructs like `@[public, static, constant]` for access |
| 40 | +modifiers and `<T: i32 | f64>` for template parameter blocks, which are |
| 41 | +fairly unusual compared to most languages. |
| 42 | + |
| 43 | +## Docstring Highlighting |
| 44 | + |
| 45 | +Arx uses triple-backtick docstrings with a YAML-like format called |
| 46 | +Douki: |
| 47 | + |
| 48 | +```` arx |
| 49 | +class BaseCounter: |
| 50 | + """ |
| 51 | + ```douki |
| 52 | + title: BaseCounter |
| 53 | + summary: Stores one inherited seed value for derived counters. |
| 54 | + ``` |
| 55 | + """ |
| 56 | +```` |
| 57 | + |
| 58 | +Keys are rendered in a muted dark gray, values in a lighter gray-blue. |
| 59 | +The result is readable without competing visually with the surrounding |
| 60 | +code. |
| 61 | + |
| 62 | +## How It’s Built |
| 63 | + |
| 64 | +Rather than hand-writing a TextMate grammar JSON file, which tends to |
| 65 | +become large, fragile, and hard to maintain the extension uses a single |
| 66 | +source-of-truth manifest at `syntax/arx.syntax.json`. This file defines |
| 67 | +the entire Arx lexical grammar: keywords, operators, builtin types, and |
| 68 | +structural forms. A build script compiles the actual TextMate grammar |
| 69 | +from this manifest automatically, and CI checks that the two are always |
| 70 | +in sync. |
| 71 | + |
| 72 | +This approach makes the extension easier to maintain as the language |
| 73 | +evolves. Updating the grammar is a matter of editing one file and |
| 74 | +regenerating, rather than manually patching a complex grammar file. |
| 75 | + |
| 76 | +## Type and Operator Coverage |
| 77 | + |
| 78 | +The extension covers a broad range of Arx’s type system: |
| 79 | + |
| 80 | +- Integer varieties: `i8` through `i64` (including `int8`–`int64` and |
| 81 | + equivalent expanded aliases for boolean, string, and float categories) |
| 82 | +- Float types: `f16` to `f64` |
| 83 | +- Primitive types: `bool`, `str`, `char`, `datetime`, `timestamp`, |
| 84 | + `date`, `time` |
| 85 | +- Data types: `dataframe`, `series`, `tensor`, `list` |
| 86 | + |
| 87 | +Both symbolic operators (`&&`, `||`, `->`, `!=`) and word operators |
| 88 | +(`and`, `or`) are supported. |
| 89 | + |
| 90 | +## Current Limitations |
| 91 | + |
| 92 | +The extension is highlighting-only. There is no language server, meaning |
| 93 | +no hover documentation, go-to-definition, or autocomplete. Given that |
| 94 | +Arx is still in active development, this is a reasonable scope for now. |
| 95 | +An LSP would likely follow once the language stabilises. |
| 96 | + |
| 97 | +## Summary |
| 98 | + |
| 99 | +The ArxLang extension provides solid syntax highlighting for a language |
| 100 | +still in its early stages. The architecture built around a single |
| 101 | +maintainable manifest means it should keep pace with the language as it |
| 102 | +evolves. For anyone working with Arx code in VS Code, it’s a |
| 103 | +straightforward install that meaningfully improves readability. |
0 commit comments