args - это аргументы команды, а вам нужен context
sublimetext.info/docs/en/reference/key_bindings.html
https://forum.sublimetext.com/t/per-syntax-key-bin...
Конкретно selector - это scope, который как раз определяет язык
Вот пример для HTML:
{
"keys": ["ctrl+shift+enter"],
"command": "insert_snippet",
"args" : {
"contents": "<br/>"
},
"context": [
{ "key": "selector", "operator": "equal", "operand": "text.html" }
]
},
Какой именно scope у JS - не знаю
Наверное что-то типа text.javascript или text.js
У себя проверил такой keymap в юзерском `Default (Windows).sublime-keymap`:
[
{
"keys": ["ctrl+k", "alt+k"],
"command": "set_layout",
"args":
{
"cols": [0.0, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1]]
},
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.c++" }
]
}
]
Выставил синтаксис Haskell - не работает
Выставил C++ - работает