First commit. Version 0.1.0

This commit is contained in:
2026-05-10 09:58:23 +02:00
parent af105b7f7d
commit bbab5e238d
635 changed files with 53627 additions and 175 deletions

169
code_style_guide.md Executable file
View File

@@ -0,0 +1,169 @@
# Code Style Guide
This project follows a **Modified Allman** brace and formatting style.
It prioritizes **visual clarity, symmetry, and logical separation of blocks** over strict line compactness.
---
## Overview
### Key Principles
- Indentation with **tabs** (width = 4).
- **Opening braces `{`** always start on a new line.
- **`} else {`** and **`} catch {`** appear on the same line for compact flow.
- **Spaces inside parentheses only when non-empty:**
- `( arg1, arg2 )`
- `main()`
- **Classes and structs:** PascalCase
- **Variables, objects, and functions:** camelCase
- **Constants/macros:** UPPER_CASE_WITH_UNDERSCORES
---
## Examples
### `if / else` structure
```cpp
if ( condition )
{
doSomething();
} else {
doSomethingElse( arg1, arg2 );
}
```
### `try / catch` structure
```cpp
try
{
runOperation();
} catch ( const std::exception& ex ) {
handleError( ex );
}
```
### Class and method naming
```cpp
class DataAnalyzer
{
public:
DataAnalyzer( const std::string& filePath )
: filePath( filePath )
{
}
void processDataAndGenerateReport()
{
try
{
loadDataFromFile( filePath );
analyzeResultsAndPrintSummary();
} catch ( const std::runtime_error& error ) {
std::cerr << "Error: " << error.what() << std::endl;
}
}
private:
std::string filePath;
void loadDataFromFile( const std::string& path )
{
if ( path.empty() )
{
throw std::runtime_error( "File path cannot be empty." );
} else {
std::cout << "Loading data from: " << path << std::endl;
}
}
void analyzeResultsAndPrintSummary()
{
std::cout << "Analyzing data..." << std::endl;
std::cout << "Summary: OK" << std::endl;
}
};
```
### `main()` function
```cpp
int main()
{
DataAnalyzer analyzer( "results.csv" );
try
{
analyzer.processDataAndGenerateReport();
} catch ( const std::exception& ex ) {
std::cerr << "Unhandled exception: " << ex.what() << std::endl;
}
return 0;
}
```
---
## `.clang-format` configuration
Save this file as `.clang-format` in your project root:
```yaml
# === Style: Modified Allman (tabs, compact else/catch, and selective parentheses spacing) ===
# Naming conventions:
# · Classes and structs: PascalCase (e.g., MyClass, PlayerController)
# · Variables, objects, and functions: camelCase (e.g., myVariable, calculateScore)
# · Constants or macros: UPPER_CASE_WITH_UNDERSCORES
# · if/else and try/catch share the same brace layout:
# if ( condition )
# {
# ...
# } else {
# ...
# }
# try
# {
# ...
# } catch ( const std::exception& e ) {
# ...
# }
BasedOnStyle: LLVM
IndentWidth: 4
UseTab: Always
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
SpaceBeforeParens: Always
SpaceInEmptyParentheses: false
SpaceInParens: true
SpacesInAngles: false
SpacesInCStyleCastParentheses: true
SpacesInSquareBrackets: false
KeepEmptyLinesAtTheStartOfBlocks: true
ColumnLimit: 0
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
BreakBeforeBraces: Allman