Naming policy¶
Thanks to lh-style, we can define how the names of functions, classes, constants, attributes, etc. shall be written: in
UpperCamelCase
, in lowerCamelCase
, in snake_case
, or in Any_otherStyle
).
This information can then be retrieved by plugins through the Naming API.
This information can also be used from :NameConvert
and :ConvertNames
commands.
NB: both commands support command-line auto-completion on naming policy names.
:NameConvert policy
¶
:NameConvert
converts the identifier under the cursor to one of the following naming policies:
- naming styles:
upper_camel_case
/UpperCamelCase
,lower_camel_case
/lowerCamelCase
,underscore
/snake
,UPPER_CASE
/SCREAMING_SNAKE_CASE
,variable
, - identifier kinds:
getter
,setter
,local
,global
,member
,static
,constant
,param
(the exact conversion process can be tuned thanks to the following options).
:[range]ConvertNames/pattern/policy/[flags]
¶
ConvertNames
transforms according to the policy
all names that match the pattern
– it
applies :NameConvert
on text matched by :substitute
.
See :h :s_flags regarding possible flags
.
Options to tune the naming policy¶
Naming conventions can be defined to:
- Control prefix and suffix on:
- variables (main name)
- global and local variables
- member and static variables
- (formal) parameters
- constants
- getters and setters
- types
- Control the case policy (
snake_case
,UpperCamelCase
,lowerCamelCase
,SCREAMING_SNAKE_CASE
) on functions (and thus on setters and getters too) and types.
It is done, respectively, with the following options:
- regarding prefix and suffix:
(bpg):[{ft}_]naming_strip_re
and(bpg):[{ft}_]naming_strip_subst
,(bpg):[{ft}_]naming_global_re
,(bpg):[{ft}_]naming_global_subst
,(bpg):[{ft}_]naming_local_re
, and(bpg):[{ft}_]naming_local_subst
,(bpg):[{ft}_]naming_member_re
,(bpg):[{ft}_]naming_member_subst
,(bpg):[{ft}_]naming_static_re
, and(bpg):[{ft}_]naming_static_subst
,(bpg):[{ft}_]naming_param_re
, and(bpg):[{ft}_]naming_param_subst
,(bpg):[{ft}_]naming_constant_re
, and(bpg):[{ft}_]naming_constant_subst
,(bpg):[{ft}_]naming_get_re
,(bpg):[{ft}_]naming_get_subst
,(bpg):[{ft}_]naming_set_re
, and(bpg):[{ft}_]naming_set_subst
(bpg):[{ft}_]naming_type_re
, and(bpg):[{ft}_]naming_type_subst
,
- regarding case:
(bpg):[{ft}_]naming_function
(bpg):[{ft}_]naming_type
Once in the main name form, the ..._re
regex options match the main name while the ..._subst
replacement text is applied instead.
You can find examples for these options in mu-template
template
used by BuildToolsWrapper’s :BTW new_project
command.