【问题标题】:Custom tab size based on file extension基于文件扩展名的自定义标签大小
【发布时间】:2021-12-30 15:20:34
【问题描述】:

为了更好地与同事相处,我为 atom 配置了 2 个空格的制表符,但在某些文件中,我更喜欢 4 个。我正在尝试确定另一种文件类型,在这种情况下,我的 Foo.pro 文件使用 Qt Creator 创建。

我已经尝试了几十种方法,但似乎没有任何效果。我正在编辑我的~/.atom/config.cson,然后重新启动atom,没有任何变化。

这是我最近的尝试:

"*":
  core:
    customFileTypes:
      "source.pro": [
        "pro"
      ]
    disabledPackages: [
      "autocomplete-plus"
      "markdown-preview"
      "markdown-preview-plus"
      "spell-check"
    ]
    telemetryConsent: "limited"
    themes: [
      "atom-light-ui"
      "one-light-syntax"
    ]
  editor: {}
  "exception-reporting":
    userId: "283f523f-3348-4956-97f6-a73675e6e9c6"
  "tree-view":
    hideVcsIgnoredFiles: true
  welcome:
    showOnStartup: false
".basic.html.text":
  editor:
    tabLength: 4
".html.source":
  editor:
    tabLength: 4
".source.pro":
  editor:
    tabLength: 4
".shell.source":
  editor:
    tabLength: 4
".shtml.source":
  editor:
    tabLength: 4

我很确定其中一些也不起作用。在 Atom 中,如果我打开我的 .pro 文件并执行 Alt-Cmnd-P,它会显示文件类型为 text.plain.null-grammar。制表符宽度仍然是 2 个字符。很明显我做错了什么。

您会注意到我正在尝试定义自定义文件类型(位于顶部),然后定义制表符长度(靠近底部)。

【问题讨论】:

  • Alt-Cmnd-P 是什么? editor:log-cursor-scope?
  • 您是否为source.pro 安装了语法?
  • @wjandrea 在 Mac 上,它会告诉您它认为您的文件是什么语言。不,我没有特定的语法。虽然有一个 language-qtpro 包。我会尝试安装它,看看会发生什么。
  • @wjandrea 安装该语言包似乎改善了行为。我什至没有想到我应该去看看。现在我必须意识到这一点。 Alt-cmnd-p 现在报告source.prokeyword.operator.qtpro。我不确定第二个是什么,但事情正在按我想要的方式进行。
  • 我认为您看到的是 keyword.operator.qtpro,因为 Alt-Cmd-P 运行 editor:log-cursor-scope,并且您的光标位于语言运算符的中间。

标签: atom-editor


【解决方案1】:

您似乎需要为 .pro 文件安装语法,例如 language-qtpro,否则 source.pro 范围将无法激活。

(我相信这是因为 the fileTypes field 的语法包激活了 the scopeName field。)

【讨论】:

  • 谢谢。这就是解决方案。我没有重新编辑我的 config.cson,所以我不知道他们是否一起工作,或者它出于其他原因神奇地工作。但我又回到了我想要它们的 4 空格标签。
  • @Joseph 那就是配置:)
【解决方案2】:

看来,Atom 反转了config.cson 中语言的范围,因此与其使用.source.pro,不如使用.pro.source(与您示例中的其他语言一样)。至少当您在包设置中为一种语言设置缩进时,它就是这样做的。

既然您提到您希望与同事相处得更好:您是否考虑过使用与编辑无关的EditorConfig 标准与他们共享缩进设置?每当您的项目包含 .editorconfig 文件时,它将覆盖您在不存在此类文件时使用的个人偏好。 许多编辑器直接或通过插件支持 EditorConfig。

【讨论】:

  • 奇怪,我的配置中的顶级作用域之一是 ".source.yaml",它工作正常
  • 我认为这是正确的,但实际上,在运行快速测试后,两者都有效:.<language>.source.source.<language>,至少对于 Python 而言。我认为实际的问题是 OP 没有为 source.pro 安装语法,尽管我对细节感到不安。
猜你喜欢
  • 2019-11-19
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 2018-11-08
  • 1970-01-01
相关资源
最近更新 更多