如何防止Atom对config.cson进行表面更改?

时间:2017-03-14 01:39:55

标签: config atom-editor double-quotes single-quotes cson

从我在CSON README以及我在互联网上找到的其他CSON用法中可以看出,对于字符串文字来说,使用单引号而不是双引号是常规的。因此(并且因为我同意我在这个约定背后普遍看到的理由),我将它用于我的Atom配置文件,例如keymap.cson

'body':
  'ctrl-tab': 'pane:show-next-item'
  'ctrl-tab ^ctrl': 'unset!'
  'ctrl-shift-tab': 'pane:show-previous-item'
  'ctrl-shift-tab ^ctrl': 'unset!'

到目前为止,这对我来说很好。但是,当我尝试对config.cson文件使用相同的约定时,我遇到了问题。例如,我试图将其内容设置为以下内容:

'*':
  core:
    disabledPackages: [
      'exception-reporting'
    ]
    restorePreviousWindowsOnStart: false
    telemetryConsent: 'no'
  welcome:
    showOnStartup: false
  whitespace:
    ignoreWhitespaceOnCurrentLine: false

但是,如果我打开Atom并点击 Ctrl + = Ctrl + - (使用字体大小)或做一些其他类似的更改,然后将Atom恢复到之前的状态状态,Atom将我的config.cson文件更改为:

"*":
  core:
    disabledPackages: [
      "exception-reporting"
    ]
    restorePreviousWindowsOnStart: false
    telemetryConsent: "no"
  editor: {}
  welcome:
    showOnStartup: false
  whitespace:
    ignoreWhitespaceOnCurrentLine: false

正如您所看到的,它将所有单引号更改为双引号并添加了不必要的editor部分。

有没有办法阻止Atom对我的config.cson文件进行这些肤浅的更改?这对我很重要的原因是我保留了我的Atom配置文件版本控制,所以为了防止非常嘈杂的差异,我需要禁用此行为或为我的引号使用不一致或次优的样式,如果可能的话,我会发现前一个选项更为可取。

2 个答案:

答案 0 :(得分:1)

如果是切换文件格式的选项,请考虑使用config.json。由于JSON按惯例使用双引号,因此在更改Atom配置时应该没有冲突。

Atom已经开始转型,以摆脱CoffeeScript(和CSON),您可以在整个应用程序中交替使用JavaScript / CoffeeScript和JSON / CSON。

答案 1 :(得分:0)

v2.0.0开始,cson-parser库在对CSON进行字符串化时使用传统的引用类型默认值,因此您可以使用该库编写一个简单的shell script并在{{1}上运行它在提交给Git之前。在调用config.cson之前删除此类脚本中的空editor部分之类的内容也相对简单。

你可以把它写成一个Atom包,就像@idleberg在comment中提到的那样,但我自己没有尝试过。

如果stringify upgradesseason依赖于v2.0.0,那将解决报价类型问题,但仍需要删除空的cson-parser部分别的什么。