
NoShift.js - VS Code Extension
Syntax highlighting, auto-complete, and file icons for .nsjs files
Typing shifted symbols (!, ", (, ), {, } …) is tiring.
NoShift.js replaces every shift-required symbol with a ^-prefixed sequence, so you can write JavaScript using only unshifted keys.
.nsjs files compile directly to plain JavaScript via the nsc CLI.
[!Important]
⚠ Breaking Changes (v0.10.0): Syntax changes in NoShift.js v0.15.0 — ^3 is now #, ^6 is now Capitalize, ^\ is now _. New keyword aliases: or, and, @or, @and.
Features
Syntax Highlighting
Full syntax highlighting for .nsjs files.
- Keywords:
const, let, function, class, if, for, return, etc.
- NoShift sequences:
^2, ^[, ^- and other symbol sequences colored as operators/punctuation
- String literals:
^2...^2 (double-quote), ^7...^7 (single-quote), ^@...^@ (template literal)
- Template expressions: Code inside
^4^[...^] highlighted as nested expressions
- Built-in objects:
console, Math, Promise, Array, etc.
- Comments:
// line comments and /^: ^:/ block comments
File Icon
.nsjs files display a dedicated file icon (↓js).
- Shown in tabs and Explorer for VS Code 1.79+
- When vscode-icons is installed:
.nsjs, nsjsconfig.json, and nsjslinter.json icon associations are configured automatically on activation
Auto-Complete
Typing ^[ automatically inserts the matching ^] and places the cursor between them.
Input: ^[
Result: ^[|^] (| = cursor position)
Code Snippets
| Prefix |
Inserted |
^[ |
^[${1}^] |
Diagnostics
Real-time syntax error detection as you type. Errors appear as red squiggly underlines in the editor and in the Problems panel.
- Unclosed string literals (
^2, ^7, ^@)
- Unclosed block comments (
/^: ... ^:/)
- Unclosed template expressions (
^4^[...^])
- Unknown
^ sequences
- Lone
^ or ^6 at end of file
Requirements
- VS Code
1.70.0 or later
- (Optional) vscode-icons - integrates file icons with the vscode-icons theme
Language Support
This symbol mapping is based on the NoShift.js developer's keyboard (JIS layout).

| Feature |
Details |
| Extension |
.nsjs |
| Language ID |
noshift |
| Line comment |
// |
| Block comment |
/^: ^:/ |
| Bracket pairs |
^[ / ^], ^8 / ^9, [ / ] |
| Auto-close |
^2, ^7, ^@, ^[, ^8 |
Ecosystem / Links
License
MIT © otoneko.
| |