Skip to content

Commit

Permalink
Add tools check coding convention
Browse files Browse the repository at this point in the history
  • Loading branch information
silabs-hieuhoang committed Nov 15, 2024
1 parent e7b3b80 commit 4fd26da
Show file tree
Hide file tree
Showing 8 changed files with 279 additions and 2 deletions.
27 changes: 27 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

exclude: ^(docs|site|assets|pictures|simplicity_sdk|test/test_script|log|sample|cmake|components|lib/inc/coding_standard.h|lib/inc/silabs_license_agreement.h|lib/inc/sl_iec60730_library_documentation.h|README.md)
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/codespell-project/codespell
rev: v2.2.4
hooks:
- id: codespell
args: [-w,--config,./tools/.codespell/.codespellrc]
- repo: https://github.com/pocc/pre-commit-hooks
rev: v1.3.5
hooks:
- id: uncrustify
args: [-c,./tools/uncrustify.cfg,-lC,--no-backup,--replace]
- id: clang-tidy
args:
- --config-file=./tools/.clang-tidy
- --use-color
- --extra-arg=-Iusr/include
- --header-filter:'^((?!test).)*$'
- -p=./build
- id: cppcheck
args: [--language=c,--std=c99,--check-config,-DSL_IEC60730_BOARD_HEADER="sl_iec60730_board.h",--suppress=missingInclude,--suppress=unmatchedSuppression]
2 changes: 0 additions & 2 deletions docs/coding_convention_tool.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
> [!NOTE]
> This is a code formatter tool that helps ensure consistent coding style and detects common issues in source code files.
It integrates with pre-commit, allowing you to automate code formatting and checks as part of your development workflow.
>
> **Currently it is only used internally for checking during development, not publicly available.**

- See details rule check in folder tools: [tools]().

Expand Down
8 changes: 8 additions & 0 deletions docs/release_note.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,14 @@ This release contains the following components:

- <repo>*.xml


----------------
Coding Convention

- <repo>/tools

- <repo>.pre-commit-config.yaml

----------------

## Revision History
Expand Down
50 changes: 50 additions & 0 deletions tools/.clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
Checks: >
-*,
readability-identifier-naming,
readability-magic-numbers,
readability-braces-around-statements
WarningsAsErrors: >
readability-identifier-naming,
readability-magic-numbers,
readability-braces-around-statements
HeaderFilterRegex: ''
FormatStyle: none
InheritParentConfig: true
User: user
CheckOptions:
- key: readability-identifier-naming.VariableCase
value: lower_case
- key: readability-identifier-naming.GlobalConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.GlobalConstantPrefix
value: SL_
- key: readability-identifier-naming.ConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.ConstantPrefix
value: SL_
- key: readability-identifier-naming.EnumConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.EnumConstantPrefix
value: SL_
- key: readability-identifier-naming.EnumCase
value: lower_case
- key: readability-identifier-naming.EnumPrefix
value: sl_
- key: readability-identifier-naming.FunctionIgnoredRegexp
value: 'sli_.*'
- key: readability-identifier-naming.FunctionCase
value: lower_case
- key: readability-identifier-naming.FunctionPrefix
value: 'sl_'
- key: readability-identifier-naming.StructCase
value: lower_case
- key: readability-identifier-naming.StructPrefix
value: 'sl_'
- key: readability-identifier-naming.StructMemberCase
value: lower_case
- key: readability-identifier-naming.TypedefCase
value: lower_case
- key: readability-identifier-naming.TypedefPrefix
value: 'sl_'
10 changes: 10 additions & 0 deletions tools/.codespell/.codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# See: https://github.com/codespell-project/codespell#using-a-config-file
[codespell]
# In the event of a false positive, add the problematic word, in all lowercase, to 'ignore-words.txt' (one word per line).
# Or copy & paste the whole problematic line to 'exclude-file.txt'
ignore-words = ./tools/.codespell/ignore-words.txt
exclude-file = ./tools/.codespell/exclude-file.txt
check-filenames =
check-hidden =
count =
skip = .git,*.a,
Empty file.
2 changes: 2 additions & 0 deletions tools/.codespell/ignore-words.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
teh
foobar
182 changes: 182 additions & 0 deletions tools/uncrustify.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
# uncrustify.cfg version 1.0.0

tok_split_gte=false
utf8_byte=false
utf8_force=true
indent_cmt_with_tabs=false
indent_align_string=true
indent_braces=false
indent_braces_no_func=false
indent_braces_no_class=false
indent_braces_no_struct=false
indent_brace_parent=false
indent_namespace=false
indent_extern=false
indent_class=true
indent_class_colon=false
indent_else_if=false
indent_var_def_cont=false
indent_func_call_param=false
indent_func_def_param=false
indent_func_proto_param=false
indent_func_class_param=false
indent_func_ctor_var_param=false
indent_template_param=false
indent_func_param_double=false
indent_relative_single_line_comments=false
indent_col1_comment=false
indent_access_spec_body=false
indent_paren_nl=false
indent_comma_paren=false
indent_bool_paren=false
indent_first_bool_expr=false
indent_square_nl=false
indent_preserve_sql=false
indent_align_assign=true
sp_balance_nested_parens=false
align_keep_tabs=false
align_with_tabs=false
align_on_tabstop=false
#align_number_left=false
align_func_params=false
align_same_func_call_params=false
align_var_def_colon=false
align_var_def_attribute=false
align_var_def_inline=false
align_right_cmt_mix=false
align_on_operator=false
align_mix_var_proto=false
align_single_line_func=false
align_single_line_brace=false
align_nl_cont=true
align_left_shift=true
align_oc_decl_colon=false
nl_collapse_empty_body=false
nl_assign_leave_one_liners=false
nl_class_leave_one_liners=false
nl_enum_leave_one_liners=false
nl_getset_leave_one_liners=false
nl_func_leave_one_liners=false
nl_if_leave_one_liners=false
nl_multi_line_cond=false
nl_multi_line_define=false
nl_before_case=false
nl_after_case=false
nl_after_return=false
nl_after_semicolon=false
nl_after_brace_open=false
nl_after_brace_open_cmt=false
nl_after_vbrace_open=false
nl_after_vbrace_open_empty=false
nl_after_brace_close=false
nl_after_vbrace_close=false
nl_define_macro=false
nl_squeeze_ifdef=false
nl_ds_struct_enum_cmt=false
nl_ds_struct_enum_close_brace=false
nl_create_if_one_liner=false
nl_create_for_one_liner=false
nl_create_while_one_liner=false
ls_for_split_full=false
ls_func_split_full=true
nl_after_multiline_comment=false
eat_blanks_after_open_brace=true
eat_blanks_before_close_brace=true
mod_full_brace_if_chain=false
mod_pawn_semicolon=false
mod_full_paren_if_bool=false
mod_remove_extra_semicolon=false
mod_sort_import=false
mod_sort_using=false
mod_sort_include=false
mod_move_case_break=false
mod_remove_empty_return=false
cmt_indent_multi=true
cmt_c_group=false
cmt_c_nl_start=false
cmt_c_nl_end=false
cmt_cpp_group=false
cmt_cpp_nl_start=false
cmt_cpp_nl_end=false
cmt_cpp_to_c=false
cmt_star_cont=false
cmt_multi_check_last=true
cmt_insert_before_preproc=false
pp_indent=ignore
pp_if_indent_code=false
input_tab_size=2
indent_columns=2
indent_label=0
align_pp_define_span=0
nl_start_of_file=remove
nl_end_of_file_min=1
code_width=0
nl_max=2
nl_comment_func_def=1
cmt_width=0
utf8_bom=remove
indent_with_tabs=0
sp_before_assign=add
sp_after_assign=add
sp_bool=add
sp_compare=add
sp_inside_paren=remove
sp_before_sparen=force
sp_paren_paren=ignore
sp_inside_sparen=ignore
sp_after_sparen=force
sp_before_square=remove
sp_before_squares=remove
sp_inside_square=remove
sp_after_comma=force
sp_before_comma=remove
sp_paren_comma=remove
sp_inside_braces=add
sp_inside_braces_empty=remove
sp_func_def_paren=remove
sp_inside_fparen=remove
sp_func_call_paren=remove
sp_func_call_paren_empty=remove
sp_else_brace=force
sp_brace_else=force
sp_sign=remove
sp_incdec=remove
sp_cmt_cpp_start=ignore
sp_endif_cmt=force
nl_end_of_file=add
nl_enum_brace=remove
nl_struct_brace=remove
nl_union_brace=remove
nl_for_brace=remove
nl_brace_finally=remove
nl_while_brace=remove
nl_do_brace=remove
nl_brace_while=remove
nl_switch_brace=remove
nl_if_brace=remove
nl_brace_else=remove
nl_elseif_brace=remove
nl_else_brace=remove
nl_fdef_brace=add
mod_full_brace_do=force
mod_full_brace_if=force
mod_full_brace_while=ignore
mod_full_brace_for=force
mod_full_brace_function=force
sp_cmt_cpp_doxygen=true
cmt_sp_after_star_cont=3
align_keep_extra_space=True
align_var_def_star_style=1
align_var_def_amp_style=1
sp_after_type=ignore
pos_arith=lead
pos_bool=lead
pos_compare=lead
pos_conditional=lead
pos_comma=trail
sp_arith=add
sp_assign=add
sp_pp_concat=ignore
# Indent the 'case' label from the 'switch' header (coding standard §4.4.3)
# Note: Must come *after* the declaration of 'indent_columns'!
indent_switch_case=indent_columns

0 comments on commit 4fd26da

Please sign in to comment.