【问题标题】:Changing JS Indenting in Atom Keymap.cson在 Atom Keymap.cson 中更改 JS 缩进
【发布时间】:2014-06-24 15:11:29
【问题描述】:

我正在尝试更新我的 keymap.cson 文件,以便 JavaScript 源代码的缩进略有不同。我不希望它在 switch 中取消缩进 casedefault 语句。

默认情况下,Atom 会这样格式化:

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

我喜欢我的 case 语句缩进一次(//stuff 再缩进一次)。

所以我正在尝试编辑我的键盘映射,使其以这种方式格式化:

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

不幸的是,无论我尝试什么,只要在“case”之后按下空格键,我就无法让它停止减少缩进。

the Keymaps Documentation 看来,将以下咖啡脚本放在我的keymap.cson 文件中应该禁用默认行为并添加我的新行为(从正则表达式的第二行省略|case|default应该 成功了,但我不确定为什么它不起作用:

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

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

认为原来的键盘映射是in the language-javascript package here

【问题讨论】:

    标签: javascript keymapping atom-editor


    【解决方案1】:

    我确定这在技术上可能不是 Keymap,因此它不能在 keymap.cson 中被覆盖。我最终做的是forking the language-javascript repo,进行更改,卸载原始的language-javascript 包,并安装我的自定义fork。

    仍然想知道是否有办法在运行时更新它;使用此解决方案,我将不得不手动使我的 fork 与任何上游更改保持同步。

    编辑:只是对这个特定更改的更新,它实际上已被官方language-javascriptvia PR #36 接受。

    【讨论】:

    • 在撰写本文时,还没有一种方法可以按照您的要求在运行时更新语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2016-05-26
    • 1970-01-01
    • 2018-05-17
    • 2010-09-20
    • 2016-10-02
    • 2018-02-05
    相关资源
    最近更新 更多