ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Style guides > 原文:[https://docs.gitlab.com/ee/development/contributing/style_guides.html](https://docs.gitlab.com/ee/development/contributing/style_guides.html) * [Editor/IDE styling standardization](#editoride-styling-standardization) * [Pre-commit static analysis](#pre-commit-static-analysis) * [Ruby, Rails, RSpec](#ruby-rails-rspec) * [Creating new RuboCop cops](#creating-new-rubocop-cops) * [Database migrations](#database-migrations) * [JavaScript](#javascript) * [SCSS](#scss) * [Go](#go) * [Shell commands (Ruby)](#shell-commands-ruby) * [Shell scripting](#shell-scripting) * [Markdown](#markdown) * [Documentation](#documentation) * [Python](#python) * [Misc](#misc) # Style guides[](#style-guides "Permalink") ## Editor/IDE styling standardization[](#editoride-styling-standardization "Permalink") 在将文件保存到本地之前,我们使用[EditorConfig](https://editorconfig.org/)自动应用某些样式标准. 默认情况下,大多数编辑器/ IDE 都会自动接受`.editorconfig`设置. 如果您的编辑器/ IDE 不自动支持`.editorconfig` ,建议您进行调查以查看是否存在插件. 例如,这里是[vim](https://github.com/editorconfig/editorconfig-vim)的[插件](https://github.com/editorconfig/editorconfig-vim) . ## Pre-commit static analysis[](#pre-commit-static-analysis "Permalink") 强烈建议您安装[Overcommit](https://github.com/sds/overcommit) ,以便在本地提交之前自动检查静态分析违规. 在您的 GitLab 源目录中运行: ``` make -C tooling/overcommit ``` Then before a commit is created, Overcommit will automatically check for RuboCop (and other checks) offenses on every modified file. 这样可以节省您的时间,因为您不必等待配置项检测到相同的错误. 过量提交依赖于预提交钩子,以防止违反其规则集的提交. 如果您想覆盖此行为,可以通过传递 ENV 变量`OVERCOMMIT_DISABLE`来完成. 即`OVERCOMMIT_DISABLE=1 git rebase master`在禁用 Git 钩子的同时进行 rebase. ## Ruby, Rails, RSpec[](#ruby-rails-rspec "Permalink") 我们的代码库样式由[RuboCop](https://github.com/rubocop-hq/rubocop)定义和执行. 您可以使用`bundle exec rubocop --parallel`在本地检查任何违规行为. 在配置项上,这将由`static-analysis`作业自动检查. 对于尚未决定的 RuboCop 规则,我们遵循[Ruby Style Guide](https://github.com/rubocop-hq/ruby-style-guide) , [Rails Style Guide](https://github.com/rubocop-hq/rails-style-guide)和[RSpec Style Guide](https://github.com/rubocop-hq/rspec-style-guide)作为编写惯用 Ruby / Rails / RSpec 的通用准则,但是审阅者/维护者应该宽容而不是太宽容关于风格的书呆子. 同样,当前已禁用某些 RuboCop 规则,对于这些规则,审阅者/维护者不得要求作者使用一种或另一种样式,因为这两种样式均被接受. 这不是理想的情况,因为这为[骑车](https://en.wiktionary.org/wiki/bikeshedding)留下了空间,并且理想情况下,我们应该启用所有 RuboCop 规则,以避免在评论中进行与样式相关的讨论/挑剔/来回. 此外,我们还有专门的[换行样式指南](../newlines_styleguide.html) ,以及专门针对[测试的样式指南和最佳实践](../testing_guide/index.html) . ### Creating new RuboCop cops[](#creating-new-rubocop-cops "Permalink") 通常,最好通过编程方式执行起毛规则,因为它可以减少前述的[自行车脱落](https://en.wiktionary.org/wiki/bikeshedding) . 为此,我们鼓励在代码库中创建新的 RuboCop 规则. 当创建可以应用于多个应用程序的新警察时,我们建议您将其添加到我们的[GitLab Styles](https://gitlab.com/gitlab-org/gitlab-styles)宝石中. ## Database migrations[](#database-migrations "Permalink") 请参阅专用的《 [数据库迁移样式指南》](../migration_style_guide.html) . ## JavaScript[](#javascript "Permalink") 请参阅专用的[JS 样式指南](../fe_guide/style/javascript.html) . ## SCSS[](#scss "Permalink") 请参阅专用的[SCSS 样式指南](../fe_guide/style/scss.html) . ## Go[](#go "Permalink") 请参阅专用的[Go 标准和样式指南](../go_guide/index.html) . ## Shell commands (Ruby)[](#shell-commands-ruby "Permalink") 请参阅[GitLab 代码库中有关 shell 命令](../shell_commands.html)的专用[准则](../shell_commands.html) . ## Shell scripting[](#shell-scripting "Permalink") 请参阅专用的[Shell 脚本标准和样式指南](../shell_scripting_guide/index.html) . ## Markdown[](#markdown "Permalink") 我们正在遵循[Ciro Santilli 的 Markdown 样式指南](https://cirosantilli.com/markdown-style-guide/) . ## Documentation[](#documentation "Permalink") 请参阅专用的[文档样式指南](../documentation/styleguide.html) . ## Python[](#python "Permalink") 请参阅专用的[Python 开发指南](../python_guide/index.html) . ## Misc[](#misc "Permalink") 代码应使用[美国英语](https://en.wikipedia.org/wiki/American_English)书写. * * * [Return to Contributing documentation](index.html)