Изменение отступа JS в Atom Keymap.cson

Я пытаюсь обновить свой файл keymap.cson, чтобы исходный код JavaScript имел немного другой отступ. Я не хочу, чтобы он удалял отступы операторов case и default в switch.

По умолчанию Atom будет форматировать следующим образом:

switch(x) {
case 1:
    //stuff
case 2:
    //stuff
default:
    //stuff
}

Мне нравится, когда операторы case имеют один отступ (и //stuff еще один отступ).

Итак, я пытаюсь отредактировать свою раскладку, чтобы форматировать ее следующим образом:

switch(x) {
    case 1:
        //stuff
    case 2:
        //stuff
    default:
        //stuff
}

К сожалению, что бы я ни пытался, я не могу заставить его прекратить уменьшать отступ, как только я нажму пробел после «дело».

Из документации Keymaps похоже, что добавление следующего coffeescript в мой файл keymap.cson должно отключить значение по умолчанию поведение и добавить мое новое поведение (которое опускает |case|default во второй строке регулярного выражения) должно сработать, но я не уверен, почему оно не работает:

'.source.js':
    'editor':
        'decreaseIndentPattern': 'unset!'

'.source.js':
  'editor':
    'decreaseIndentPattern': '(?x)
        ^(.*\\*/)?\\s*(\\}|\\))
      | ^\\s* else \\s*$
      '

Я думаю, что исходная раскладка в пакете language-javascript здесь.


person Brad Dwyer    schedule 24.06.2014    source источник


Ответы (1)


Я определил, что технически это, вероятно, не Keymap, поэтому его нельзя переопределить в keymap.cson. В итоге я разветвил репозиторий language-javascript, внес свои изменения, удалив исходный language-javascript package и вместо этого установить мою собственную вилку.

Все равно хотелось бы знать, есть ли способ обновить это во время выполнения; с этим решением мне придется вручную обновлять свою вилку с любыми изменениями в восходящем направлении.

Изменить: просто обновление для этого конкретного изменения, оно было фактически принято в официальный пакет language-javascript через PR. № 36.

person Brad Dwyer    schedule 24.06.2014
comment
На момент написания этой статьи нет способа обновить грамматики во время выполнения так, как вы просите. - person Lee; 27.06.2014