【问题标题】:How can I over-ride the default code formatting policy in MonoDevelop?如何覆盖 MonoDevelop 中的默认代码格式化策略?
【发布时间】:2012-06-11 19:37:45
【问题描述】:

MonoDevelop 允许创建和安装自定义策略来控制代码格式的各个方面。我为我们的工作站点创建了一个策略,可以通过 Project > Apply Policy ... 应用它。

我们正在使用 Unity 游戏引擎,该引擎会定期重新生成 MonoDevelop 解决方案,要求每个开发者重新应用该策略 - 烦人且容易出错。

如何使我的策略文件成为新 MonoDevelop 解决方案的默认值?

另外,应用策略的信息保存在哪里?

在 .sln 文件中,我看到“$0.CSharpFormattingPolicy = $2”,但在应用我的自定义策略后它没有改变。我对比了应用策略前后的所有项目文件,唯一的变化是(1)生成了一个.userprefs文件,但没有提及策略,以及(2)各种.pidb文件不同,但这可以'不是政策信息的去向吗??

我正在使用与 Unity 3.5.2 集成的 MonoDevelop 版本,即 MonoDevelop 版本 2.8.2(在 Windows 7 上)。 (是的,2.8.2 有点过时了,Unity Technologies 所做的更改可能会导致我的问题。)

【问题讨论】:

    标签: monodevelop unity3d


    【解决方案1】:

    这是在其他答案之后的一年,但以上都不适用于统一,这在谷歌搜索的顶部附近。

    以下是我必须遵循的步骤才能使格式化工作:

    1. MonoDevelop->工具->自定义策略->添加策略->新策略

    2. 在“自定义策略”窗口中编辑策略,确保选择了您的策略。

    3. 项目->应用策略->应用库存或自定义策略集(选择您的策略)->应用

    【讨论】:

    • 这太棒了。由于 Unity 会为每个新项目创建其默认策略,因此重新创建我的样式会非常令人沮丧。这正是我想要的!
    • 这适用于该策略,但根据我的经验,它只会持续到下次 Unity 重新生成解决方案时。
    • 更好的是,在解决方案级别应用您的策略(右键单击解决方案,然后单击工具 -> 应用策略)并以新文件名保存解决方案。这样,Unity 不会在每次重新生成项目时覆盖您的设置。
    • ...除了这是否意味着您直接在 Unity 中创建的任何脚本文件都不会添加到您的项目中,而您必须手动添加?
    【解决方案2】:

    转到工具->选项->键绑定 然后转到编辑-> FormatDocument 然后分配您的快捷键并单击应用并在您的文档中使用它。

    【讨论】:

      【解决方案3】:

      默认策略应用于新解决方案或没有策略的解决方案。它可以在 Preferences/Options 对话框中进行编辑,它与用户首选项混合在一起:Windows 上的 Tools->Options,Mac 上的 MonoDevelop->Preferences。您可以识别策略,因为它们在面板顶部有一个“策略”下拉菜单,可让您从命名策略加载。

      【讨论】:

      • 感谢 mhutch,我尝试使用这些设置,但它们没有任何区别。用更多信息编辑我的问题。
      【解决方案4】:

      我花了大约 30 分钟来解决这个问题,终于弄明白了。

      在 Windows 中: 转至Project -> Assembly C-Sharp Options

      然后从那里更改代码格式!

      转到Project -> Solution Options 绝对没有任何作用

      【讨论】:

      • 我可以更改选项,这不是问题。问题是每次 Unity 重新生成我的解决方案时,代码格式化策略都会重置为默认值。我想以某种方式覆盖默认值。
      【解决方案5】:

      在处理了一年之后,我们编写了一个 Unity 编辑器脚本,它会监视项目文件的变化,当它们发生变化时,检查项目中的策略条目(非常简单的 XML 解析。)如果它们有偏差根据我们想要的政策,我们会修改它们并使用正确的政策更改将它们写回。

      另一个想法(我们想强制执行一项政策)是做同样的事情,但只要在项目更新时从项目中删除政策条目,然后您将永远不会让项目政策覆盖您设置的内容工具级别。

      【讨论】:

        猜你喜欢
        • 2016-12-12
        • 2023-02-20
        • 1970-01-01
        • 2011-05-01
        • 2016-01-14
        • 1970-01-01
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多