From 10873118147cc73c768ed65e923621239decb665 Mon Sep 17 00:00:00 2001 From: heku Date: Sun, 7 Nov 2021 12:48:24 +0800 Subject: [PATCH] Code refactor --- .../Models/CustomEditor.cs | 12 ++---------- .../Models/FileEditorFactory.cs | 14 +------------- .../Pages/OptionsPage.xaml.cs | 3 +-- Screenshots/MultipleProjects.png | Bin 5398 -> 2415 bytes Screenshots/Options.png | Bin 24063 -> 10069 bytes Screenshots/SingleProject.png | Bin 5766 -> 2518 bytes Screenshots/Solution.png | Bin 12087 -> 4443 bytes 7 files changed, 4 insertions(+), 25 deletions(-) diff --git a/Kool.EditProject.Shared/Models/CustomEditor.cs b/Kool.EditProject.Shared/Models/CustomEditor.cs index f99afd8..a1a3cbe 100644 --- a/Kool.EditProject.Shared/Models/CustomEditor.cs +++ b/Kool.EditProject.Shared/Models/CustomEditor.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Runtime.InteropServices; +using static Kool.EditProject.EditProjectPackage; namespace Kool.EditProject.Models { @@ -16,17 +17,8 @@ internal sealed class CustomEditor : IFileEditor [DllImport("User32.dll")] private static extern bool IsIconic(IntPtr hWnd); - private readonly string _exe; - private readonly string _arg; - private static readonly Dictionary EditingFiles = new(StringComparer.OrdinalIgnoreCase); - public CustomEditor(string exe, string arg) - { - _exe = exe; - _arg = arg; - } - public void OpenFile(string file) { if (EditingFiles.TryGetValue(file, out var id)) @@ -49,7 +41,7 @@ public void OpenFile(string file) var process = new Process { EnableRaisingEvents = true, - StartInfo = new ProcessStartInfo(_exe, _arg.Replace("$FILE", file)) + StartInfo = new ProcessStartInfo(Options.EditorExe, Options.EditorArg.Replace("$FILE", file)) }; process.Exited += (_, _) => EditingFiles.Remove(file); process.Start(); diff --git a/Kool.EditProject.Shared/Models/FileEditorFactory.cs b/Kool.EditProject.Shared/Models/FileEditorFactory.cs index fb0c019..39f74fd 100644 --- a/Kool.EditProject.Shared/Models/FileEditorFactory.cs +++ b/Kool.EditProject.Shared/Models/FileEditorFactory.cs @@ -6,19 +6,7 @@ internal static class FileEditorFactory { private static IFileEditor CachedEditor; - public static IFileEditor GetEditor() - { - return CachedEditor ??= CreateEditor(); - -#pragma warning disable IDE1006 // Naming Styles - static IFileEditor CreateEditor() -#pragma warning restore IDE1006 // Naming Styles - { - return Options.UseCustomEditor - ? new CustomEditor(Options.EditorExe, Options.EditorArg) - : new VsEditor(); - } - } + public static IFileEditor GetEditor() => CachedEditor ??= Options.UseCustomEditor ? new CustomEditor() : new VsEditor(); public static void ClearCache() => CachedEditor = null; } diff --git a/Kool.EditProject.Shared/Pages/OptionsPage.xaml.cs b/Kool.EditProject.Shared/Pages/OptionsPage.xaml.cs index 3f3e451..2733fb5 100644 --- a/Kool.EditProject.Shared/Pages/OptionsPage.xaml.cs +++ b/Kool.EditProject.Shared/Pages/OptionsPage.xaml.cs @@ -19,7 +19,6 @@ public OptionsPage(Options options) private void OnBrowseButtonClicked(object sender, RoutedEventArgs e) { - // TODO: How to localize it? var dialog = new OpenFileDialog(); if (!string.IsNullOrWhiteSpace(_options.EditorExe)) { @@ -41,7 +40,7 @@ private void OnTestButtonClicked(object sender, RoutedEventArgs e) { var file = Path.GetTempFileName(); File.WriteAllText(file, "Hello World"); - new CustomEditor(_options.EditorExe, _options.EditorArg).OpenFile(file); + new CustomEditor().OpenFile(file); } catch (Exception ex) { diff --git a/Screenshots/MultipleProjects.png b/Screenshots/MultipleProjects.png index 11a43096f870054ae0f3bae9b7b3c36547350c07..93fc6c251313ae39295028f8e6e1cf2d2ab32b7c 100644 GIT binary patch literal 2415 zcmV-#36S=QP)-8e00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px#hfqvZMd|MUY#&RMrpm+Byo}KQ>F&H99v;Ni|G>)W z{~i!{x&B%mO6kv-!_@z1s{dyl9YH}rLyO)UO_;;S^sMgxMI9YS9dsURyfl6@h({vB zxtBYSy6UfY>h0bo9ZDS`bjX!o%kKZg+24_49jtC1s?`0efJ$bfYIt~OkfWOA<@b2I zysO2r*Jg)`000PvNkla%xS`hLc+Oaf#Y=;%%2PsINisQzhBJk0z8pzqrqSh zisR*Wl%r7U*9Lt}d2$}6Wqm*6wBgTETZG>U~~&dU?ic)y6PI%K}D2(cX; znrnxvRUBx-OdXzhSFz+@?;#W)W*shB6(a=@0yS2g%F8QrFk50h2}0l%gvidfO?B4Z zQ@jeamuA~x%5M4Bgb0u!1U8Ehn;f>orW+v;t^^_WG}*os+%Dv|C_fYt`mgP!veVId zBUwkPI|APnr*S`>H8~zCFD)J|{6q52JPo`RJ_I2j4`V*2tq|{kJ&i1-@G zrjLOv%f27j7b(q+hpewDBoq$=7oO{^)A@{c2We%;gTN@*)N`SSkDSdsqNSI{|7$KS5gw_w�eBR|1Y0T%E znB%7~FDai%);k;a)Zhm`YWZnXbA0xsvkb3Ch;w}3Kh3)VuS2#u1%8ure0p%%<-9TioTThsZGxD1BT1!qvV~> zJ|P*(Ku&SVCT36bK#mr{yx}>15G<#m{7zEdJ;`Yn%ZZn)e~!<4QuI=vdFj5C@~Co8hZ6eiMW+$M^kj-P3&Qo~DU8{*sSDv7GR;3HDaFK&&rWznA*LM{}b^19SXt zgq;hVXKivf8Obs%9WPlY;X~WaBO@atyRuCtMCh~~hn#SDY;y&k;D3wj5MCZma&_1T z#X=s9AA9{y57O~t&1MwOA}6Mp#3F?EN8IKAH3xIFwqI@$v zvbHD>tQ)m%)*@UduVqMgNLY9PH@colQ2g(Wr-Ky$^rINOamsvEoM2A7SqugsZHOf1 z<^9f)O-F7?$h#QvGs(3>cGDJNKMK8c3suBmLi`qDLBEbSi&$4a&&ykHH1pQG=es22 z)qwqrA{;Z{R8BaahGUQ*_zBp-W-Cg-!CRPf_WSbE%_1x(^iqw4J9kNFSy3G_NN>H( zdFh(t$JiR-L=2vr_0pH;dmucY@n@26ha83te2MC5*n#Y6m{&qiqq~(Eq=w#`O4|0k zJ0@(+BU`DLl97>-k&%&+k&)elSz4PtJ8)Wf%jh(v_wAq82f|GBuvsQg*qNZfv+Z5} zo~~7c;e|RYCbY{G5FSyq>)ZvQT5Ujx`91JJBRmmKpx}mrzEK9{d>LaaPxm`tFI@Nk z5@}sj|Bt(_ygF>IMyQ(;64_EH3W{1?1l3=?36OF=L@$~z1>V?+q$}S6K;Z~tkMZj3 z*)8f&iusnDEn*Y5G8`JDQ&mQY-68^2oyMS45W#g|uBnf+E5+Auhf2)P5^9xSeHlg> zlki2qN8Kz=ATnDQGc%>v^HQnmD={DaNC(jxDt{E)Wu%-hyi}gXijR%JTuq2q=ZNt& zhYLQo8Dc&N_9}=LPjCTW2>QB=kn?4Xtvn6g)$!TW?*QHmPvuuPUYyrt|6H_cfMfTb zw9+bw|27UjOr9$dI{CazghWV$?I65w!Tw(bRiC_+2#JsgiLgGxRg$b)UWZO0{>@8W zLaau3en^zrhdurlDi2cY%|sT>S`(xR zUAqz?tHIT<*h?=EUcBi$Ba~bP%~0GK3iJKWSETha&`XcIXBmp0i_OG)kljGLKx75Fy9yQ zy$zs4@iTGy1wGARR-0m9@tNi;NzVW87xrJS{0Bc*pIfXijsGnm98b5`eiu*kLn0(X zB6Ne0RDJSNA|yg0tdRHIdcw7Xfa@xRXD6e+HXhk8r|y;H`ya1Xs0-hAm7Xf{z5FwS zs)RSL!z%Lq_$RIAjtPG!-}A^}b6IS8fJ^U~A^S2-1^(Bo`2WF6f0pkBVQyJ$egI4F zSRwl&O-~;xL&{FU$qXs-^%wa#ab5IUWmsG+0PN) zAV$BatNcN}=NYVJv8_;iD`eja&9@bQ>;1@e2`|g{a@@3*#a8R`7|UW?X>bW!@xL}< h0rM~9`@0zx{sX(HwF)K8I0^s&002ovPDHLkV1l7qsCEDV literal 5398 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 n;Kas#hb5PQ$7~wS_(Rb)@x*BWH+9wD(aAt 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 Zo!4JqEg1CZa6><+tdx>ufw-~HKLA}Wql*9l diff --git a/Screenshots/SingleProject.png b/Screenshots/SingleProject.png index b47c6a63cb77a9e96e2a62e5deedf0e4ebeefe81..6aa77ec3d8a56a3397707d0eefbf400024ebc4f6 100644 GIT binary patch literal 2518 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 OMMXhVzFN*A^gjU6TL_K- diff --git a/Screenshots/Solution.png b/Screenshots/Solution.png index f99b106ad6ecaeb52d8f34e2818ae41e6e336040..4f7caa9fc81587c2ce6bcd9c83bc8b23ec757445 100644 GIT binary patch literal 4443 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 RpN0rPSKHuzrKWw<{{Z7e8}tAG literal 12087 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