上文讲了 Buf lint 命令的基础方法,本文将介绍 Buf lint 命令的一些常用配置。

如果你的项目中没有 buf.yaml 配置文件, Buf lint 会提供一个默认的配置文件,默认内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
version: v1
lint:
  use:
    - DEFAULT
  except:
    - FILE_LOWER_SNAKE_CASE
  ignore:
    - bat
    - ban/ban.proto
  ignore_only:
    ENUM_PASCAL_CASE:
      - foo/foo.proto
      - bar
    BASIC:
      - foo
  enum_zero_value_suffix: _UNSPECIFIED
  rpc_allow_same_request_response: false
  rpc_allow_google_protobuf_empty_requests: false
  rpc_allow_google_protobuf_empty_responses: false
  service_suffix: Service
  allow_comment_ignores: true

配置选项

接下来开始介绍 Buf lint 命令的配置选项。

use

use 选项配置 lint 的类别,不同类别有相应的规则,有多种类别:DEFAULT、FILE_LOWER_SNAKE_CASE、BASIC等。 默认是 DEFAULT 类别。

except

except 选项配置 lint 不使用的类别。

下面的配置,显示使用 DEFAULT 类别,但是不使用 ENUM_NO_ALLOW_ALIAS ,BASIC类别中的规则。

1
2
3
4
5
6
7
version: v1
lint:
  use:
    - DEFAULT
  except:
    - ENUM_NO_ALLOW_ALIAS
    - BASIC

ignore

ignore 选项指定忽略的文件,可以是文件名,也可以是目录,注意路径是要相对于 buf.yaml 文件的。

ignore_only

ignore_only 与 ignore 选项类似,但是只有指定的类别才忽略。

1
2
3
4
5
6
7
8
version: v1
lint:
  ignore_only:
    ENUM_PASCAL_CASE:
      - foo/foo.proto
      - bar
    BASIC:
      - foo

allow_comment_ignores

allow_comment_ignores 的作用是在 proto 文件中通过注释忽略 lint.

service_suffix

默认情况下 lint 都会检测 service 是否以 Service 结尾,如果不想要这个规则,可以配置 service_suffix 选项以显示规定后缀。