如何设置在各种 IDE 中使用的默认 linter
Posted
技术标签:
【中文标题】如何设置在各种 IDE 中使用的默认 linter【英文标题】:How to set a default linter to be used across various IDEs 【发布时间】:2021-09-02 13:48:00 【问题描述】:这可能非常简单,但我不知道如何用这个词来有效地谷歌。
我希望为我的 python/flask/javascript 项目设置默认代码样式/linter。我有人使用不同的 IDE,所以有时在 VSCode 上格式良好的代码在 PyCharm 上会被标记不同。
是否有某种我可以创建的设置文件会导致任何 IDE 读取它并使用设置的 linter?我四处搜索,只发现人们通过他们的 IDE 设置他们的 linter
我希望将 PEP8 用于 python,但还没有决定使用 JavaScript linter。
【问题讨论】:
您可以尝试 editorconfig,但我认为您只需要告诉您的团队使用什么 linter,然后在存储库中提供 linting 规则。 editorconfig.org 【参考方案1】:我是否可以创建某种设置文件以使任何 IDE 读取它并使用设置的 linter?
不,没有一种解决方案可以涵盖所有 IDE 和所有 linter。不过,最流行的 lint 工具确实为最流行的编辑器提供了跨平台说明,描述了如何充分利用它们。
标准化脚本
可以指定脚本来执行假定每个人都拥有的特定共享 linter;例如,一个 Javascript 项目的package.json 可能有一个lint
script that runs eslint 和installs eslint in devDependencies
,一个项目特定的eslint config file 可以提交给版本控制,所以每个人都有相同的配置。 (对于测试框架、格式化实用程序或其他任何东西也是如此。)
如果每个人的 IDE(或本地构建链,或预提交挂钩等)都配置为执行 npm run lint
或 make lint
或类似的,而不是某些本机/专有工具,那么您已成功指定默认值。这些选择被签入源代码控制,并保持一致并可供所有人使用;挑战在于确保其他开发人员的环境尊重此默认设置。
标准化插件和插件设置
一些 IDE 扩展,例如 ESLint for VSCode (dbaeumer.vscode-eslint
),会查看您的环境并自动为您运行适当的工具;有些在键入、保存、构建或提交时操作。其中一些可能不使用您的包/模块/项目元数据,而是寻找工具及其配置的存在(例如,PATH 或 node_modules 中的eslint
和项目目录中的.eslint.json
或类似内容)。通过使用您的代码such as .vscode/extensions.json
提交 IDE 扩展配置,一些不相关的 IDE 可以在可自定义的编辑器及其插件的帮助下共享它们的 linting 行为。
请注意,转换工具(例如 Python 的 black
)属于稍微不同的类别;许多 linter 可以配置为自动更正某些问题,其行为几乎类似于格式化程序,但您可能在问题中将格式化和 linting 混为一谈,因此请注意区别。
附:很长一段时间以来,可重现和可预测的开发环境一直是人们普遍关注的问题,如今确实有成百上千的解决方案。一些团队仍然共享开发虚拟机/容器 à la vagrant 和 docker;一些团队使用云 IDE 或文件共享将规定的设置同步到每台开发机器;并且大多数人维护一个 wiki 文章或 README 文件,记录设置自己的环境以符合团队期望的步骤。
【讨论】:
以上是关于如何设置在各种 IDE 中使用的默认 linter的主要内容,如果未能解决你的问题,请参考以下文章
如何将 pep8 linter 设置为接受 2 个空格缩进?
如何在 Jupyter Notebooks 中使用 Pylint 或其他 linter?