UbisamBase 플랫폼 위에서 도는 플러그인. 지금까지 만든 것을 그대로 담는다. - 폴더 비교 / 파일 비교(부분 수용·워드랩·찾기) / 3-Way 병합 / Git 조작 - 비교 엔진: histogram 정렬 · 이동 블록 감지 · 무시 규칙 · 13개 언어 토크나이저 - doc/ 에 작업 지시서와 진행 기록 빌드 산출물(bin/obj)은 추적하지 않는다 - 플랫폼 런타임이 빌드 때마다 D:\UbisamPlatform\bin 에서 복사되어 들어오므로 저장소에 담을 이유가 없다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
92 lines
3.5 KiB
C#
92 lines
3.5 KiB
C#
using System.ComponentModel;
|
|
|
|
namespace MergeHub
|
|
{
|
|
/// <summary>
|
|
/// 설정 탭에 자동 생성되는 편집 화면의 원본.
|
|
/// D:\UbisamConfig\Settings\MergeHubSettings.json 으로 저장된다.
|
|
/// </summary>
|
|
public class MergeHubSettings
|
|
{
|
|
[Category("저장소")]
|
|
[DisplayName("기본 저장소 경로")]
|
|
public string DefaultRepositoryPath { get; set; } = string.Empty;
|
|
|
|
[Category("저장소")]
|
|
[DisplayName("기본 원격 이름")]
|
|
public string DefaultRemoteName { get; set; } = "origin";
|
|
|
|
// Git 저장소가 아닐 때 처음부터 비교해 둘 두 파일. 비워 두면 아무것도 열지 않는다.
|
|
[Category("파일 비교 (Git 아님)")]
|
|
[DisplayName("기본 왼쪽 파일")]
|
|
public string DefaultLeftFile { get; set; } = string.Empty;
|
|
|
|
[Category("파일 비교 (Git 아님)")]
|
|
[DisplayName("기본 오른쪽 파일")]
|
|
public string DefaultRightFile { get; set; } = string.Empty;
|
|
|
|
// 발표·교육용. 상단 "데모" 버튼이 이 두 경로를 오가며 Git 있는 화면과 없는 화면을 바로 보여 준다.
|
|
// 비워 두면 버튼이 나오지 않는다.
|
|
[Category("데모")]
|
|
[DisplayName("데모: .git 있는 폴더")]
|
|
public string DemoGitPath { get; set; } = string.Empty;
|
|
|
|
[Category("데모")]
|
|
[DisplayName("데모: .git 없는 폴더")]
|
|
public string DemoPlainPath { get; set; } = string.Empty;
|
|
|
|
[Category("사내 Gitea")]
|
|
[DisplayName("서버 주소")]
|
|
public string GiteaUrl { get; set; } = string.Empty;
|
|
|
|
[Category("사내 Gitea")]
|
|
[DisplayName("계정")]
|
|
public string GiteaUserName { get; set; } = string.Empty;
|
|
|
|
[Category("비교 옵션")]
|
|
[DisplayName("공백 변경 무시")]
|
|
public bool IgnoreWhitespace { get; set; }
|
|
|
|
[Category("비교 옵션")]
|
|
[DisplayName("공백 무시 단계 (0=전부 비교, 1=개수만, 2=전부)")]
|
|
public int WhitespaceMode { get; set; }
|
|
|
|
[Category("비교 옵션")]
|
|
[DisplayName("대소문자 무시")]
|
|
public bool IgnoreCase { get; set; }
|
|
|
|
[Category("비교 옵션")]
|
|
[DisplayName("줄 필터 사용")]
|
|
public bool UseLineFilters { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 차이로 세지 않을 줄의 정규식. 줄바꿈으로 구분해 여러 개를 적는다.
|
|
/// 매번 바뀌는 타임스탬프·빌드번호처럼 내용이 아닌 것을 걸러내는 용도다.
|
|
/// </summary>
|
|
[Category("비교 옵션")]
|
|
[DisplayName("줄 필터 정규식 (한 줄에 하나)")]
|
|
public string LineFilters { get; set; } = string.Empty;
|
|
|
|
[Category("비교 옵션")]
|
|
[DisplayName("단어 단위 diff")]
|
|
public bool WordLevelDiff { get; set; } = true;
|
|
|
|
[Category("비교 옵션")]
|
|
[DisplayName("문법 강조 (C# 키워드·접근제한자·문자열)")]
|
|
public bool SyntaxHighlight { get; set; } = true;
|
|
|
|
[Category("비교 옵션")]
|
|
[DisplayName("커밋 조회 개수")]
|
|
public int CommitPageSize { get; set; } = 200;
|
|
|
|
[Category("머지 주석")]
|
|
[DisplayName("반영한 줄에 주석 남기기")]
|
|
public bool InsertMergeComment { get; set; } = true;
|
|
|
|
[Category("머지 주석")]
|
|
[DisplayName("작성자 (비우면 git config user.name)")]
|
|
public string MergeCommentAuthor { get; set; } = string.Empty;
|
|
|
|
}
|
|
}
|