chore: 统一代码风格
This commit is contained in:
@@ -41,10 +41,10 @@ class DumpCodingHistory
|
|||||||
{
|
{
|
||||||
Console.WriteLine($"处理: {wavFilePath}");
|
Console.WriteLine($"处理: {wavFilePath}");
|
||||||
|
|
||||||
var track = new Track(wavFilePath);
|
Track track = new(wavFilePath);
|
||||||
|
|
||||||
if (track.AdditionalFields == null ||
|
if (track.AdditionalFields == null ||
|
||||||
!track.AdditionalFields.TryGetValue("bext.codingHistory", out var codingHistory))
|
!track.AdditionalFields.TryGetValue("bext.codingHistory", out string? codingHistory))
|
||||||
{
|
{
|
||||||
Console.WriteLine(" -> 无 bext.codingHistory 字段");
|
Console.WriteLine(" -> 无 bext.codingHistory 字段");
|
||||||
return;
|
return;
|
||||||
@@ -53,8 +53,8 @@ class DumpCodingHistory
|
|||||||
Console.WriteLine($" -> 字符串长度: {codingHistory.Length}");
|
Console.WriteLine($" -> 字符串长度: {codingHistory.Length}");
|
||||||
|
|
||||||
// 用 Latin-1 编码转回字节(Latin-1 把 Unicode 0x00-0xFF 直接映射为 byte 0x00-0xFF)
|
// 用 Latin-1 编码转回字节(Latin-1 把 Unicode 0x00-0xFF 直接映射为 byte 0x00-0xFF)
|
||||||
var bytes = System.Text.Encoding.Latin1.GetBytes(codingHistory);
|
byte[] bytes = System.Text.Encoding.Latin1.GetBytes(codingHistory);
|
||||||
var outputPath = Path.Combine(
|
string outputPath = Path.Combine(
|
||||||
Path.GetDirectoryName(wavFilePath)!,
|
Path.GetDirectoryName(wavFilePath)!,
|
||||||
Path.GetFileNameWithoutExtension(wavFilePath) + ".codingHistory.bin"
|
Path.GetFileNameWithoutExtension(wavFilePath) + ".codingHistory.bin"
|
||||||
);
|
);
|
||||||
@@ -64,7 +64,7 @@ class DumpCodingHistory
|
|||||||
Console.WriteLine($" -> 字节数: {bytes.Length}");
|
Console.WriteLine($" -> 字节数: {bytes.Length}");
|
||||||
|
|
||||||
// 打印前 64 个字节的 hex
|
// 打印前 64 个字节的 hex
|
||||||
var hexPreview = Math.Min(64, bytes.Length);
|
int hexPreview = Math.Min(64, bytes.Length);
|
||||||
Console.Write(" -> Hex 前 64 字节: ");
|
Console.Write(" -> Hex 前 64 字节: ");
|
||||||
for (int i = 0; i < hexPreview; i++)
|
for (int i = 0; i < hexPreview; i++)
|
||||||
{
|
{
|
||||||
@@ -77,7 +77,7 @@ class DumpCodingHistory
|
|||||||
Console.Write(" -> ASCII 前 64 字节: ");
|
Console.Write(" -> ASCII 前 64 字节: ");
|
||||||
for (int i = 0; i < hexPreview; i++)
|
for (int i = 0; i < hexPreview; i++)
|
||||||
{
|
{
|
||||||
var c = (char)bytes[i];
|
char c = (char)bytes[i];
|
||||||
Console.Write(c >= 32 && c < 127 ? c : '.');
|
Console.Write(c >= 32 && c < 127 ? c : '.');
|
||||||
if ((i + 1) % 16 == 0) Console.Write(" ");
|
if ((i + 1) % 16 == 0) Console.Write(" ");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ class Program
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查找所有 WAV 文件
|
// 查找所有 WAV 文件
|
||||||
var wavFiles = Directory.GetFiles(sourceDir, "*.wav", SearchOption.AllDirectories);
|
string[] wavFiles = Directory.GetFiles(sourceDir, "*.wav", SearchOption.AllDirectories);
|
||||||
|
|
||||||
Console.WriteLine($"找到 {wavFiles.Length} 个 WAV 文件");
|
Console.WriteLine($"找到 {wavFiles.Length} 个 WAV 文件");
|
||||||
|
|
||||||
foreach (var wavFile in wavFiles)
|
foreach (string wavFile in wavFiles)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -44,10 +44,10 @@ class Program
|
|||||||
{
|
{
|
||||||
Console.WriteLine($"处理: {wavFilePath}");
|
Console.WriteLine($"处理: {wavFilePath}");
|
||||||
|
|
||||||
var track = new Track(wavFilePath);
|
Track track = new(wavFilePath);
|
||||||
var outputPath = Path.ChangeExtension(wavFilePath, ".atl.txt");
|
string outputPath = Path.ChangeExtension(wavFilePath, ".atl.txt");
|
||||||
|
|
||||||
using var writer = new StreamWriter(outputPath);
|
using StreamWriter writer = new(outputPath);
|
||||||
writer.WriteLine("=== ATL Track 基础属性 ===");
|
writer.WriteLine("=== ATL Track 基础属性 ===");
|
||||||
writer.WriteLine();
|
writer.WriteLine();
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ class Program
|
|||||||
// 打印所有附加字段
|
// 打印所有附加字段
|
||||||
if (track.AdditionalFields != null && track.AdditionalFields.Count > 0)
|
if (track.AdditionalFields != null && track.AdditionalFields.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var field in track.AdditionalFields.OrderBy(f => f.Key))
|
foreach (KeyValuePair<string, string> field in track.AdditionalFields.OrderBy(f => f.Key))
|
||||||
{
|
{
|
||||||
writer.WriteLine($"[{field.Key}] = {field.Value}");
|
writer.WriteLine($"[{field.Key}] = {field.Value}");
|
||||||
}
|
}
|
||||||
@@ -108,7 +108,7 @@ class Program
|
|||||||
// 打印图片信息
|
// 打印图片信息
|
||||||
if (track.EmbeddedPictures != null && track.EmbeddedPictures.Count > 0)
|
if (track.EmbeddedPictures != null && track.EmbeddedPictures.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var pic in track.EmbeddedPictures)
|
foreach (PictureInfo? pic in track.EmbeddedPictures)
|
||||||
{
|
{
|
||||||
writer.WriteLine($"PictureType: {pic.PicType}");
|
writer.WriteLine($"PictureType: {pic.PicType}");
|
||||||
writer.WriteLine($"Description: {pic.Description}");
|
writer.WriteLine($"Description: {pic.Description}");
|
||||||
@@ -129,7 +129,7 @@ class Program
|
|||||||
// 打印章节信息
|
// 打印章节信息
|
||||||
if (track.Chapters != null && track.Chapters.Count > 0)
|
if (track.Chapters != null && track.Chapters.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var chapter in track.Chapters)
|
foreach (ChapterInfo? chapter in track.Chapters)
|
||||||
{
|
{
|
||||||
writer.WriteLine($"Title: {chapter.Title}");
|
writer.WriteLine($"Title: {chapter.Title}");
|
||||||
writer.WriteLine($"StartTime: {chapter.StartTime}");
|
writer.WriteLine($"StartTime: {chapter.StartTime}");
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ public class DatabaseTests
|
|||||||
Description = "Test explosion sound",
|
Description = "Test explosion sound",
|
||||||
Category = "SFX",
|
Category = "SFX",
|
||||||
Keywords = "test,boom,explosion",
|
Keywords = "test,boom,explosion",
|
||||||
FxName = "Test Explosion Boom"
|
FxName = "Test Explosion Boom",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ public static class Database
|
|||||||
private static readonly HashSet<string> AllowedSortColumns = new(StringComparer.OrdinalIgnoreCase)
|
private static readonly HashSet<string> AllowedSortColumns = new(StringComparer.OrdinalIgnoreCase)
|
||||||
{
|
{
|
||||||
"filename", "duration", "sample_rate", "channels",
|
"filename", "duration", "sample_rate", "channels",
|
||||||
"date_added", "rating", "type", "category", "id"
|
"date_added", "rating", "type", "category", "id",
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -483,12 +483,12 @@ public static class Database
|
|||||||
using IDbConnection connection = GetConnection();
|
using IDbConnection connection = GetConnection();
|
||||||
connection.Open();
|
connection.Open();
|
||||||
const string sql = "SELECT keywords FROM audio_files WHERE keywords IS NOT NULL AND keywords != '';";
|
const string sql = "SELECT keywords FROM audio_files WHERE keywords IS NOT NULL AND keywords != '';";
|
||||||
var rows = connection.Query<string>(sql);
|
IEnumerable<string> rows = connection.Query<string>(sql);
|
||||||
var allKeywords = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
HashSet<string> allKeywords = new(StringComparer.OrdinalIgnoreCase);
|
||||||
foreach (var row in rows)
|
foreach (string row in rows)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(row)) continue;
|
if (string.IsNullOrWhiteSpace(row)) continue;
|
||||||
foreach (var part in row.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries))
|
foreach (string part in row.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries))
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(part))
|
if (!string.IsNullOrWhiteSpace(part))
|
||||||
allKeywords.Add(part);
|
allKeywords.Add(part);
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public static class PreferencesManager
|
|||||||
// 文件不存在或反序列化失败 → 创建默认实例
|
// 文件不存在或反序列化失败 → 创建默认实例
|
||||||
CurrentPreferences = new Preferences
|
CurrentPreferences = new Preferences
|
||||||
{
|
{
|
||||||
DatabasePath = GetDefaultDatabasePath()
|
DatabasePath = GetDefaultDatabasePath(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// 立即落盘,确保下次启动能直接读取
|
// 立即落盘,确保下次启动能直接读取
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public class DurationFormatConverter : IValueConverter
|
|||||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||||
{
|
{
|
||||||
if (value is not double duration) return "--:--";
|
if (value is not double duration) return "--:--";
|
||||||
var ts = TimeSpan.FromSeconds(duration);
|
TimeSpan ts = TimeSpan.FromSeconds(duration);
|
||||||
if (ts.TotalHours >= 1)
|
if (ts.TotalHours >= 1)
|
||||||
return ts.ToString(@"h\:mm\:ss\.ff");
|
return ts.ToString(@"h\:mm\:ss\.ff");
|
||||||
return ts.ToString(@"m\:ss\.ff");
|
return ts.ToString(@"m\:ss\.ff");
|
||||||
@@ -40,7 +40,7 @@ public class ChannelsFormatConverter : IValueConverter
|
|||||||
int ch when ch == 2 => "Stereo",
|
int ch when ch == 2 => "Stereo",
|
||||||
null => "--",
|
null => "--",
|
||||||
int ch => $"{ch}ch",
|
int ch => $"{ch}ch",
|
||||||
_ => "--"
|
_ => "--",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ public class PositionFormatConverter : IValueConverter
|
|||||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||||
{
|
{
|
||||||
if (value is not double pos) return "0:00";
|
if (value is not double pos) return "0:00";
|
||||||
var ts = TimeSpan.FromSeconds(pos);
|
TimeSpan ts = TimeSpan.FromSeconds(pos);
|
||||||
return ts.ToString(@"m\:ss");
|
return ts.ToString(@"m\:ss");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ public class SyncChannelManager
|
|||||||
|
|
||||||
public SyncChannel GetOrCreate(string id)
|
public SyncChannel GetOrCreate(string id)
|
||||||
{
|
{
|
||||||
if (!_channels.TryGetValue(id, out var channel))
|
if (!_channels.TryGetValue(id, out SyncChannel? channel))
|
||||||
{
|
{
|
||||||
channel = new SyncChannel(id);
|
channel = new SyncChannel(id);
|
||||||
_channels[id] = channel;
|
_channels[id] = channel;
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ public class ViewLocator : IDataTemplate
|
|||||||
if (param is null)
|
if (param is null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
var name = param.GetType().FullName!.Replace("ViewModel", "View", StringComparison.Ordinal);
|
string name = param.GetType().FullName!.Replace("ViewModel", "View", StringComparison.Ordinal);
|
||||||
var type = Type.GetType(name);
|
Type? type = Type.GetType(name);
|
||||||
|
|
||||||
if (type != null)
|
if (type != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public partial class FileListViewModel : ViewModelBase
|
|||||||
|
|
||||||
public string[] SortOptions { get; } =
|
public string[] SortOptions { get; } =
|
||||||
[
|
[
|
||||||
"date_added", "filename", "duration", "sample_rate", "channels", "rating", "type", "category"
|
"date_added", "filename", "duration", "sample_rate", "channels", "rating", "type", "category",
|
||||||
];
|
];
|
||||||
|
|
||||||
public FileListViewModel(SyncChannel channel)
|
public FileListViewModel(SyncChannel channel)
|
||||||
@@ -60,7 +60,7 @@ public partial class FileListViewModel : ViewModelBase
|
|||||||
IsLoading = true;
|
IsLoading = true;
|
||||||
Files.Clear();
|
Files.Clear();
|
||||||
|
|
||||||
var entries = Database.QueryEntries(
|
IEnumerable<AudioFileMeta> entries = Database.QueryEntries(
|
||||||
searchText: string.IsNullOrWhiteSpace(_channel.SearchText) ? null : _channel.SearchText,
|
searchText: string.IsNullOrWhiteSpace(_channel.SearchText) ? null : _channel.SearchText,
|
||||||
category: _channel.FilterCategory,
|
category: _channel.FilterCategory,
|
||||||
sortBy: SelectedSortBy,
|
sortBy: SelectedSortBy,
|
||||||
@@ -73,7 +73,7 @@ public partial class FileListViewModel : ViewModelBase
|
|||||||
);
|
);
|
||||||
|
|
||||||
// 如果有 FilterKeyword,在客户端过滤(Keywords 字段 LIKE 搜索)
|
// 如果有 FilterKeyword,在客户端过滤(Keywords 字段 LIKE 搜索)
|
||||||
foreach (var entry in entries)
|
foreach (AudioFileMeta entry in entries)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(_channel.FilterKeyword))
|
if (!string.IsNullOrWhiteSpace(_channel.FilterKeyword))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ public partial class ScanProgressViewModel : ViewModelBase
|
|||||||
|
|
||||||
Database.InitializeDatabase();
|
Database.InitializeDatabase();
|
||||||
|
|
||||||
var scanner = new AudioFileScanner();
|
AudioFileScanner scanner = new();
|
||||||
var reader = new AudioMetadataReader();
|
AudioMetadataReader reader = new();
|
||||||
var validator = new AudioFileMetaValidator();
|
AudioFileMetaValidator validator = new();
|
||||||
|
|
||||||
var files = scanner.ScanDirectory(directory, recursive: true).ToList();
|
List<string> files = scanner.ScanDirectory(directory, recursive: true).ToList();
|
||||||
TotalFiles = files.Count;
|
TotalFiles = files.Count;
|
||||||
ProcessedFiles = 0;
|
ProcessedFiles = 0;
|
||||||
AddedFiles = 0;
|
AddedFiles = 0;
|
||||||
@@ -47,15 +47,15 @@ public partial class ScanProgressViewModel : ViewModelBase
|
|||||||
|
|
||||||
StatusText = $"发现 {TotalFiles} 个文件,正在解析元数据...";
|
StatusText = $"发现 {TotalFiles} 个文件,正在解析元数据...";
|
||||||
|
|
||||||
foreach (var filePath in files)
|
foreach (string filePath in files)
|
||||||
{
|
{
|
||||||
CurrentFile = System.IO.Path.GetFileName(filePath);
|
CurrentFile = Path.GetFileName(filePath);
|
||||||
ProcessedFiles++;
|
ProcessedFiles++;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var fileInfo = new FileInfo(filePath);
|
FileInfo fileInfo = new(filePath);
|
||||||
var meta = reader.ReadMetadata(fileInfo);
|
AudioFileMeta? meta = reader.ReadMetadata(fileInfo);
|
||||||
|
|
||||||
if (meta == null)
|
if (meta == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -28,14 +28,14 @@ public partial class TagTreeViewModel : ViewModelBase
|
|||||||
CategoryNodes.Clear();
|
CategoryNodes.Clear();
|
||||||
KeywordNodes.Clear();
|
KeywordNodes.Clear();
|
||||||
|
|
||||||
var categories = Database.GetAllCategories();
|
IEnumerable<string> categories = Database.GetAllCategories();
|
||||||
foreach (var cat in categories)
|
foreach (string cat in categories)
|
||||||
{
|
{
|
||||||
CategoryNodes.Add(new TagTreeNode { Name = cat, Type = TagTreeNodeType.Category });
|
CategoryNodes.Add(new TagTreeNode { Name = cat, Type = TagTreeNodeType.Category });
|
||||||
}
|
}
|
||||||
|
|
||||||
var keywords = Database.GetAllKeywords();
|
IEnumerable<string> keywords = Database.GetAllKeywords();
|
||||||
foreach (var kw in keywords)
|
foreach (string kw in keywords)
|
||||||
{
|
{
|
||||||
KeywordNodes.Add(new TagTreeNode { Name = kw, Type = TagTreeNodeType.Keyword });
|
KeywordNodes.Add(new TagTreeNode { Name = kw, Type = TagTreeNodeType.Keyword });
|
||||||
}
|
}
|
||||||
@@ -88,5 +88,5 @@ public partial class TagTreeNode : ObservableObject
|
|||||||
public enum TagTreeNodeType
|
public enum TagTreeNodeType
|
||||||
{
|
{
|
||||||
Category,
|
Category,
|
||||||
Keyword
|
Keyword,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
|
using Avalonia.Platform.Storage;
|
||||||
using GUI.ViewModels;
|
using GUI.ViewModels;
|
||||||
|
|
||||||
namespace GUI.Views;
|
namespace GUI.Views;
|
||||||
@@ -9,22 +10,22 @@ public partial class MainWindow : Window
|
|||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
ScanButton.Click += OnScanButtonClick;
|
this.ScanButton.Click += OnScanButtonClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void OnScanButtonClick(object? sender, RoutedEventArgs e)
|
private async void OnScanButtonClick(object? sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (DataContext is not MainWindowViewModel vm) return;
|
if (DataContext is not MainWindowViewModel vm) return;
|
||||||
|
|
||||||
var folders = await StorageProvider.OpenFolderPickerAsync(new Avalonia.Platform.Storage.FolderPickerOpenOptions
|
IReadOnlyList<IStorageFolder> folders = await StorageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions
|
||||||
{
|
{
|
||||||
Title = "选择音频目录",
|
Title = "选择音频目录",
|
||||||
AllowMultiple = false
|
AllowMultiple = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (folders.Count > 0)
|
if (folders.Count > 0)
|
||||||
{
|
{
|
||||||
var path = folders[0].Path.LocalPath;
|
string path = folders[0].Path.LocalPath;
|
||||||
vm.RequestScan(path);
|
vm.RequestScan(path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFormat_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fe2d95a1d7b987bbb7785b2ad7e2e3e29075ba79cdf7619dd26c10d266c5_003FFormat_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFormat_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fe2d95a1d7b987bbb7785b2ad7e2e3e29075ba79cdf7619dd26c10d266c5_003FFormat_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGUI_002EViewModels_002EScanProgressViewModel_002Eg_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fbb74b3c6eaaeb5d783f31310eae5345eba75596a_003FGUI_002EViewModels_002EScanProgressViewModel_002Eg_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGUI_002EViewModels_002EScanProgressViewModel_002EStartScan_002Eg_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F1a6f588df342309187674fcc524512a9a4a46540_003FGUI_002EViewModels_002EScanProgressViewModel_002EStartScan_002Eg_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIDbConnection_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F01c4805efedf4381865d701be69b5ce5314910_003F77_003Ffb273e4d_003FIDbConnection_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIDbConnection_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F01c4805efedf4381865d701be69b5ce5314910_003F77_003Ffb273e4d_003FIDbConnection_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIRelayCommand_007BT_007D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F49f2a292ecb417be1f61c426de242e503b4371a346bf5b68a843b462337e62_003FIRelayCommand_007BT_007D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AOSPlatform_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F9e988c941e6515999ebab7336243c87df16e340b8faeb57b5f562d2b8a7c2c_003FOSPlatform_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AOSPlatform_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F9e988c941e6515999ebab7336243c87df16e340b8faeb57b5f562d2b8a7c2c_003FOSPlatform_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATrack_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F872a20b9878a835418db772627eab53c29e04a65284443b02d35345255649a3a_003FTrack_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATrack_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F872a20b9878a835418db772627eab53c29e04a65284443b02d35345255649a3a_003FTrack_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user