SublimeLinter 是什么?
SublimeLinter 是一个 Sublime Text 3 上的代码诊断框架,用于代码错误和不良的代码风格高亮提示。
值得注意的是,它只是个框架,接口,不包含具体某种语言的诊断,针对特定语言代码的诊断需要依赖以它为基础的插件,
比如 ES6 的SublimeLinter-contrib-eslint-d
, Ruby 的 SublimeLinter-contrib-ruby-lint
, 等等。
SublimeLinter 安装
- 使用命令
cmd+shift+p
打开命令面板( Linux/Windows 使用ctrl+shift+p
)。 - 选择
Package Control: Install Package
项 。 - 在可用 Sublime 插件包列表中输入
linter
, 选择SublimeLinter
。 - 安装完毕,重启 Sublime 。
SublimeLinter 配置
Tools -> SublimeLinter -> Lint Mode -> Save only
Tools -> SublimeLinter -> Mark Style -> Outline
具体 linter 插件安装
按照如上 SublimeLinter 安装
方式,在 Sublime 插件包列表中输入 SublimeLinter-
, 就能找到你想要的语言插件了。
至此,你已可以在 Sublime 中愉快使用 linter 了。
这么好的东西,你还等什么,赶快去安装吧!
PS: 以下是我们项目中 ES6 和 Ruby 规则的配置文件,(配置文件放在项目根目录下):
.eslintrc
{
"extends": "airbnb",
"rules": {
"valid-jsdoc": 2,
// Disable until Flow supports let and const
"no-var": 0,
"vars-on-top": 0,
// Disable Airbnb-specific rules unless need to support it
"comma-dangle": 0,
"id-length": 0,
// Disable in prefer to single quote for consistence
"jsx-quotes": 0,
// Disable temporarily
"react/prop-types": 0,
// Disable cause of the name convention of Redux actions and action creators
"no-shadow": 0,
"no-unused-expressions": [2, { allowTernary: true }]
}
}
.rubocop.yml
AllCops:
RunRailsCops: true
DisplayCopNames: true
DisplayStyleGuide: true
Style/ClassAndModuleChildren:
Description: 'Checks style of children classes and modules.'
Enabled: false
Metrics/ClassLength:
Description: 'Avoid classes longer than 100 lines of code.'
Enabled: false
Metrics/ModuleLength:
Description: 'Avoid modules longer than 100 lines of code.'
Enabled: false
Style/Documentation:
Description: 'Document classes and non-namespace modules.'
Enabled: false
Style/HashSyntax:
Description: >-
Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
{ :a => 1, :b => 2 }.
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals'
Enabled: true
Metrics/MethodLength:
CountComments: false # count full line comments?
Max: 20
Metrics/LineLength:
Max: 120
# To make it possible to copy or click on URIs in the code, we allow lines
# contaning a URI to be longer than Max.
AllowURI: true
URISchemes:
- http
- https
Style/StringLiterals:
Enabled: false
Style/SpaceInsideHashLiteralBraces:
Description: "Use spaces inside hash literal braces - or don't."
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
Enabled: false
Style/BracesAroundHashParameters:
Description: 'Enforce braces style around hash parameters.'
Enabled: false
Lint/AssignmentInCondition:
Enabled: false
Style/AlignParameters:
EnforcedStyle: with_fixed_indentation
SupportedStyles:
- with_first_parameter
- with_fixed_indentation
Style/SingleSpaceBeforeFirstArg:
Description: >-
Checks that exactly one space is used between a method name
and the first argument for method calls without parentheses.
Enabled: false
Style/RescueModifier:
Description: 'Avoid using rescue in its modifier form.'
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers'
Enabled: false