Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -185,10 +185,6 @@ private void GenerateSource(
GeneratedHeaderFromPath(sourceBuilder, enumFullName);
sourceBuilder.AppendLine();

// Generate using directives
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using removed here

sourceBuilder.AppendLine("using System.Collections.Generic;");
sourceBuilder.AppendLine();

// Generate namespace
sourceBuilder.AppendLine($"namespace {enumNamespace};");
sourceBuilder.AppendLine();
Expand All @@ -202,7 +198,7 @@ private void GenerateSource(
sourceBuilder.AppendLine($"/// Data class for <see cref=\"{enumFullName}\"/>");
sourceBuilder.AppendLine($"/// </summary>");
sourceBuilder.AppendLine($"[System.CodeDom.Compiler.GeneratedCode(\"{nameof(EnumSourceGenerator)}\", \"{PackageVersion}\")]");
sourceBuilder.AppendLine($"public class {enumDataClassName}");
sourceBuilder.AppendLine($"public class {enumDataClassName} : global::System.ComponentModel.INotifyPropertyChanged");
sourceBuilder.AppendLine("{");

// Generate properties
Expand All @@ -212,10 +208,23 @@ private void GenerateSource(
sourceBuilder.AppendLine($"{tabString}public {enumName} Value {{ get; private init; }}");
sourceBuilder.AppendLine();

sourceBuilder.AppendLine($"{tabString}private string _display;");
sourceBuilder.AppendLine();
sourceBuilder.AppendLine($"{tabString}/// <summary>");
sourceBuilder.AppendLine($"{tabString}/// The display text of the enum value");
sourceBuilder.AppendLine($"{tabString}/// </summary>");
sourceBuilder.AppendLine($"{tabString}public string Display {{ get; set; }}");
sourceBuilder.AppendLine($"{tabString}public string Display");
sourceBuilder.AppendLine($"{tabString}{{");
sourceBuilder.AppendLine($"{tabString}{tabString}get => _display;");
sourceBuilder.AppendLine($"{tabString}{tabString}set");
sourceBuilder.AppendLine($"{tabString}{tabString}{{");
sourceBuilder.AppendLine($"{tabString}{tabString}{tabString}if (_display != value)");
sourceBuilder.AppendLine($"{tabString}{tabString}{tabString}{{");
sourceBuilder.AppendLine($"{tabString}{tabString}{tabString}{tabString}_display = value;");
sourceBuilder.AppendLine($"{tabString}{tabString}{tabString}{tabString}OnPropertyChanged(nameof(Display));");
sourceBuilder.AppendLine($"{tabString}{tabString}{tabString}}}");
sourceBuilder.AppendLine($"{tabString}{tabString}}}");
sourceBuilder.AppendLine($"{tabString}}}");
sourceBuilder.AppendLine();

sourceBuilder.AppendLine($"{tabString}/// <summary>");
Expand Down Expand Up @@ -246,9 +255,9 @@ private void GenerateSource(
sourceBuilder.AppendLine($"{tabString}/// <summary>");
sourceBuilder.AppendLine($"{tabString}/// Get all values of <see cref=\"{enumFullName}\"/>");
sourceBuilder.AppendLine($"{tabString}/// </summary>");
sourceBuilder.AppendLine($"{tabString}public static List<{enumDataClassName}> GetValues()");
sourceBuilder.AppendLine($"{tabString}public static global::System.Collections.Generic.List<{enumDataClassName}> GetValues()");
sourceBuilder.AppendLine($"{tabString}{{");
sourceBuilder.AppendLine($"{tabString}{tabString}return new List<{enumDataClassName}>");
sourceBuilder.AppendLine($"{tabString}{tabString}return new global::System.Collections.Generic.List<{enumDataClassName}>");
sourceBuilder.AppendLine($"{tabString}{tabString}{{");
var enumFields = GetEnumFields(spc, enumSymbol, enumFullName);
if (enumFields.Length == 0) return;
Expand All @@ -262,6 +271,16 @@ private void GenerateSource(

// Generate UpdateLabels method
GenerateUpdateLabelsMethod(sourceBuilder, getTranslation, enumDataClassName, tabString);
sourceBuilder.AppendLine();

// Generate INotifyPropertyChanged implementation
sourceBuilder.AppendLine($"{tabString}/// <inheritdoc />");
sourceBuilder.AppendLine($"{tabString}public event global::System.ComponentModel.PropertyChangedEventHandler? PropertyChanged;");
sourceBuilder.AppendLine();
sourceBuilder.AppendLine($"{tabString}protected void OnPropertyChanged([global::System.Runtime.CompilerServices.CallerMemberName] string? propertyName = null)");
sourceBuilder.AppendLine($"{tabString}{{");
sourceBuilder.AppendLine($"{tabString}{tabString}PropertyChanged?.Invoke(this, new global::System.ComponentModel.PropertyChangedEventArgs(propertyName));");
sourceBuilder.AppendLine($"{tabString}}}");

sourceBuilder.AppendLine($"}}");

Expand Down Expand Up @@ -317,9 +336,9 @@ private static void GenerateUpdateLabelsMethod(
{
sb.AppendLine($"{tabString}/// <summary>");
sb.AppendLine($"{tabString}/// Update the labels of the enum values when culture info changes.");
sb.AppendLine($"{tabString}/// See <see cref=\"Flow.Launcher.Plugin.PluginInitContext.CultureInfoChanged\"/> for more details");
sb.AppendLine($"{tabString}/// See <see cref=\"Flow.Bar.Plugin.PluginInitContext.CultureInfoChanged\"/> for more details");
sb.AppendLine($"{tabString}/// </summary>");
sb.AppendLine($"{tabString}public static void UpdateLabels(List<{enumDataClassName}> options)");
sb.AppendLine($"{tabString}public static void UpdateLabels(global::System.Collections.Generic.List<{enumDataClassName}> options)");
sb.AppendLine($"{tabString}{{");
sb.AppendLine($"{tabString}{tabString}foreach (var item in options)");
sb.AppendLine($"{tabString}{tabString}{{");
Expand Down
Loading