# Configuration for cmake-lint
# This file configures CMake linting rules

[lint]
# Disable specific lint codes if needed
disabled_codes = []

# Variable naming patterns
function_pattern = [0-9a-z_]+
macro_pattern = [0-9A-Z_]+
global_var_pattern = [A-Z][0-9A-Z_]+
internal_var_pattern = _[A-Z][0-9A-Z_]+
local_var_pattern = [a-z][a-z0-9_]+
private_var_pattern = _[0-9a-z_]+
public_var_pattern = [A-Z][0-9A-Z_]+
argument_var_pattern = [a-z][a-z0-9_]+
keyword_pattern = [A-Z][0-9A-Z_]+

# Complexity limits
max_conditionals_custom_parser = 2
max_returns = 6
max_branches = 12
max_arguments = 5
max_localvars = 15
max_statements = 50

# Statement spacing
min_statement_spacing = 1
max_statement_spacing = 2

[format]
# These settings mirror the .cmake-format file
tab_size = 4
use_tabchars = false
line_width = 0
dangle_parens = false

[parse]
# Additional commands that cmake-lint should recognize
# Add any custom CMake functions or macros used in the project
additional_commands = {}

[markup]
# Comment and markup configuration
first_comment_is_literal = false
literal_comment_pattern = null
fence_pattern = ^\s*([`~]{3}[`~]*)(.*)$
ruler_pattern = ^\s*[^\w\s]{3}.*[^\w\s]{3}$
