mirror of
https://github.com/nsnail/dot.git
synced 2025-06-19 13:58:16 +08:00
<clean>
This commit is contained in:
@ -1,9 +1,11 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
#if NET7_0_WINDOWS
|
||||
namespace Dot.Color;
|
||||
|
||||
[Description(nameof(Str.ScreenPixelTool))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : ToolBase<Option>
|
||||
internal sealed class Main : ToolBase<Option>
|
||||
|
||||
{
|
||||
protected override Task Core()
|
||||
|
@ -1,10 +1,12 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
#if NET7_0_WINDOWS
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Dot.Color;
|
||||
|
||||
public class MouseHook : IDisposable
|
||||
internal class MouseHook : IDisposable
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
private struct Msllhookstruct
|
||||
@ -18,6 +20,7 @@ public class MouseHook : IDisposable
|
||||
}
|
||||
|
||||
|
||||
// ReSharper disable once EventNeverSubscribedTo.Global
|
||||
public event MouseEventHandler MouseEvent = delegate { };
|
||||
private const int _WH_MOUSE_LL = 14;
|
||||
private const int _WM_LBUTTONDOWN = 0x0201;
|
||||
|
@ -1,3 +1,5 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
namespace Dot.Color;
|
||||
|
||||
public class Option : OptionBase { }
|
||||
internal class Option : OptionBase { }
|
@ -4,7 +4,7 @@ using Size = System.Drawing.Size;
|
||||
|
||||
namespace Dot.Color;
|
||||
|
||||
public class WinInfo : Form
|
||||
internal class WinInfo : Form
|
||||
{
|
||||
private const int _WINDOW_SIZE = 480; //窗口大小
|
||||
private const int _ZOOM_RATE = 16; //缩放倍率
|
||||
|
@ -3,7 +3,7 @@ using TextCopy;
|
||||
|
||||
namespace Dot.Color;
|
||||
|
||||
public class WinMain : Form
|
||||
internal class WinMain : Form
|
||||
{
|
||||
private readonly Bitmap _bmp;
|
||||
private bool _disposed;
|
||||
|
@ -1,7 +1,7 @@
|
||||
namespace Dot;
|
||||
|
||||
// ReSharper disable once UnusedType.Global
|
||||
public class CsxEditor
|
||||
internal class CsxEditor
|
||||
{
|
||||
// ReSharper disable once UnusedMember.Local
|
||||
#pragma warning disable CA1822
|
||||
|
@ -1,6 +1,8 @@
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
|
||||
namespace Dot;
|
||||
|
||||
public class DirOption : OptionBase
|
||||
internal class DirOption : OptionBase
|
||||
{
|
||||
[CommandOption("-e|--exclude")]
|
||||
[Description(nameof(Str.ExcludePathRegexes))]
|
||||
|
@ -4,11 +4,13 @@ using Panel = Spectre.Console.Panel;
|
||||
|
||||
namespace Dot;
|
||||
|
||||
public abstract class FilesTool<TOption> : ToolBase<TOption> where TOption : DirOption
|
||||
internal abstract class FilesTool<TOption> : ToolBase<TOption> where TOption : DirOption
|
||||
{
|
||||
private int _breakCnt; //跳过文件数
|
||||
private ProgressTask _childTask; //子任务进度
|
||||
private int _excludeCnt; //排除文件数
|
||||
private int _breakCnt; //跳过文件数
|
||||
private ProgressTask _childTask; //子任务进度
|
||||
private int _excludeCnt; //排除文件数
|
||||
|
||||
// ReSharper disable once StaticMemberInGenericType
|
||||
private static readonly object _lock = new(); //线程锁
|
||||
private int _readCnt; //读取文件数
|
||||
private int _totalCnt; //总文件数
|
||||
@ -16,6 +18,7 @@ public abstract class FilesTool<TOption> : ToolBase<TOption> where TOption : Dir
|
||||
private readonly ConcurrentDictionary<string, int> _writeStats = new(); //写入统计:后缀,数量
|
||||
|
||||
|
||||
// ReSharper disable once ReturnTypeCanBeEnumerable.Local
|
||||
private string[] EnumerateFiles(string path, string searchPattern, out int excludeCnt)
|
||||
{
|
||||
var exCnt = 0;
|
||||
@ -76,7 +79,7 @@ public abstract class FilesTool<TOption> : ToolBase<TOption> where TOption : Dir
|
||||
}
|
||||
|
||||
|
||||
protected FileStream CreateTempFile(out string file)
|
||||
protected static FileStream CreateTempFile(out string file)
|
||||
{
|
||||
file = Path.Combine(Path.GetTempPath(), $"{System.Guid.NewGuid()}.tmp");
|
||||
return OpenFileStream(file, FileMode.OpenOrCreate, FileAccess.Write);
|
||||
|
@ -1,3 +1,5 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text.RegularExpressions;
|
||||
using NSExt.Extensions;
|
||||
@ -6,7 +8,7 @@ namespace Dot.Get;
|
||||
|
||||
[Description(nameof(Str.DownloadTool))]
|
||||
[Localization(typeof(Str))]
|
||||
public partial class Main : ToolBase<Option>
|
||||
internal partial class Main : ToolBase<Option>
|
||||
{
|
||||
private const string _PART = "part";
|
||||
|
||||
@ -84,8 +86,8 @@ public partial class Main : ToolBase<Option>
|
||||
}
|
||||
|
||||
private void WritePart(HttpResponseMessage rsp, string mainFilePath //
|
||||
, long startPos, long endPos //
|
||||
, Action<int> rateHandle)
|
||||
, long startPos, long endPos //
|
||||
, Action<int> rateHandle)
|
||||
{
|
||||
Span<byte> buf = stackalloc byte[Opt.BufferSize];
|
||||
using var stream = rsp.Content.ReadAsStream();
|
||||
|
@ -1,6 +1,9 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
|
||||
namespace Dot.Get;
|
||||
|
||||
public class Option : OptionBase
|
||||
internal class Option : OptionBase
|
||||
{
|
||||
[CommandOption("-b|--buffer-size")]
|
||||
[Description(nameof(Str.BufferSize))]
|
||||
|
@ -1,3 +1,5 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
using System.Collections.Concurrent;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
@ -7,7 +9,7 @@ namespace Dot.Git;
|
||||
|
||||
[Description(nameof(Str.GitTool))]
|
||||
[Localization(typeof(Str))]
|
||||
public class Main : ToolBase<Option>
|
||||
internal class Main : ToolBase<Option>
|
||||
{
|
||||
private Encoding _gitOutputEnc; //git command rsp 编码
|
||||
private ConcurrentDictionary<string, StringBuilder> _repoRsp; //仓库信息容器
|
||||
@ -43,7 +45,7 @@ public class Main : ToolBase<Option>
|
||||
p.ErrorDataReceived += ExecRspReceived;
|
||||
p.BeginOutputReadLine();
|
||||
p.BeginErrorReadLine();
|
||||
await p.WaitForExitAsync();
|
||||
await p.WaitForExitAsync(CancellationToken.None);
|
||||
|
||||
if (p.ExitCode == 0) {
|
||||
payload.Value.State.Status(TaskStatusColumn.Statues.Succeed);
|
||||
|
@ -1,6 +1,9 @@
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
namespace Dot.Git;
|
||||
|
||||
public class Option : OptionBase
|
||||
internal class Option : OptionBase
|
||||
{
|
||||
[CommandOption("-a|--args")]
|
||||
[Description(nameof(Str.GitArgs))]
|
||||
|
@ -1,12 +1,7 @@
|
||||
namespace Dot.Git;
|
||||
|
||||
public static class ProgressTaskStateExtensions
|
||||
internal static class ProgressTaskStateExtensions
|
||||
{
|
||||
public static TaskStatusColumn.Statues Status(this ProgressTaskState me)
|
||||
{
|
||||
return me.Get<TaskStatusColumn.Statues>(nameof(TaskStatusColumn));
|
||||
}
|
||||
|
||||
public static void Status(this ProgressTaskState me, TaskStatusColumn.Statues value)
|
||||
{
|
||||
me.Update<TaskStatusColumn.Statues>(nameof(TaskStatusColumn), _ => value);
|
||||
|
@ -1,13 +1,17 @@
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global
|
||||
|
||||
using NSExt.Extensions;
|
||||
using Spectre.Console.Rendering;
|
||||
|
||||
namespace Dot.Git;
|
||||
|
||||
public class TaskStatusColumn : ProgressColumn
|
||||
internal class TaskStatusColumn : ProgressColumn
|
||||
{
|
||||
public enum Statues : byte
|
||||
{
|
||||
[Description($"[gray]{nameof(Ready)}[/]")]
|
||||
// ReSharper disable once UnusedMember.Global
|
||||
Ready
|
||||
|
||||
, [Description($"[yellow]{nameof(Executing)}[/]")]
|
||||
|
@ -1,3 +1,6 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
#if NET7_0_WINDOWS
|
||||
using TextCopy;
|
||||
#endif
|
||||
@ -6,7 +9,7 @@ namespace Dot.Guid;
|
||||
|
||||
[Description(nameof(Str.GuidTool))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : ToolBase<Option>
|
||||
internal sealed class Main : ToolBase<Option>
|
||||
{
|
||||
protected override Task Core()
|
||||
{
|
||||
|
@ -1,10 +1,13 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
|
||||
namespace Dot.Guid;
|
||||
|
||||
public class Option : OptionBase
|
||||
internal class Option : OptionBase
|
||||
{
|
||||
[CommandOption("-u|--upper")]
|
||||
[Description(nameof(Str.UseUppercase))]
|
||||
[Localization(typeof(Str))]
|
||||
[DefaultValue(false)]
|
||||
public bool Upper { get; set; } //normal options here
|
||||
public bool Upper { get; set; }
|
||||
}
|
@ -1,3 +1,5 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Net.Sockets;
|
||||
|
||||
@ -5,7 +7,7 @@ namespace Dot.IP;
|
||||
|
||||
[Description(nameof(Str.Ip))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : ToolBase<Option>
|
||||
internal sealed class Main : ToolBase<Option>
|
||||
|
||||
{
|
||||
protected override async Task Core()
|
||||
|
@ -1,3 +1,5 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
namespace Dot.IP;
|
||||
|
||||
public class Option : OptionBase { }
|
||||
internal class Option : OptionBase { }
|
@ -1,3 +1,5 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
using System.Text.Json;
|
||||
using NSExt.Extensions;
|
||||
#if NET7_0_WINDOWS
|
||||
@ -9,7 +11,7 @@ namespace Dot.Json;
|
||||
|
||||
[Description(nameof(Str.Json))]
|
||||
[Localization(typeof(Str))]
|
||||
public class Main : ToolBase<Option>
|
||||
internal class Main : ToolBase<Option>
|
||||
{
|
||||
private object _inputObj;
|
||||
|
||||
@ -43,7 +45,7 @@ public class Main : ToolBase<Option>
|
||||
var inputText = Opt.InputText;
|
||||
|
||||
#if NET7_0_WINDOWS
|
||||
if (inputText.NullOrWhiteSpace()) inputText = ClipboardService.GetText();
|
||||
if (inputText.NullOrWhiteSpace()) inputText = await ClipboardService.GetTextAsync();
|
||||
#endif
|
||||
if (inputText.NullOrWhiteSpace()) throw new ArgumentException(Str.InputTextIsEmpty);
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
|
||||
namespace Dot.Json;
|
||||
|
||||
public class Option : OptionBase
|
||||
internal class Option : OptionBase
|
||||
{
|
||||
[CommandOption("-c|--compress")]
|
||||
[Description(nameof(Str.CompressJson))]
|
||||
|
@ -27,7 +27,7 @@ namespace Dot.Lang {
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class Str {
|
||||
internal class Str {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
@ -68,14 +68,14 @@ namespace Dot.Lang {
|
||||
<#
|
||||
var xml = new XmlDocument();
|
||||
xml.Load("Str.resx");
|
||||
foreach (XmlNode data in xml.SelectNodes("//root/data")) {
|
||||
foreach (XmlNode data in xml.SelectNodes("//root/data")!) {
|
||||
#>
|
||||
/// <summary>
|
||||
/// <#= data.SelectSingleNode("value").InnerText #>
|
||||
/// <#= data.SelectSingleNode("value")?.InnerText #>
|
||||
/// </summary>
|
||||
public static string <#= data.Attributes["name"].Value #> {
|
||||
public static string <#= data.Attributes?["name"].Value #> {
|
||||
get {
|
||||
return ResourceManager.GetString("<#= data.Attributes["name"].Value #>", resourceCulture);
|
||||
return ResourceManager.GetString("<#= data.Attributes!["name"].Value #>", resourceCulture);
|
||||
}
|
||||
}
|
||||
<#
|
||||
|
@ -1,10 +1,12 @@
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
|
||||
namespace Dot;
|
||||
|
||||
public abstract class OptionBase : CommandSettings, IOption
|
||||
internal abstract class OptionBase : CommandSettings, IOption
|
||||
{
|
||||
[CommandOption("-k|--keep--session")]
|
||||
[Description(nameof(Str.KeepSession))]
|
||||
[Localization(typeof(Str))]
|
||||
[DefaultValue(false)]
|
||||
public virtual bool KeepSession { get; set; }
|
||||
public bool KeepSession { get; set; }
|
||||
}
|
@ -29,6 +29,6 @@ app.Configure(config => {
|
||||
});
|
||||
|
||||
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
|
||||
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
|
||||
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
|
||||
CultureInfo.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
|
||||
return app.Run(args);
|
@ -1,3 +1,5 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
using NSExt.Extensions;
|
||||
#if NET7_0_WINDOWS
|
||||
using TextCopy;
|
||||
@ -8,7 +10,7 @@ namespace Dot.Pwd;
|
||||
|
||||
[Description(nameof(Str.RandomPasswordGenerator))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : ToolBase<Option>
|
||||
internal sealed class Main : ToolBase<Option>
|
||||
{
|
||||
private readonly char[][] _charTable = {
|
||||
"0123456789".ToCharArray() //
|
||||
|
@ -1,6 +1,9 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
|
||||
namespace Dot.Pwd;
|
||||
|
||||
public class Option : OptionBase
|
||||
internal class Option : OptionBase
|
||||
{
|
||||
[Flags]
|
||||
public enum GenerateTypes
|
||||
|
@ -1,8 +1,11 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
namespace Dot.Rbom;
|
||||
|
||||
[Description(nameof(Str.TrimUtf8Bom))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : FilesTool<Option>
|
||||
internal sealed class Main : FilesTool<Option>
|
||||
{
|
||||
private readonly byte[] _utf8Bom = { 0xef, 0xbb, 0xbf };
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
namespace Dot.Rbom;
|
||||
|
||||
public class Option : DirOption { }
|
||||
internal class Option : DirOption { }
|
@ -1,3 +1,6 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using NSExt.Extensions;
|
||||
@ -10,7 +13,7 @@ namespace Dot.Text;
|
||||
|
||||
[Description(nameof(Str.TextTool))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : ToolBase<Option>
|
||||
internal sealed class Main : ToolBase<Option>
|
||||
{
|
||||
private ref struct Output
|
||||
{
|
||||
|
@ -1,6 +1,9 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
namespace Dot.Text;
|
||||
|
||||
public class Option : OptionBase
|
||||
internal class Option : OptionBase
|
||||
{
|
||||
[CommandArgument(0, "[input text]")]
|
||||
[Description(nameof(Str.TextTobeProcessed))]
|
||||
|
@ -1,10 +1,13 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
using System.Net.Sockets;
|
||||
|
||||
namespace Dot.Time;
|
||||
|
||||
[Description(nameof(Str.TimeTool))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : ToolBase<Option>
|
||||
internal sealed class Main : ToolBase<Option>
|
||||
{
|
||||
private const int _MAX_DEGREE_OF_PARALLELISM = 10;
|
||||
private const int _NTP_PORT = 123;
|
||||
|
@ -1,6 +1,9 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
|
||||
namespace Dot.Time;
|
||||
|
||||
public class Option : OptionBase
|
||||
internal class Option : OptionBase
|
||||
{
|
||||
[CommandOption("-s|--sync")]
|
||||
[Description(nameof(Str.SyncToLocalTime))]
|
||||
|
@ -1,6 +1,6 @@
|
||||
namespace Dot.Time;
|
||||
|
||||
public static class ProgressTaskStateExtensions
|
||||
internal static class ProgressTaskStateExtensions
|
||||
{
|
||||
public static TimeSpan Result(this ProgressTaskState me)
|
||||
{
|
||||
|
@ -1,8 +1,11 @@
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global
|
||||
|
||||
using Spectre.Console.Rendering;
|
||||
|
||||
namespace Dot.Time;
|
||||
|
||||
public class TaskResultColumn : ProgressColumn
|
||||
internal class TaskResultColumn : ProgressColumn
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the alignment of the task description.
|
||||
|
@ -1,13 +1,18 @@
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global
|
||||
|
||||
|
||||
using NSExt.Extensions;
|
||||
using Spectre.Console.Rendering;
|
||||
|
||||
namespace Dot.Time;
|
||||
|
||||
public class TaskStatusColumn : ProgressColumn
|
||||
internal class TaskStatusColumn : ProgressColumn
|
||||
{
|
||||
public enum Statues : byte
|
||||
{
|
||||
[Description($"[gray]{nameof(Ready)}[/]")]
|
||||
// ReSharper disable once UnusedMember.Global
|
||||
Ready
|
||||
|
||||
, [Description($"[yellow]{nameof(Connecting)}[/]")]
|
||||
|
@ -1,8 +1,11 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
namespace Dot.ToLf;
|
||||
|
||||
[Description(nameof(Str.ConvertEndOfLineToLF))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : FilesTool<Option>
|
||||
internal sealed class Main : FilesTool<Option>
|
||||
{
|
||||
protected override async ValueTask FileHandle(string file, CancellationToken _)
|
||||
{
|
||||
@ -11,7 +14,8 @@ public sealed class Main : FilesTool<Option>
|
||||
var hasWrote = false;
|
||||
var isBin = false;
|
||||
string tmpFile;
|
||||
int data;
|
||||
// ReSharper disable once TooWideLocalVariableScope
|
||||
int data;
|
||||
|
||||
await using (var fsr = OpenFileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) {
|
||||
if (fsr is null) {
|
||||
|
@ -1,3 +1,6 @@
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
namespace Dot.ToLf;
|
||||
|
||||
public class Option : DirOption { }
|
||||
internal class Option : DirOption { }
|
@ -1,17 +1,10 @@
|
||||
namespace Dot;
|
||||
|
||||
public abstract class ToolBase<TOption> : Command<TOption> where TOption : OptionBase
|
||||
internal abstract class ToolBase<TOption> : Command<TOption> where TOption : OptionBase
|
||||
{
|
||||
protected TOption Opt { get; private set; }
|
||||
protected abstract Task Core();
|
||||
|
||||
public override int Execute(CommandContext context, TOption option)
|
||||
{
|
||||
Opt = option;
|
||||
Run().Wait();
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected virtual async Task Run()
|
||||
{
|
||||
await Core();
|
||||
@ -20,4 +13,11 @@ public abstract class ToolBase<TOption> : Command<TOption> where TOption : Optio
|
||||
AnsiConsole.Console.Input.ReadKey(true);
|
||||
}
|
||||
}
|
||||
|
||||
public override int Execute(CommandContext context, TOption option)
|
||||
{
|
||||
Opt = option;
|
||||
Run().Wait();
|
||||
return 0;
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
namespace Dot;
|
||||
|
||||
public static class ToolsFactory
|
||||
{
|
||||
// public static ITool Create(IOption option)
|
||||
// {
|
||||
// return option switch {
|
||||
// Option o => new Main(o)
|
||||
// , ToLf.Option o => new ToLf.Main(o)
|
||||
// , RmBlank.Option o => new RmBlank.Main(o)
|
||||
// , Pwd.Option o => new Pwd.Main(o)
|
||||
// , Text.Option o => new Text.Main(o)
|
||||
// , Guid.Option o => new Guid.Main(o)
|
||||
// , Time.Option o => new Time.Main(o)
|
||||
// #if NET7_0_WINDOWS
|
||||
// , Color.Option o => new Color.Main(o)
|
||||
// #endif
|
||||
// , IP.Option o => new IP.Main(o)
|
||||
// // , Git.Option o => new Git.Main(o)
|
||||
// , Json.Option o => new Json.Main(o)
|
||||
// , _ => throw new ArgumentOutOfRangeException(nameof(option))
|
||||
// };
|
||||
// }
|
||||
}
|
@ -1,11 +1,13 @@
|
||||
using Dot.RmBlank;
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
|
||||
using NSExt.Extensions;
|
||||
|
||||
namespace Dot.Trim;
|
||||
|
||||
[Description(nameof(Str.RemoveTrailingWhiteSpaces))]
|
||||
[Localization(typeof(Str))]
|
||||
public sealed class Main : FilesTool<Option>
|
||||
internal sealed class Main : FilesTool<Option>
|
||||
{
|
||||
private static int GetSpacesCnt(Stream fsr)
|
||||
{
|
||||
|
@ -1,3 +1,6 @@
|
||||
namespace Dot.RmBlank;
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
|
||||
public class Option : DirOption { }
|
||||
|
||||
namespace Dot.Trim;
|
||||
|
||||
internal class Option : DirOption { }
|
@ -1,3 +1,6 @@
|
||||
// ReSharper disable UnusedMember.Global
|
||||
// ReSharper disable UnusedMethodReturnValue.Global
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Dot;
|
||||
|
Reference in New Issue
Block a user