credo
A static code analysis tool for the Elixir language with a focus on code consistency and teaching.
File Explorer
Download Latest Version (.zip)- devcontainer.json
- ci-workflow.yml
- code-scan-sarif.yml
- compatibility-canary-smoke-tests.yml
- compatibility-elixir.yml
- compatibility-os-mac.yml
- compatibility-os-windows.yml
- compatibility-phoenix.yml
- housekeeping-bugfix-reproducer.yml
- housekeeping-regression.yml
- housekeeping.yml
- credo-logo-with-trail-and-writing.png
- credo-logo-with-trail.png
- credo-logo.png
- screenshot.png
- config.exs
- diff_command.md
- explain_command.md
- list_command.md
- suggest_command.md
- check_params.md
- cli_switches.md
- config_comments.md
- config_file.md
- adding_checks.md
- improving_checks.md
- testing_checks.md
- basic_usage.md
- exit_statuses.md
- installation.md
- mix_tasks.md
- overview.md
- creating_plugins.md
- using_plugins.md
- collector.ex
- collector.ex
- collector.ex
- collector.ex
- collector.ex
- space_helper.ex
- collector.ex
- collector.ex
- collector.ex
- collector.ex
- exception_names.ex
- line_endings.ex
- multi_alias_import_require_use.ex
- parameter_pattern_matching.ex
- space_around_operators.ex
- space_in_parentheses.ex
- tabs_or_spaces.ex
- unused_variable_names.ex
- alias_usage.ex
- deprecated_checks_config.ex
- duplicated_code.ex
- missing_check_in_config.ex
- redundant_config_comments.ex
- skip_test_without_comment.ex
- tag_fixme.ex
- tag_helper.ex
- tag_helper_deprecated.ex
- tag_todo.ex
- alias_as.ex
- alias_order.ex
- block_pipe.ex
- capture_operator.ex
- function_names.ex
- impl_true.ex
- large_numbers.ex
- max_line_length.ex
- module_attribute_names.ex
- module_doc.ex
- module_names.ex
- multi_alias.ex
- nested_function_calls.ex
- one_arity_function_in_pipe.ex
- one_pipe_per_line.ex
- parentheses_in_condition.ex
- parentheses_on_zero_arity_defs.ex
- pipe_into_anonymous_functions.ex
- predicate_function_names.ex
- prefer_implicit_try.ex
- prefer_unquoted_atoms.ex
- redundant_blank_lines.ex
- semicolons.ex
- separate_alias_require.ex
- single_function_to_block_pipe.ex
- single_pipe.ex
- space_after_commas.ex
- spec_parameter_names.ex
- specs.ex
- strict_module_layout.ex
- string_sigils.ex
- trailing_blank_line.ex
- trailing_white_space.ex
- unnecessary_alias_expansion.ex
- unused_function_parameter_pattern.ex
- variable_names.ex
- with_custom_tagged_tuple.ex
- with_single_clause.ex
- abc_size.ex
- append_single_item.ex
- apply.ex
- case_trivial_matches.ex
- cond_instead_of_if_else.ex
- cond_statements.ex
- cyclomatic_complexity.ex
- double_boolean_negation.ex
- enum_helpers.ex
- filter_count.ex
- filter_filter.ex
- filter_reject.ex
- function_arity.ex
- io_puts.ex
- long_quote_blocks.ex
- map_into.ex
- map_join.ex
- map_map.ex
- match_in_condition.ex
- module_dependencies.ex
- negated_conditions_in_unless.ex
- negated_conditions_with_else.ex
- negated_is_nil.ex
- nesting.ex
- pass_async_in_test_cases.ex
- perceived_complexity.ex
- pipe_chain_start.ex
- prefer_date_time_shift.ex
- redundant_with_clause_result.ex
- reject_filter.ex
- reject_reject.ex
- unless_with_else.ex
- utc_now_truncate.ex
- variable_rebinding.ex
- with_clauses.ex
- application_config_in_module_attribute.ex
- bool_operation_on_same_values.ex
- dbg.ex
- expensive_empty_enum_check.ex
- forbidden_function.ex
- forbidden_module.ex
- iex_pry.ex
- io_inspect.ex
- lazy_logging.ex
- leaky_environment.ex
- map_get_unsafe_pass.ex
- missed_metadata_key_in_logger_config.ex
- mix_env.ex
- operation_on_same_values.ex
- operation_with_constant_result.ex
- raise_inside_rescue.ex
- spec_with_struct.ex
- struct_field_amount.ex
- unsafe_exec.ex
- unsafe_to_atom.ex
- unused_enum_operation.ex
- unused_file_operation.ex
- unused_function_return_helper.ex
- unused_keyword_operation.ex
- unused_list_operation.ex
- unused_map_operation.ex
- unused_operation.ex
- unused_path_operation.ex
- unused_regex_operation.ex
- unused_string_operation.ex
- unused_tuple_operation.ex
- wrong_test_file_extension.ex
- wrong_test_filename.ex
- config_comment.ex
- config_comment_finder.ex
- context.ex
- params.ex
- runner.ex
- default.ex
- json.ex
- categories_command.ex
- categories_output.ex
- default.ex
- flycheck.ex
- json.ex
- oneline.ex
- filter_issues.ex
- filter_issues_for_exit_status.ex
- get_git_diff.ex
- print_before_info.ex
- print_results_and_summary.ex
- diff_command.ex
- diff_output.ex
- diff_summary.ex
- default.ex
- json.ex
- explain_command.ex
- explain_output.ex
- default.ex
- json.ex
- info_command.ex
- info_output.ex
- default.ex
- flycheck.ex
- json.ex
- oneline.ex
- sarif.ex
- list_command.ex
- list_output.ex
- default.ex
- flycheck.ex
- json.ex
- jsonl.ex
- oneline.ex
- sarif.ex
- suggest_command.ex
- suggest_output.ex
- gen.check.ex
- gen.config.ex
- help.ex
- version.ex
- flycheck.ex
- json.ex
- oneline.ex
- sarif.ex
- first_run_hint.ex
- format_delegator.ex
- shell.ex
- summary.ex
- ui.ex
- load_and_validate_source_files.ex
- prepare_checks_to_run.ex
- run_checks.ex
- set_relevant_issues.ex
- command.ex
- exit_status.ex
- filename.ex
- filter.ex
- options.ex
- output.ex
- sorter.ex
- switch.ex
- block.ex
- charlists.ex
- heredocs.ex
- interpolation_helper.ex
- module.ex
- name.ex
- parameters.ex
- scope.ex
- sigils.ex
- strings.ex
- token.ex
- token_ast_correlation.ex
- append_default_config.ex
- append_extra_config.ex
- assign_exit_status_for_issues.ex
- convert_cli_options_to_config.ex
- determine_command.ex
- initialize_command.ex
- initialize_plugins.ex
- parse_options.ex
- require_requires.ex
- run_command.ex
- set_default_command.ex
- use_colors.ex
- validate_config.ex
- validate_options.ex
- write_debug_report.ex
- execution_config_files.ex
- execution_issues.ex
- execution_source_files.ex
- execution_timing.ex
- task.ex
- timing.ex
- config_files.ex
- ets_table_helper.ex
- source_file_ast.ex
- source_file_lines.ex
- source_file_scope_priorities.ex
- source_file_scopes.ex
- source_file_source.ex
- assertions.ex
- case.ex
- check_runner.ex
- source_files.ex
- application.ex
- check.ex
- cli.ex
- code.ex
- config_builder.ex
- config_file.ex
- execution.ex
- exs_loader.ex
- issue.ex
- issue_meta.ex
- plugin.ex
- priority.ex
- severity.ex
- source_file.ex
- sources.ex
- watcher.ex
- credo.ex
- credo.gen.check.ex
- credo.gen.config.ex
- credo.ex
- collector_test.exs
- collector_test.exs
- collector_test.exs
- collector_test.exs
- exception_names_test.exs
- line_endings_test.exs
- multi_alias_import_require_use_test.exs
- parameter_pattern_matching_test.exs
- space_around_operators_test.exs
- space_in_parentheses_test.exs
- tabs_or_spaces_test.exs
- unused_variable_names_test.exs
- alias_usage_test.exs
- deprecated_checks_config_test.exs
- duplicated_code_test.exs
- missing_check_in_config_test.exs
- redundant_config_comments_test.exs
- skip_test_without_comment_test.exs
- tag_fixme_test.exs
- tag_helper_test.exs
- tag_todo_test.exs
- alias_as_test.exs
- alias_order_test.exs
- block_pipe_test.exs
- capture_operator_test.exs
- function_names_test.exs
- impl_true_test.exs
- large_numbers_test.exs
- max_line_length_test.exs
- module_attribute_names_test.exs
- module_doc_test.exs
- module_names_test.exs
- multi_alias_test.exs
- nested_function_calls_test.exs
- one_arity_function_in_pipe_test.exs
- one_pipe_per_line_test.exs
- parentheses_in_condition_test.exs
- parentheses_on_zero_arity_defs_test.exs
- pipe_into_anonymous_functions_test.exs
- predicate_function_names_test.exs
- prefer_implicit_try_test.exs
- prefer_unquoted_atoms_test.exs
- redundant_blank_lines_test.exs
- semicolons_test.exs
- separate_alias_require_test.exs
- single_function_to_block_pipe_test.exs
- single_pipe_test.exs
- space_after_commas_test.exs
- spec_parameter_names_test.exs
- specs_test.exs
- strict_module_layout_test.exs
- string_sigils_test.exs
- trailing_blank_line_test.exs
- trailing_white_space_test.exs
- unnecessary_alias_expansion_test.exs
- unused_function_parameter_pattern_test.exs
- variable_names_test.exs
- with_custom_tagged_tuple_test.exs
- with_single_clause_test.exs
- abc_size_test.exs
- append_single_item_test.exs
- apply_test.exs
- case_trivial_matches_test.exs
- cond_instead_of_if_else_test.exs
- cond_statements_test.exs
- cyclomatic_complexity_test.exs
- double_boolean_negation_test.exs
- filter_count_test.exs
- filter_filter_test.exs
- filter_reject_test.exs
- function_arity_test.exs
- io_puts_test.exs
- long_quote_blocks_test.exs
- map_into_test.exs
- map_join_test.exs
- map_map_test.exs
- match_in_condition_test.exs
- module_dependencies_test.exs
- module_size_test.exs
- negated_conditions_in_unless_test.exs
- negated_conditions_with_else_test.exs
- negated_is_nil_test.exs
- nesting_test.exs
- pass_async_in_test_cases_test.exs
- perceived_complexity_test.exs
- pipe_chain_start_test.exs
- prefer_date_time_shift_test.exs
- redundant_with_clause_result_test.exs
- reject_filter_test.exs
- reject_reject_test.exs
- unless_with_else_test.exs
- utc_now_truncate_test.exs
- variable_rebinding_test.exs
- with_clauses_test.exs
- application_config_in_module_attribute_test.exs
- bool_operation_on_same_values_test.exs
- dbg_test.exs
- expensive_empty_enum_check_test.exs
- forbidden_function_test.exs
- forbidden_module_test.exs
- iex_pry_test.exs
- io_inspect_test.exs
- lazy_logging_test.exs
- leaky_environment_test.exs
- map_get_unsafe_pass_test.exs
- missed_metadata_key_in_logger_config_test.exs
- mix_env_test.exs
- operation_on_same_values_test.exs
- operation_with_constant_result_test.exs
- raise_inside_rescue_test.exs
- spec_with_struct_test.exs
- struct_field_amount_test.exs
- unsafe_exec_test.exs
- unsafe_to_atom_test.exs
- unused_enum_operation_test.exs
- unused_file_operation_test.exs
- unused_keyword_operation_test.exs
- unused_list_operation_test.exs
- unused_map_operation_test.exs
- unused_operation_test.exs
- unused_path_operation_test.exs
- unused_regex_operation_test.exs
- unused_string_operation_test.exs
- unused_tuple_operation_test.exs
- wrong_test_file_extension_test.exs
- wrong_test_filename_test.exs
- config_comment_finder_test.exs
- housekeeping_check_ids.exs
- housekeeping_check_params.exs
- housekeeping_check_trigger.exs
- housekeeping_heredocs_in_tests.exs
- params_test.exs
- runner_test.exs
- gen.check_test.exs
- json_test.exs
- output_test.exs
- summary_test.exs
- ui_test.exs
- filename_test.exs
- options_test.exs
- sorter_test.exs
- block_test.exs
- charlists_test.exs
- heredocs_test.exs
- interpolation_helper_test.exs
- module_test.exs
- name_test.exs
- parameters_test.exs
- scope_test.exs
- sigils_test.exs
- strings_test.exs
- token_ast_correlation_test.exs
- token_test.exs
- assertions_test.exs
- check_runner_test.exs
- source_files_test.exs
- check_test.exs
- cli_test.exs
- code_test.exs
- config_file_test.exs
- config_test.exs
- execution_test.exs
- exs_loader_test.exs
- plugin_test.exs
- priority_test.exs
- source_file_test.exs
- sources_test.exs
- task_group_test.exs
- credotest.ex
- .credo.exs
- check_plugin.ex
- my_custom_check.ex
- .credo.exs
- browser.ex
- browser2.ex
- clean.ex
- clean_redux.ex
- foo.ex
- large_heredoc.ex
- nested_escaped_heredocs.ex
- .credo.exs
- example_plugin.ex
- .credo.exs
- .credo.exs
- bar.ex
- foo.ex
- applypatch-msg.sample
- commit-msg.sample
- fsmonitor-watchman.sample
- post-update.sample
- pre-applypatch.sample
- pre-commit.sample
- pre-push.sample
- pre-rebase.sample
- pre-receive.sample
- prepare-commit-msg.sample
- update.sample
- exclude
- 02a2715e3db943e9fffc8ed626025a136dbc4a
- df72ae94e2a666e0a7cbe5048e1833a357cfe5
- 6272d9408606a4b8f165fb149af23d60be026d
- 8f9317eb57724fccf09c74e0baa197bb12f7f2
- 3a6a1db133fc0f2960bac3983164d4f9a9c0c5
- 4df54614af76459e53a38d823f427cf63e2a18
- 210f45e4d1b0acdcc84355e2b97a58283000dc
- f8a14333a7420fe874edc720f4bfcc860c3ed6
- 73d949779e8dddc38d6a83c9e61783bd339db8
- 3d58ae9dc2f1605d42941db6b4758a04b17ac6
- 96e335044fa25ce25014326955c8bd29af5ec4
- 98e81bb3bc22abdda5761f14be6629685665bc
- 3fd798caaad39039c5f91b1cb31bc22ba15fc9
- f632647a8fdfe6b315ab8b57f7c4dc313913dc
- 9eeb29209cf8ffc7bcf8218a21ba2f342567ec
- 2b266f96f0e56d55ded352b6d31182e3097752
- 86f40b6685ac801fc8689ed2f03d0738c3ea1c
- 033f62a8a2c66e6f145544391645398e7c5611
- 03fb0cb38ef86c7970f21850fa0b10d80f8980
- 13235066408ce34cc5e63b4e12394752608c99
- 263030c824a096f058e1f1f79902b7b93a609d
- 0909b828423fb723dddd82a97e35d3a325f6e5
- 2b67021398e462ff5639754c90402551c26263
- 9d83be165d09ae5e5ebc1ad4af03bea02da2a8
- 72fa8ddba1fc83545a0b438b9c5529d2293d88
- 5c65c9db1b5e530170e59660e39e2628fb2a1e
- 5746a6c642f990aaa909a1486cd10af696e240
- 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
- 0168dfb1ba5f51a80373b6af7fc4c342340c09
- 634b278ad31b9c327f6666e084779827ab2f59
- e7406369ccdc9262379450dd0a0540dd6627bd
- dc5fdb387767bef8f24a34f68ee593b84de434
- master
- add-doc-fun-with-cond-issue
- add-fun-with-cond-issue
- add-two-todo-comments
- move-todo-comments
- config
- description
- HEAD
- clean_redux.ex
- dirty.ex
- clean.ex
- .credo.exs
- .sarif.exs
- .keep
- .keep
- foo.ex
- custom-config.exs
- custom-config.exs.malformed
- categories_test.exs
- checks_in_plugins_test.exs
- diff_test.exs
- explain_test.exs
- gen_check_test.exs
- gen_config_test.exs
- help_test.exs
- info_test.exs
- list_test.exs
- sarif_test.exs
- suggest_test.exs
- version_test.exs
- all_checks_with_ids_and_params.exs
- diff_credo.exs
- error_if_warnings.sh
- old_credo.exs
- run_on_old_credo.sh
- run_on_project.sh
- runtime_warnings.sh
- smoke_test.sh
- test_helper.exs
- test_if_tests_fail_after_resetting_lib.sh
- test_phoenix_compatibility.sh
- .credo.exs
- .formatter.exs
- .gitignore
- .template.check.ex
- .template.debug.html
- .tool-versions
- CHANGELOG.md
- CONTRIBUTING.md
- ISSUE_TEMPLATE.md
- LICENSE
- mix.exs
- mix.lock
- README.md
- RELEASING.md
// repository documentation
Was this content helpful?
(0 ratings)
