Añadir Home

Miguel 2025-02-23 07:12:58 -03:00
commit 8c901f9e1d
1 changed files with 111 additions and 0 deletions

111
Home.md Normal file

@ -0,0 +1,111 @@
# CodeMerger Documentation
## Overview
CodeMerger is a tool designed to intelligently merge C# code modifications from LLM (Language Learning Model) outputs with existing source code. It preserves original code structure while incorporating changes and additions proposed by the LLM.
## Features
- Merges code changes while maintaining original namespaces and class structures
- Handles partial code updates using continuation markers
- Supports adding new members (fields, properties, methods)
- Preserves code formatting and structure
- Provides detailed logging of merge operations
## Core Components
### `cCodeMerger`
The main class responsible for code merging operations. Uses the Roslyn API for C# syntax analysis and manipulation.
#### Key Features
- Namespace preservation and mapping
- Class member merging
- Method body combining with continuation support
- Detailed merge logging
### Usage Example
```csharp
var merger = new cCodeMerger();
var logger = new LogViewModel();
var result = merger.MergeCode(
originalCode: File.ReadAllText("original.cs"),
llmCode: File.ReadAllText("llm.cs"),
outputPath: "merged.cs",
logger: logger
);
```
## Special Markers
### Continuation Marker
```csharp
// ... resto del código ...
```
Used in LLM code to indicate where original code should be preserved after the modifications.
### Section Markers
The merger adds these markers automatically to highlight changes:
```csharp
// ----------------------------------------
// Added: New method
```
```csharp
// ----------------------------------------
// Modified: Updated implementation
```
## Merging Process
### 1. Code Analysis
- Parses both original and LLM code using Roslyn
- Maps namespaces and classes
- Identifies matching methods and members
### 2. Member Processing
1. **Fields**
- Updates existing fields if modified in LLM code
- Adds new fields from LLM code
2. **Properties**
- Preserves original properties unless modified
- Incorporates new properties from LLM code
3. **Methods**
- Merges method bodies using continuation markers
- Preserves original code after continuation points
- Adds new methods from LLM code
### 3. Code Organization
- Maintains original namespace structure
- Preserves class hierarchies
- Adds clear separation markers for changes
## Best Practices
### Code Structure
- Keep namespace declarations consistent between original and LLM code
- Use continuation markers for partial updates
- Maintain consistent method signatures
### Error Handling
The merger provides detailed error information through:
- Success/failure status in `MergeResult`
- Diagnostic messages in the log
- Detailed debug information during merging
## Technical Requirements
- .NET 9.0 or later
- Microsoft.CodeAnalysis.CSharp package
- AvalonEdit (for UI components)
## Limitations
- Only supports C# code
- Requires syntactically valid input code
- Best results with matching namespace structures
## Logging
The merger provides detailed logging through the `LogViewModel` with different log levels:
- Debug: Detailed processing information
- Info: General operation status
- Warning: Potential issues
- Error: Operation failures
This documentation covers the main aspects of the CodeMerger tool. For more specific details, refer to the inline code comments and XML documentation.