# conformallab++ EditorConfig
#
# Honoured natively by VSCode (with the EditorConfig extension), CLion,
# Vim, Emacs, Sublime, …  Covers the basics that .clang-format /
# .cmake-format don't catch (Markdown, Python, YAML, shell, JSON, …)
# and acts as a cross-IDE fallback when clang-format isn't installed.
#
# Authoritative formatting for C++ source still comes from .clang-format;
# this file just keeps the editor's defaults from fighting it.

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

# C++ — match .clang-format
[*.{h,hpp,cpp,c,cc}]
indent_size = 4
max_line_length = 100

# CMake — match .cmake-format.yaml
[{CMakeLists.txt,*.cmake}]
indent_size = 4
max_line_length = 100

# Python — PEP-8 default
[*.py]
indent_size = 4
max_line_length = 100

# Shell — Google shell style
[*.sh]
indent_size = 4
max_line_length = 100

# YAML — community convention
[*.{yml,yaml}]
indent_size = 2

# JSON
[*.json]
indent_size = 2

# Markdown — preserve trailing spaces (used for line breaks); don't strip
[*.md]
trim_trailing_whitespace = false
max_line_length = off

# Makefiles must use tabs
[Makefile]
indent_style = tab
