【问题标题】:Specify path to CustomDictionary file for StyleCop spellchecking为 StyleCop 拼写检查指定 CustomDictionary 文件的路径
【发布时间】:2012-09-22 20:31:22
【问题描述】:
在最新版本的 StyleCop 中添加了对 cmets 的拼写检查。看来我可以用 StyleCop 重用我现有的 CustomDictionary 文件(我为 FxCop 创建的)。 SA1650 规则documentation 并没有说这是可能的。但在 release notes 版本 4.7.39 我看到了
在 settings.StyleCop 中添加对指定字典文件夹的支持
文件。
如何配置 StyleCop 以在我的解决方案的根文件夹中搜索此文件?
【问题讨论】:
标签:
c#
.net
spell-checking
stylecop
【解决方案1】:
在我的例子中,当我在 .csproj 文件旁边的 Settings.StyleCop 文件中指定自定义字典条目时,它起作用了。
<GlobalSettings>
<StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
<CollectionProperty Name="RecognizedWords">
<Value>word1</Value>
<Value>word2</Value>
...
</CollectionProperty>
</GlobalSettings>
实际上,StyleCopSettingsEditor.exe 实用程序为我创建了这些设置。我使用 Visual Studio 中项目的上下文菜单打开它,使用“StyleCop 设置”菜单项。
【解决方案2】:
在您的解决方案根目录中添加一个名为Settings.StyleCop 的文件,其内容如下:
<StyleCopSettings Version="105">
<GlobalSettings>
<CollectionProperty Name="DictionaryFolders">
<Value>**my-dictionary-folder**</Value>
</CollectionProperty>
</GlobalSettings>
</StyleCopSettings>
您将 my-dictionary-folder 替换为包含您的 CustomDictionary.xml 文件的文件夹的相对路径。
【解决方案3】:
根据 StyleCop 文档的规则 SA1650
CustomDictionary.xml 文件应与 StyleCop.dll 和规则放在同一文件夹中。检查该文件夹(和所有子文件夹)的字典文件。
StyleCop 加载 CustomDictionary.xml、CustomDictionary.en-GB.xml,然后加载 CustomDictionary.en.xml(其中 en-GB 是 Settings.StyleCop 文件中指定的区域性)。
StyleCop 还加载 custom.dic、custom.en-GB.dic 和 custom.en.dic(其中 en-GB 是 Settings.StyleCop 文件中指定的区域性)。
还可以使用拼写选项卡上的设置编辑器将识别的单词添加到 Settings.StyleCop 文件中。
因此,您似乎必须将 CustomDictionary.xml 的副本放在该特定位置而不是解决方案文件夹的根目录中。