|
| 1 | +# 诊断选项 |
| 2 | + |
| 3 | +大部分的格式化选项会有诊断的属性,除此以外诊断有额外的选项,这些选项并不影响格式化。 |
| 4 | +## enable_check_codestyle |
| 5 | + |
| 6 | +是否开启代码诊断 可选值为 true/false。 |
| 7 | + |
| 8 | +## max_line_length |
| 9 | + |
| 10 | +代表最大行宽检测,该选项不会影响格式化,默认值是120。 |
| 11 | + |
| 12 | +## insert_final_newline |
| 13 | + |
| 14 | +该选项表示lua文档是否应该以新行结束,该选项的名称来自于editorconfig的标准定义默认值为true,代码格式化算法必然会以新行结束,所以该选项只是用于诊断。 |
| 15 | + |
| 16 | +# 命名风格检查 |
| 17 | + |
| 18 | +算法支持对名称定义处实现基本的风格检查,较为复杂的校验逻辑在设计出插件系统之后可以开放。所有校验逻辑之间可以用'|'表示'或'运算,基本的校验逻辑包括: |
| 19 | +* off 什么都不做 |
| 20 | +* camel_case 小驼峰命名法 |
| 21 | +* pascal_case 大驼峰命名法 |
| 22 | +* snake_case 蛇形命名法 |
| 23 | +* upper_snake_case 全大写的蛇形命名法 |
| 24 | + |
| 25 | +复杂的校验逻辑以函数的形式表示: |
| 26 | +1. same(arg1, arg2) 该形式表示以arg2的形式和arg1相同,arg2支持的变量仅有: |
| 27 | + * snake_case 以蛇形的方式 |
| 28 | + * pascal_case 以大驼峰命名法的形式 |
| 29 | + * camel_case 以小驼峰命名法的形式 |
| 30 | + |
| 31 | + arg1支持的方式有: |
| 32 | + |
| 33 | + * filename 表示和当前文件名相同,相同的方式不一定是全等,可以是以arg2的形式 |
| 34 | + * first_param 表示和相关的调用函数的第一个参数相同,也是允许以arg2规定的形式作用 |
| 35 | + * 字符串常量 表示和某个字符串常量相等例如 same('_M'),当arg1为字符串常量时,arg2参数无效 |
| 36 | + |
| 37 | +## enable_name_style_check |
| 38 | + |
| 39 | +该选项默认为false,表示是否开启命名风格检查 |
| 40 | + |
| 41 | +## local_name_define_style |
| 42 | + |
| 43 | +该选项表示local的名称定义列表中的名称应该符合什么样的命名规则,默认值是snake_case |
| 44 | + |
| 45 | +## function_param_name_style |
| 46 | + |
| 47 | +该选项表示函数定义时的参数命名规则默认值是snake_case |
| 48 | + |
| 49 | +## function_name_define_style |
| 50 | + |
| 51 | +该选项表示函数定义时的命名规则,此处所指的函数定义仅仅包含以下形式: |
| 52 | +* function fff() end |
| 53 | +* function ttt:ffff() end |
| 54 | + |
| 55 | +选项默认值是 snake_case |
| 56 | + |
| 57 | +## local_function_name_define_style |
| 58 | + |
| 59 | +该选项表示local函数定义时的的命名规则,此处唯一支持形式是:local function fff() end |
| 60 | + |
| 61 | +选项默认值是snake_case |
| 62 | + |
| 63 | +## table_field_name_define_style |
| 64 | + |
| 65 | +该选项表示表的field的命名规则,后面可能会演化分类,目前支持的形式是: |
| 66 | + |
| 67 | +```lua |
| 68 | +local t = { aa = 1312} |
| 69 | + |
| 70 | +t.bbb = 123 |
| 71 | +``` |
| 72 | + |
| 73 | +默认值是是snake_case,但是所有元方法的名称不在规则限制内。 |
| 74 | + |
| 75 | +## global_variable_name_define_style |
| 76 | + |
| 77 | +表示全局变量的名称定义风格默认值是 snake_case|upper_snake_case |
| 78 | + |
| 79 | +## module_name_define_style |
| 80 | + |
| 81 | +表示模块的名称定义风格,对模块变量的识别规则是: |
| 82 | +以在文件作用域中任意local定义的名称作为文件作用域中的return语句的第一个参数。 |
| 83 | + |
| 84 | +默认选项是 same('m')|same(filename, snake_case) |
| 85 | + |
| 86 | +## require_module_name_style |
| 87 | + |
| 88 | +表示模块的导入语句中定义的名称,语句的识别原则是: |
| 89 | +形如 |
| 90 | +```lua |
| 91 | +local m = require "aaa.bbb.ccc" |
| 92 | +``` |
| 93 | +的lua语句中的m,支持的函数目前有require和import |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | +默认值是 same(first_param, snake_case) |
| 98 | + |
| 99 | +## class_name_define_style |
| 100 | + |
| 101 | +表示类定义的命名规则,类定义的识别原则是: |
| 102 | +形如 |
| 103 | +```lua |
| 104 | +local c = class "c" |
| 105 | +``` |
| 106 | +的lua语句中的c,支持的函数目前有Class和class |
| 107 | + |
| 108 | +默认值是 same(filename, snake_case) |
0 commit comments