From 115009852cf657203655ccc6c094196c1d0e0b6c Mon Sep 17 00:00:00 2001 From: ATrefzer <36333177+ATrefzer@users.noreply.github.com> Date: Sun, 7 Sep 2025 18:54:41 +0200 Subject: [PATCH 1/4] Added infrastructure for icons --- .claude/settings.local.json | 10 ++++ .../Areas/SearchArea/SearchItemViewModel.cs | 4 ++ .../Areas/TreeArea/TreeItemViewModel.cs | 4 ++ CSharpCodeAnalyst/CSharpCodeAnalyst.csproj | 13 +++++ .../Common/CodeElementIconMapper.cs | 48 ++++++++++++++++++ CSharpCodeAnalyst/MainWindow.xaml | 17 +++++-- CSharpCodeAnalyst/Resources/Assembly_16.png | Bin 0 -> 2343 bytes CSharpCodeAnalyst/Resources/Class_16.png | Bin 0 -> 2717 bytes CSharpCodeAnalyst/Resources/Delegate_16.png | Bin 0 -> 2351 bytes CSharpCodeAnalyst/Resources/Enum_16.png | Bin 0 -> 8692 bytes CSharpCodeAnalyst/Resources/Event_16.png | Bin 0 -> 2713 bytes CSharpCodeAnalyst/Resources/Field_16.png | Bin 0 -> 2535 bytes CSharpCodeAnalyst/Resources/Interface_16.png | Bin 0 -> 2554 bytes CSharpCodeAnalyst/Resources/Method_16.png | Bin 0 -> 2507 bytes CSharpCodeAnalyst/Resources/Namespace_16.png | Bin 0 -> 2243 bytes CSharpCodeAnalyst/Resources/Other_16.png | Bin 0 -> 840 bytes CSharpCodeAnalyst/Resources/Property_16.png | Bin 0 -> 1494 bytes CSharpCodeAnalyst/Resources/Record_16.png | Bin 0 -> 8387 bytes CSharpCodeAnalyst/Resources/Struct_16.png | Bin 0 -> 2700 bytes 19 files changed, 92 insertions(+), 4 deletions(-) create mode 100644 .claude/settings.local.json create mode 100644 CSharpCodeAnalyst/Common/CodeElementIconMapper.cs create mode 100644 CSharpCodeAnalyst/Resources/Assembly_16.png create mode 100644 CSharpCodeAnalyst/Resources/Class_16.png create mode 100644 CSharpCodeAnalyst/Resources/Delegate_16.png create mode 100644 CSharpCodeAnalyst/Resources/Enum_16.png create mode 100644 CSharpCodeAnalyst/Resources/Event_16.png create mode 100644 CSharpCodeAnalyst/Resources/Field_16.png create mode 100644 CSharpCodeAnalyst/Resources/Interface_16.png create mode 100644 CSharpCodeAnalyst/Resources/Method_16.png create mode 100644 CSharpCodeAnalyst/Resources/Namespace_16.png create mode 100644 CSharpCodeAnalyst/Resources/Other_16.png create mode 100644 CSharpCodeAnalyst/Resources/Property_16.png create mode 100644 CSharpCodeAnalyst/Resources/Record_16.png create mode 100644 CSharpCodeAnalyst/Resources/Struct_16.png diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..333db68 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,10 @@ +{ + "permissions": { + "allow": [ + "Bash(dotnet build)", + "Bash(dotnet build:*)" + ], + "deny": [], + "ask": [] + } +} \ No newline at end of file diff --git a/CSharpCodeAnalyst/Areas/SearchArea/SearchItemViewModel.cs b/CSharpCodeAnalyst/Areas/SearchArea/SearchItemViewModel.cs index cb9608a..b8a9eed 100644 --- a/CSharpCodeAnalyst/Areas/SearchArea/SearchItemViewModel.cs +++ b/CSharpCodeAnalyst/Areas/SearchArea/SearchItemViewModel.cs @@ -1,6 +1,8 @@ using System.ComponentModel; using System.Diagnostics; +using System.Windows.Media.Imaging; using Contracts.Graph; +using CSharpCodeAnalyst.Common; namespace CSharpCodeAnalyst.SearchArea; @@ -11,6 +13,8 @@ public class SearchItemViewModel : INotifyPropertyChanged public string Type { get; set; } = string.Empty; public string FullPath { get; set; } = string.Empty; public CodeElement? CodeElement { get; set; } + + public BitmapImage? Icon => CodeElement != null ? CodeElementIconMapper.GetIcon(CodeElement.ElementType) : null; public event PropertyChangedEventHandler? PropertyChanged; diff --git a/CSharpCodeAnalyst/Areas/TreeArea/TreeItemViewModel.cs b/CSharpCodeAnalyst/Areas/TreeArea/TreeItemViewModel.cs index 7cad5b9..0f81d48 100644 --- a/CSharpCodeAnalyst/Areas/TreeArea/TreeItemViewModel.cs +++ b/CSharpCodeAnalyst/Areas/TreeArea/TreeItemViewModel.cs @@ -1,7 +1,9 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; +using System.Windows.Media.Imaging; using Contracts.Graph; +using CSharpCodeAnalyst.Common; namespace CSharpCodeAnalyst.TreeArea; @@ -16,6 +18,8 @@ public class TreeItemViewModel : INotifyPropertyChanged public string? Type { get; set; } public CodeElement? CodeElement { get; set; } public ObservableCollection Children { get; set; } = []; + + public BitmapImage? Icon => CodeElement != null ? CodeElementIconMapper.GetIcon(CodeElement.ElementType) : null; public bool IsExpanded { diff --git a/CSharpCodeAnalyst/CSharpCodeAnalyst.csproj b/CSharpCodeAnalyst/CSharpCodeAnalyst.csproj index 0d43b7f..eb6d7df 100644 --- a/CSharpCodeAnalyst/CSharpCodeAnalyst.csproj +++ b/CSharpCodeAnalyst/CSharpCodeAnalyst.csproj @@ -59,6 +59,19 @@ + + + + + + + + + + + + + diff --git a/CSharpCodeAnalyst/Common/CodeElementIconMapper.cs b/CSharpCodeAnalyst/Common/CodeElementIconMapper.cs new file mode 100644 index 0000000..d4c675d --- /dev/null +++ b/CSharpCodeAnalyst/Common/CodeElementIconMapper.cs @@ -0,0 +1,48 @@ +using System.Windows.Media.Imaging; +using Contracts.Graph; + +namespace CSharpCodeAnalyst.Common; + +public static class CodeElementIconMapper +{ + private static readonly Dictionary _iconCache = new(); + + static CodeElementIconMapper() + { + InitializeIcons(); + } + + public static BitmapImage GetIcon(CodeElementType elementType) + { + return _iconCache.TryGetValue(elementType, out var icon) ? icon : _iconCache[CodeElementType.Other]; + } + + private static void InitializeIcons() + { + _iconCache[CodeElementType.Assembly] = LoadIcon("Assembly_16.png"); + _iconCache[CodeElementType.Namespace] = LoadIcon("Namespace_16.png"); + _iconCache[CodeElementType.Class] = LoadIcon("Class_16.png"); + _iconCache[CodeElementType.Interface] = LoadIcon("Interface_16.png"); + _iconCache[CodeElementType.Struct] = LoadIcon("Struct_16.png"); + _iconCache[CodeElementType.Method] = LoadIcon("Method_16.png"); + _iconCache[CodeElementType.Property] = LoadIcon("Property_16.png"); + _iconCache[CodeElementType.Delegate] = LoadIcon("Delegate_16.png"); + _iconCache[CodeElementType.Event] = LoadIcon("Event_16.png"); + _iconCache[CodeElementType.Enum] = LoadIcon("Enum_16.png"); + _iconCache[CodeElementType.Field] = LoadIcon("Field_16.png"); + _iconCache[CodeElementType.Record] = LoadIcon("Record_16.png"); + _iconCache[CodeElementType.Other] = LoadIcon("Other_16.png"); + } + + private static BitmapImage LoadIcon(string fileName) + { + var uri = new Uri($"pack://application:,,,/Resources/{fileName}"); + var bitmap = new BitmapImage(); + bitmap.BeginInit(); + bitmap.UriSource = uri; + bitmap.CacheOption = BitmapCacheOption.OnLoad; + bitmap.EndInit(); + bitmap.Freeze(); // Make it thread-safe and improve performance + return bitmap; + } +} \ No newline at end of file diff --git a/CSharpCodeAnalyst/MainWindow.xaml b/CSharpCodeAnalyst/MainWindow.xaml index 06e36ec..bfa674c 100644 --- a/CSharpCodeAnalyst/MainWindow.xaml +++ b/CSharpCodeAnalyst/MainWindow.xaml @@ -330,7 +330,7 @@ - + @@ -405,12 +405,21 @@ + + + + + + + + - + + + diff --git a/CSharpCodeAnalyst/Resources/Assembly_16.png b/CSharpCodeAnalyst/Resources/Assembly_16.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4032980437d7cf95af1c24675aed89f2d7aff9 GIT binary patch literal 2343 zcmV+?3E1|DP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vIHc>n;Nc>zOVv`qj22)s!|K~z{rtygR8adv2?no4dXA`fvNsc2aM5b7yDU zdG@hZ+hVo6mF{E}K?Fr?feDD+sM0u~+ z(i!#SXNkXhn6fIHy$YYb?`8-5EO;Ke*kz8!R)L1&JMfpb(%O}BHB)~v1SxYOJv9x?cnkmF@?dpvc})|Qn`fq{WEJv~hl zsgx!?9;&}yN5P{tyOv9gqS+Hr=(DQJ z^ugJ)RCT$E>g(&tXbhtjD;^a%&>6zQC~CzD;T>P7@EItVQ$%DWHC(^05@Ipqox&SZ*^!xOL^ z!Ve!gLaXBA$?bMi)2&7-D=neQixpH`bCo(e+Bwb=TDB~d0s;c&c>s!CtF58ar{5Vh zgofC-NmYAM0)ztSaOT(qz1b2k=f^r^JG)m73*mNH4&g&XLv-f7cd5L*k|Ls_DJCwF z!c8k^%;l!Ck`n5B&`p-uIO1;TR{{y>a*ffAh8u2H=1rF4;&)mLzh#3xlG)xqb_^X3 zwSrn+xArmZ!Ji+ZOBLnR)zwA&fAnMF#&_R7O743AJ+sNbW% z{~hJ+-c4&BOQDAP>vZbWTa>@=hosZ#x#s)mPHVGJATBn%GEj&9)yQNGNnZSbuuCv6(Qfyotg>fmN&PPT@DLf)lSa74E zfl}6Q5SBxDQQ`Y!&`QO@ciaI78qh-ctgzWMGZ?}IZ^(cw$b@Vu({OX2-`n8@G#Nlp zkdh`QCaAZkhZ|A2a62sD_(Tf*;?U2;d3^0^YHj{p;6T&c+ar<{IfNv(+lNG$=E{If z$X;?7@k9|}$jQwixm+Nbes*2#I1@K2?IbVoK7cw^uZar)zmDq9SH}3+i%uiqczEi zl=uC7_E3oEmVbWjB)$B~%QVOqA1gRE!os&Qc?TO5$Y&I*n^0gbV3~N(*I#k)-~siM z8#nnC06+<3cWX;C-Q-g1;cQ1zAV1cwTgRofnyV&=NAf)?IC_-wpUJ09-`Px`{k@7# zoH#kU+-S&H*ox;Vz`{3Sli9f|TW{TATh!M92nQ5_Vo(OZk#GnXez!D#L9d^DohN1n zpB(}}cNppQx@=bBikID23SfccIM-v1@(K4P;Zgv`z@yZV?L9r+RD1O*-MV#~_UwIz zur+}O24Eadu@dF1#Knq>eXQ(yo{0Yfp8&y)!R_{>@IqqTyk)B>J810#pVa^e1ylUS zltZ1v3XMihsi~>lJMt*ZXcS57^B%S$EF|DvTT^Qs9(JVgwNSu6j(H&&;f*Apt5b^| z&gXuyOt3N#hN-62=|ouqhs`M|X*F%xx>b}~Y}_i57YGCLLdHCpP$=u+@L;&Lw6=D8 z7ZNAr`W3)Md}8tyc3}?Nsj~2{FFe7PAbyzV7^(L( zg`$z_>Kczy5h#y|vG{YNr05eWE-oF=YBW1J2U@&h7c3;at@74-8QZH=GNZx{hcybx zgJps(f8%cFy*=z|MX15x4+lboCUf@ehfb|l^ORPjKGWEEJ0~DOs$3o(E-Z&|Zg{qe z;*aXQ;sh)zLjczE@rj9#gLS${hr_`;oIDqqo3`V7dJfZ_!-o%tVXFB`6d`GEYomgK zf`_W0pt#DikL{=^w!BcM(;0^yj&7wwk;B5Ti3f9F$zcR7<$>~4PL`d>SYO$&rQ901 zjW3uTvxiwRPS7ym4c>wWcr7Iyu%rk66QE;$(|=C?F9iVK?B8>ue*;p5qSmB;Gid+- N002ovPDHLkV1k4~c~}4d literal 0 HcmV?d00001 diff --git a/CSharpCodeAnalyst/Resources/Class_16.png b/CSharpCodeAnalyst/Resources/Class_16.png new file mode 100644 index 0000000000000000000000000000000000000000..515c57d646b224870fd433b0ccc7ac75f9f43e9d GIT binary patch literal 2717 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 T*`>ZF00000NkvXXu0mjfl3Ocw literal 0 HcmV?d00001 diff --git a/CSharpCodeAnalyst/Resources/Field_16.png b/CSharpCodeAnalyst/Resources/Field_16.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5f945904eefed14d9e5c1ab7be0d94f2d85c73 GIT binary patch literal 2535 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vH+`TziZ`T=37Zv+4U34BRJK~z{rg_nDb zTvZ*%f9KrSymw}IXS*X5!6J!ed}%d!w>!D&O7eBYhd%{i>2pzlM~sAY5bJV&&`SXLcz-C^Rlh2eU)uj zRH;;|T9(E0Roc^O2YuA? z`kt2~A+A%(ulc?j#%~%0!GhGZHBcn^@0VZd`{R>;(*ODAr@rSB-Om%QB+V3%pSkg~ zuiy9U2hU5TQW4+x9ek^RJeUDtuu%vxf_4h{OW#(5xM3LYJoV%sj6`eC)?9XsesKFO zci{WI;3FcJ+OwrIlj%#xVzJ}c?Ihl7paryn&EO(XfHgv3HQ2I*3HAp8RU_fZ8d!t2 zfBHK5`8^NZgZ_7dk4Q5GS|ibj&~-hB3E8{>&_N1>mfn*f4SJWpeF#QDe-J2E(13-| z2)cInjdb_k2k*wq55XDIOo52+1NV&`P*YyvG9mkUQC zcCj!=N_phCesIP1Yv`xH*!wH|emhteZK*w5x<0pO&#hawY>mPKS-i6oa^E;uNooFW zfdw#!F{{$)j#_qn)G5yAjY=u6&F80c9qG1mtybN3Y-s2O^kb!)TEMd_l>&Bh7|*jVwKo`b#B6@tZCqWL*%@9h6sfK5IJP5~an{=zwe zBkBSufye(zGX<(O$8k^thIQRgnx>xv3ZRM|Bmk0}Ml0ZfJb>s)9OEP?VbOlfDbbz) zXM}$Jpc_O`>$+{-bHi(M6XTu7-aFE#Nf~loH*16=85t=0p1Y|g8U2N zMUsky?b+oVnW43&W$BsKs|Tf&5jgdiTaro6pzKR^Il~^e?%w>{@9gOLT5HTOeatV( z)dQo2+^zxA3L}^{>$%Ab@-pzkWX5AuE4o5TU6wu+q(@0vDc9E`Gy1~GWDxHQ2grhh z2llIl^S@O2{GL4~%(Cyn2k!6u$&Y`;+3+=9v%vz!hD$QBZ}#`bb%o6c>`0hxG&_1!9({LzsI^4_EzgX1W~dwL_K(A5)3CPYsl@qNPmfnCRmZ}7 z>wKlYl1!$!u5i7mOM?P}Dvr<5gu5L{4cCE|kf3zj^eaW3K{A{Na=4{l`b-!L1QEQ`$6oRL}|5NnE%QsL&R%taNTbKztIPTG8 zS)&^^rgY&IQ=&SR(n`m=Re6r=YV{fTR;9hYoeR@)9%xX2BcEDvIPFN8Bc@bue)Y00 zCG>EIugCO23z09wv~yq=wQblzfm5cNwwkoQyDjkBE>&N+dVtd1=hB61x~V6H(Y|An zZ-=<3b)@3L3WauHQ|q|QFRr&J4GKsBC*$;XLJBJCW^_|L)g7e}3Lyw$edKixELe#S z*DAda74! zvNR+jJ;)WE=$j*j%U#dcPujxmKCj==Ov`kNGg+0&7(sTb6p~(#FIF$$m;y)k)4Z%>$;SDPZ&mx;mWuiiVX?~vK^(zLuOD~ zDAJHzYhHQ7&9hkOH5^F^nK6ZD^cPbYt)Y9D2vh=fL2_LPgyahd|23-LmQKf6hKrQI z`6}h29>h^w*a24xL*;}FZPw7V6NYXCF|UNwRQ(71Zz7~?0piHDbj>$)sSHgf3@KW5 zO^fSN%)qS2@GgLbcjOF#pk4$@;%2P)4!}hS`v^D$mo3ns!1$q;PLv*b?$Ffi;Zymy z3$9Nt#trzxh+|--N*f8OxU<;VS-QaQj zAx)uRU5UwZ@a!nQqfx`40$fl6V@s_A%kk|>%jL4-Z_oVo*|*+0uy=8-hO<~fV(Ip_ z+iw2WEj!|gcoc5qAARr02e?o~ySsb3^7*-0(=d%hOCm7=NhA_6J|>7V@V#7KDC7TO x7}XEHC&Rc|ML!rGe(CYY9{nZeW`~6k{TDl-G`FersR;l8002ovPDHLkV1hB?+{FL@ literal 0 HcmV?d00001 diff --git a/CSharpCodeAnalyst/Resources/Interface_16.png b/CSharpCodeAnalyst/Resources/Interface_16.png new file mode 100644 index 0000000000000000000000000000000000000000..50c70f836f30cbb5a27425caee2d4189cc4469c1 GIT binary patch literal 2554 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 Q>i_@%07*qoM6N<$g4fvF@Bjb+ literal 0 HcmV?d00001 diff --git a/CSharpCodeAnalyst/Resources/Method_16.png b/CSharpCodeAnalyst/Resources/Method_16.png new file mode 100644 index 0000000000000000000000000000000000000000..e40309f22e0476d55e14a09f7e53e2d78e8d72af GIT binary patch literal 2507 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 Date: Sun, 7 Sep 2025 19:51:42 +0200 Subject: [PATCH 2/4] Painted some Icons --- CSharpCodeAnalyst/Resources/Assembly_16.png | Bin 2343 -> 341 bytes CSharpCodeAnalyst/Resources/Class_16.png | Bin 2717 -> 967 bytes CSharpCodeAnalyst/Resources/Delegate_16.png | Bin 2351 -> 1110 bytes CSharpCodeAnalyst/Resources/Enum_16.png | Bin 8692 -> 1173 bytes CSharpCodeAnalyst/Resources/Event_16.png | Bin 2713 -> 1142 bytes CSharpCodeAnalyst/Resources/Field_16.png | Bin 2535 -> 1076 bytes CSharpCodeAnalyst/Resources/Interface_16.png | Bin 2554 -> 1080 bytes CSharpCodeAnalyst/Resources/Method_16.png | Bin 2507 -> 1140 bytes CSharpCodeAnalyst/Resources/Namespace_16.png | Bin 2243 -> 540 bytes CSharpCodeAnalyst/Resources/Property_16.png | Bin 1494 -> 1034 bytes CSharpCodeAnalyst/Resources/Record_16.png | Bin 8387 -> 927 bytes CSharpCodeAnalyst/Resources/Struct_16.png | Bin 2700 -> 1047 bytes 12 files changed, 0 insertions(+), 0 deletions(-) diff --git a/CSharpCodeAnalyst/Resources/Assembly_16.png b/CSharpCodeAnalyst/Resources/Assembly_16.png index 8f4032980437d7cf95af1c24675aed89f2d7aff9..11e0c8b972cc7be8cc44cc4bd2fd5d56a0eb5a1f 100644 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F>>p_??`B~p#prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+!{T^vI!de>ey^m29-V0+Nt zzU0(l?ITJyic{xKy{9yHXVccOIA`yzpM;#UPK&hdvDy&6VN(H9_sv?h2mH*Z-~9h? zz1!MZR(789E~%9(IpQ}SNk3v#6sl}-SXoG}VAk8-!fxGr1@pMw1Je%4-fDEd^x8{=cnK& z>y-AlPjbxrGH-3S#@B;^Kg^pqKK%c`*UUsJ=g*d`_aEF|Id9JV(AxU=cY@$8+c#~R k50#ZH6J~h1)%SfiXS->_yUCHC8R%OEPgg&ebxsLQ07rR?od5s; literal 2343 zcmV+?3E1|DP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vIHc>n;Nc>zOVv`qj22)s!|K~z{rtygR8adv2?no4dXA`fvNsc2aM5b7yDU zdG@hZ+hVo6mF{E}K?Fr?feDD+sM0u~+ z(i!#SXNkXhn6fIHy$YYb?`8-5EO;Ke*kz8!R)L1&JMfpb(%O}BHB)~v1SxYOJv9x?cnkmF@?dpvc})|Qn`fq{WEJv~hl zsgx!?9;&}yN5P{tyOv9gqS+Hr=(DQJ z^ugJ)RCT$E>g(&tXbhtjD;^a%&>6zQC~CzD;T>P7@EItVQ$%DWHC(^05@Ipqox&SZ*^!xOL^ z!Ve!gLaXBA$?bMi)2&7-D=neQixpH`bCo(e+Bwb=TDB~d0s;c&c>s!CtF58ar{5Vh zgofC-NmYAM0)ztSaOT(qz1b2k=f^r^JG)m73*mNH4&g&XLv-f7cd5L*k|Ls_DJCwF z!c8k^%;l!Ck`n5B&`p-uIO1;TR{{y>a*ffAh8u2H=1rF4;&)mLzh#3xlG)xqb_^X3 zwSrn+xArmZ!Ji+ZOBLnR)zwA&fAnMF#&_R7O743AJ+sNbW% z{~hJ+-c4&BOQDAP>vZbWTa>@=hosZ#x#s)mPHVGJATBn%GEj&9)yQNGNnZSbuuCv6(Qfyotg>fmN&PPT@DLf)lSa74E zfl}6Q5SBxDQQ`Y!&`QO@ciaI78qh-ctgzWMGZ?}IZ^(cw$b@Vu({OX2-`n8@G#Nlp zkdh`QCaAZkhZ|A2a62sD_(Tf*;?U2;d3^0^YHj{p;6T&c+ar<{IfNv(+lNG$=E{If z$X;?7@k9|}$jQwixm+Nbes*2#I1@K2?IbVoK7cw^uZar)zmDq9SH}3+i%uiqczEi zl=uC7_E3oEmVbWjB)$B~%QVOqA1gRE!os&Qc?TO5$Y&I*n^0gbV3~N(*I#k)-~siM z8#nnC06+<3cWX;C-Q-g1;cQ1zAV1cwTgRofnyV&=NAf)?IC_-wpUJ09-`Px`{k@7# zoH#kU+-S&H*ox;Vz`{3Sli9f|TW{TATh!M92nQ5_Vo(OZk#GnXez!D#L9d^DohN1n zpB(}}cNppQx@=bBikID23SfccIM-v1@(K4P;Zgv`z@yZV?L9r+RD1O*-MV#~_UwIz zur+}O24Eadu@dF1#Knq>eXQ(yo{0Yfp8&y)!R_{>@IqqTyk)B>J810#pVa^e1ylUS zltZ1v3XMihsi~>lJMt*ZXcS57^B%S$EF|DvTT^Qs9(JVgwNSu6j(H&&;f*Apt5b^| z&gXuyOt3N#hN-62=|ouqhs`M|X*F%xx>b}~Y}_i57YGCLLdHCpP$=u+@L;&Lw6=D8 z7ZNAr`W3)Md}8tyc3}?Nsj~2{FFe7PAbyzV7^(L( zg`$z_>Kczy5h#y|vG{YNr05eWE-oF=YBW1J2U@&h7c3;at@74-8QZH=GNZx{hcybx zgJps(f8%cFy*=z|MX15x4+lboCUf@ehfb|l^ORPjKGWEEJ0~DOs$3o(E-Z&|Zg{qe z;*aXQ;sh)zLjczE@rj9#gLS${hr_`;oIDqqo3`V7dJfZ_!-o%tVXFB`6d`GEYomgK zf`_W0pt#DikL{=^w!BcM(;0^yj&7wwk;B5Ti3f9F$zcR7<$>~4PL`d>SYO$&rQ901 zjW3uTvxiwRPS7ym4c>wWcr7Iyu%rk66QE;$(|=C?F9iVK?B8>ue*;p5qSmB;Gid+- N002ovPDHLkV1k4~c~}4d diff --git a/CSharpCodeAnalyst/Resources/Class_16.png b/CSharpCodeAnalyst/Resources/Class_16.png index 515c57d646b224870fd433b0ccc7ac75f9f43e9d..0a70071fb6018ffe77e57321f390d9a8cf27f1cb 100644 GIT binary patch literal 967 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 N002ovPDHLkV1mZMFCzc| diff --git a/CSharpCodeAnalyst/Resources/Delegate_16.png b/CSharpCodeAnalyst/Resources/Delegate_16.png index 983eedcdc72c0c3f1840d620b58d6ea30dfd807a..0138201ad5692e972fa90b6dfbd32bfd0c48a137 100644 GIT binary patch delta 938 zcmV;b16BO564nSIiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVUZyyF2Mi* z4#5Gqk!$S$0001;MAT=&AE;*6tNq+(|h~5-HdNu$60|iM$K~y+TjZ;l% zTvZhQ&bjZ-oAgZzCNDx`jBm=c9ZL;ln6|{Cp}`;`_yZOtx(X)2r4n$_MX8X5g|-_v ziL}s#p{0uwTac2_EUXRGFbxt~ZDTu~79Grsnr0@<`?>eJn3)p6g&!QwS)A`2&d*1v zgMR_&M!X+hc4R0s*ylQK8UXyNUz}cs z0KzzcU-3~WE@I-^_!L(4ShEN<0=)3zp=-xp`}}ZEcdyo3=~%_AjV1sfA|r*=%z}R^ z-Qq9iPRtkYTps`cQSZ!?r{DVOy~2eE zW*%JV#HP7I0QMh!|J2QQ^GEb%Q01gdV!5=0?+TZ|#4yHSUw1G1vi)dn*^V#{vCVe$ zrNxUpapAKA3@m#NJZ?XTnuFf z``C3{FJaj*#x&@FF~Dl2j3BC^Qro~YP8(kDc?Z9ie}OR?#u!RiHeAO|bMp%S3Da~2 zS}O>)fTwq>gZ-*s4C4SqWE%M(0)L)O?SP#~B9&~#UzIh?E?>s3&MXKFA~Indz_0ob zczR{_hF|evvDBtfB33aXvOOpi7wzHmZ%<*>jMYDJ6IYg= zl=}Cy@62?yb!!5tSjSLWHO)vNRYKZWdRUOh=f0d@e^@$##w#-bv+h4SH*^1dXGgLt z@7NC8GD%WMVq%I^Nagk4c`N?*9F1Qdo@$b}ifOBy^YF5x|5wic09YGM6$!o3(EtDd M07*qoM6N<$f?nUO*8l(j delta 2189 zcmV;82y*w<2(J<$iBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPbF2n!; z4#WYKD-Ig~0001;MAT=&AE;y0sNq?-r`ZHgMR8Rl_2i{3UK~z{rwN`&{ z6jvR8yZd(UF3IIe2uaBAOAZL6DG^K|L7}#x0~7+GEoG`>(~^P%!$hl4+fl1i$4+PJ zXtiVO$mlrJPHA<7qE2UQJ1XKI)d~oug+SB%xFnam+-2|Q-rm05=l8ppt0Zy>(eX3) zy?=fC-S@uV@B99Gk1P~bH8lc0SFKoH3y&v&zU6CdXhB{@WtE7}|0`CmSWfZjELrke z?*lvemmb{B%PXtSAg_IG>w*nf@B&Yvi{mpLNfb8wyrgA$Bhi^DBX7;BW%jp)U|s`` z_H>K<>YE~uzAN$zC#9zz*&!jntiod&jDL}gVGy^&)=xYNp?wc-r~7torn@^k=%%*S zv}su*t*xv3??UsVqxuzKeTs7FJJQ18CbGTN?by z1x^QXIUJ_bAv2dl0g{Ab6Ct-iC{^=@29#CRN-awZ#dqHO&{)w> zyY9-s@EyQLN!W1|ARSD&|MT5jT479HIq}CJA;~wvwN5Yyyeb2sXnzUT$S^RW>|*c3 z(w`BMnSc*7N^usPm}vQc3k$MCa_oCY4)bTfj*X}Qc65^{ESn*Jwg+;Sbvnzd`?jqt zt159j7rR|bkxQY9L#C1kY^$-?zW3<5>5Gm87`PK@=)Mj77WgWXmoK96{b^ zU*OGxSZf)BBz1#GkSFh5_6Lr>^m{zAjr#g}0TkyZ&%ksQc+f4Vyr*}2$FWDZttB;O z9>b|nkjpJC!+1>7`BYNlkwl7z<0&4BB}pijnx-THz6Hv$!GADO6wIk;Vlj+sfDp4i z{RzZIuNRa@VWDH!!}qlRV&B#^nBi6=uE}aj7h_sRgbEULg9*@-psp;)cn*yxo0T~N zzoL^s7N?+10(W7;x`F0|=#;Up5LWMoRn=sX+o^@)ny4AfE+h0hx_%}hFT1Vl2_ZuB z0V8=7JOh|3p?__NF&&OG8^!ydJMoX9x6Xd#qO!;eps_%fnUW}4NT47`Cd3UgisLw| z99kfxA``g9jC9(FOoYs6Tm!idDA&1x>j5QTX$0d3ar3;~yQ6tatFN4tdJ3QeDkKq4 zkWesUyBbe96HYm7yP1p*ry(bTBtv+h5dl8~p2J3T&VL^#e?C79eODWUBot?7e-6_I zAd10=n0-V7?ga1MS6orKy0OH$IHhH1%CJm>6FtFzG!}CeIqG+{H8-GyS5IFUA(7N^ zD5MNJ6&$6JG9|FL>6YIdKYcMLbAD9S)`=}mzS-vksHmb9dv{%DEFoJrb$sooPe0CI z{LT^Hc7I#*iD~wNF++mL_3v$WK2U7&359 zebv&n)#asIZ1X~sXFeJl`R$N@jB&{+PK^7Rs(-3CjQRh9oVTihe)y@@)e}3mcJhtw zZRi=iW*zqVd>)(tn790Lm=V`Gfb&q%!LDtcKX_pGR;9MO3|cPXu~?KurlP_>-|r{C zeEsckV0`ot%zF(84W8EvH)AQzK|zmw`-#KPfBE1;Quz|Mk=Ej(X)?j#P#{DezRX+0 z)_>gUErM=*-?f2}5X}D@oRY8>YG)42X@J-36{cfZ`jtaHZye~^tEAIOGY}YqJE3HI z4~`1L7{fcERO~J^8|x~?L4W9;@j&nuP#(q}05b9#F{27*gPEUPSn590zP3=7rA#y$ z;Vzex!Pq7RuV8phL!RQ`l@+C_?VH!*8h^a`Am-FD=f?vN?ao<#-dk7g4~9ZYES{ih zG(jiBDxC;M=;&CG4vmb{%U1^I#Y_G4gDW2wgr}mo#{QcRH*~f)XXJ5hcO-X(i=}MX3w{iJ5sNdVa1U3Z{C7 zdX_nPx9oswwxvdRrg?g5F>nAmtPE0&tPG4mmKP99L)jqLXfQH^#hHL?Lq;aB>!N_{ z%yt&AcovWi0yoPT8D20WXf#V1fKn6K8CZZS4UCKp7#BcH1=+~D0AkVfV8r_Cx!T&mX-axrLeLbiEk z$}BT3$62dPeb>yDP+K1$S2=F7Qpzocibm(my(jWp zyXVZXvpBTJs-W8C&MvR(ee88N=2tJ?zxrw2(k(%apOywSGPDW=NnZ+b^03_fVX{r- z%e}?n`u*=&4H#Y|RIK=ZB6zOvUB8{1QY!00e>EyE5pd#g&e#&5HDOozNJ%l8GK$^^Xp;x&8=?(SG|)meQ2>ReBrBgfzs=e zcg7qr(0P@dIo0!diqT}*DZ4NCe?6+~$@KJegl|`e>|(P?3SqY$j`S67{$uXGuVUW& zPwthUBjnfDUpai|(3YHzWjojJ+#h~S`K0f(%*7!Jw}S81*nBf;@3TMnAzc4a#cPSS zlXo78blyti+i!CAu59(pU7yx+%uE!TcqQ%gH}Mt$k?>~{FY4Q?jemdmqcu&?DU;V> z+ve#mTW0!H^FRHnY9b|Y0vIc2Kg+gE*!61NB%du8XWjAgek|s5nQd=lhxiVbQ_k6~ zskd%%%Xm$FwC0TXF*UELNGz)fdX&m@n8_i#RbbN9Q}#RZ zT&G^2F0udP*Z#K6d-hzI_fGCj&aU=#*XCq+zg5U_UAa+s$t&v>yw@+@n(=hql`@^f zYALQSa&Dgdb4fqR$o|(MwoX}|{ofv}T$ocmKe+UIjv|YbN7Di4l?<189{$#A{MP9z zHFtHZ_qT-ZcNa`Jen?XR<5?8*7f=|?V} ueD3B|e@CLhI`!B3b30SitiRNk{u6)3n*G<}jcqt6Z+W`pH-RnKlgc--W9pyHr_%UD)rZ&^wa3N78&v`x~a*?-AzeV*ss z?;pQ3T|}n1y!UnGx{{OUIp=)ubDw*EgugOfb=6hzbY0^Q_HBF76>+4lzTSQMsV5#4 z5qrks#VvK?YR5nH(1TCc)YK-=zhK1$Pd%}2U2kvi$mGdW#w}XB_{_W4{Lg~`6DCfq zI(zBa=iYbkJ-C(Bb<2X;OTlZorm5RM)(}hrvuER}?pOYr;AhXDKR;bL?)gm5Veg->{YYl+{CSDpJ9mBY4;!BS z!=-P!?Apr8%H?}^?)(qq``*;%sn_K5`5kxM`SZ_QddaG{Pnghf#Xw)*ns0pl#+yFy z!4JQ)aZ=;^NWeFIA))!J_zzJKyBCI!@bXLSU-5n zfBjI0hlgiQX>Pvn;fEet_5YOt3(h=eNmR-|ovf*I1`i+P#;wgi*8np_8f|Nb{*QkzHatn(|q>D#0J`W zwnKeOYwNWL?W+2iD3?oF+P;bCI92&Ma9BmI0DHEoSv$Iy2&e{r1ad@$n^4VwKC3EA zfcWUL`&9UqsJ>3&wJ7@$rXqB;?ce`>;M!B&|6jy_OFsDVhR%)8yjVSbuG4bf8<_qk%JV9$7L`hYpDVgul$$`t9i2~MC&Im=ybZKTp+nG0kaI>K z2@v_MSSmq3rf@(YkI;n5cR){{Hhuc)SA*ftz5>&xO`CA&$p;^}Cit*6Bk$+eC1m)1=<^CAGk$d>59x{1?Gd3{7*^k8@ z8$b7KfAW&o0uc9HJlC;DpXuxE1)#RB?&v{#zzjG6yrr!0rc-9p$)rG5p+TYHxZ$m! zn}ADz5^x=Gp(>vimCvfmCs$r{@xQ$qOsC9%nKNgel^N{&^`r&ohO^GUG;2gyG_@f& zzADujgpqL_1FH1z*{qYN&Y-z@>QNuV`4j6VUtu``Qpf#0D6kb|I>=n$rt%fw8w&f3 z*h|!~LWKK|ba$;iRZQ^euD~s7qe${Y;hu+nk&J0@=y&3zav_cN74g!Mk)jhL;_P{| zoYhxf{c85`N@RgPz*CqDJdA25A|DXwQ;{pg>P*Ev1iIehEV0UmUd;lh#DJETmKnhO z*T3PC;G@@F|9}yDkBWR6)l`Ij*AY`=t-aha=6KJtNLl>jItspNc_N$^?9!22?H$V3CXMc0|BV9qP?yK4CaNS@} z$6!<{R032c%q{1gIrruxnV>W7NpWg@Y+ANxUu7*~}WSzYlD*Qep08XH@;@-`+fFO%SQmI^O%%DM^6qy8YH# zlBvWTU_a2L%FP(8DA$6NfI&{Q>4oy*_^*-y26z#~2)qdxR?+W#_vV`~K5+0*>mAp& zYHdnjWPjuFFIhKLieh!8SlVn+U9}o!t;??H&q_4CJi>g!xQLqU<`HD!K1z-xl*KhKt7-A zG>+@Xe82vL4XRoZdBy8ytqnvZHo2*3lIyr#sBBWvMZg7j-*wwyp;)S3xnN@XStkz0 zQxgmej4C1xQ5>6ZTp5&-(;ltf^Mlo*oF&483X>4tBFNWOsYmp?F;{X?q>&47!IHVR zb_@nrUVUB-SDjn4FXqY_KnCRk5uImM{{5^k?FH8p8>?9a+z+e-Nj5i6rMY?PZpx-_ zDaT@VC|`@?V*;hDKgJI3xMw}UDr~cm5Yg8GS%mf{H*A~)aL$YbrJ9A9!jZ_$cb?#3 zmc}i#*@>^qB#u0hs^0s9OMvHqXB6HD+^NWYU_T6!1rGVHOa)5r?Afztb`A#bebd4U z`~LIC8DJ{V5AtP%?G(2ddr_*&K*wNlpX zBMMgFWNR@3WCZ4n{v7~be{bL9y?ggjosQA4`0eU;Ka2^oW8lL?Lp0L-cX+wZsA|Ve zRU&RFNKDRnx%Sz>Ar-zL%A2KZq52UTQ0{nSYv%dT>g(Owq`9(Z#LBAED|aKZ8`Vod zdO^Q_(grcE=c<_5KnVOwAt9=7N9aJwQTE@T1{zRiDQu&B%yTGvhTAD?_3D$Rwxg1f zK1m{Y;e~R7_l(n;NVnfDW&VOX@hCg_GAD}FIu&hqVT!%R#_9v2oa^N~V~GA#kVceG z0t1wlYfjMD;TUiE?8;xR-IhtX1G%UfpsB{a6V)3=&wBRB-~qzAg-ERWF)KVL%2fh6 zU}qs;m{}+koW1(z_R851O-EG{0b@7Ep?I|_mLia3F}ov>Q@`5(B(&oi3f`58L8O73s-8Hu{j{E z$c>8pw^93PtX|g9U)-KA*;Y5S+Tc18)}`GWUJf*XBDVmmovvrB8Qh(=HK$#LvJ=tM zo__La_ZwgP%82Lri$uhfO2wSxx(%-DHiuzYio!7K`~E^P##n13RaM7vPL==wnwqBY z#jo6mRPuKRNfjWi98Pch4ojFA>S1`fkt+Dz_pm29_WUsAY=?vndBRr$n1xe4*6c z-R-~O%n521e!vui3{^Y7g9)>!xPZk3*{GCm9yU?2%I|-1%+d%Pw!*&%wnCBL3uFcR zM${>|*4{I%K0bYCXTh3C$GiroeA*lWGDqhTScz~D!0X#$+`dgK71;>-UC{S|)`ET- zSd8j>1b&KeC&FrAF>o)+HW8M;8t`Ed4t?)C-!`dqnh$*VI!SljOGVqyF=4j6F%40_ zCKINc9e<>)+Rb;G^8OtP)u%s)k=3Gn0+sJ0{FlY7Qq0vV`k*MkeSBNyK2@V> z$_Oeyk+LLIj_xA{>}E81S@LW1LEXZC648Yq??w2WBKyk;PTeOeA5mC=$_Ig`1%3>y z0G6F9aDaTF5Pt46pQ_rkd$)VTdloUH`zN@$_Obt~6EB6yNs$CY72e2xjw;45H6=eh z#l$B7PWA^_~Qh$Fx>()NT z?YI5Z&5mUF;^k9VHDln|1IDOzt0QdDcXJ(M!`4k`zTu)y(P&)7zMst&bU@)6MAV>n zE8-~fK4avts=WhcY7}XpU}RQn>*HeNyk|c-!#vZL-@JBre%8M3d^}sQHXkyah?%rl zb+&gEsjp5%IEk%|^%X6?EAhia(OzHkeqE*46vQWLUvJ-mxMNe*iD*I?Z?Iuxi&g2k zpSHb@SKUmqx`BialGZ_rHK&6rxvs7B_Gj4FU10a_T}-H}X62j&S1qe#VvRQjQccXN z@r(&aj$@fn7xRO_3z8K(f0#vN3Gh9P{gGJbQ;NPBA%l|m z(5-FV>voJ(xs?gm3>PDF%`dvz|FAE+z;lGNrl-0tT~s;LRPWDHtK>==ZARylR|H4#F_A&Vi3JM${ZZm?#|h|qsL!6r>gI&Sax4BTRFc!U$eNB9^Tv#@83wN zdJe^^dBl64#?5z;AAbSrCP;Lzg(fAp^b!*B7}HBn)94&NNiGBx2hoy|usAjv#V6Rp z_;YjKz?O9S;IFW5`ry!v)qcExnw2Us*U$@OoYym8jV*y$XXEK%Wpo1A)@lRYp^o%p6O(Ga=WgNxL!$>r;p zUvGlGE91Qz7OGoW%uIXtOQzJnFx9@s6>%A!@;1ET-6W2zBdD53ZsJ8G4?l!IxRvb0 ziz$p>MymZ@;=LQj?(!><8jnK#d67hU6YJX`B2FPU{(^Sg#FRwG{Q#Psv}z#TzUKc5 zd{N6q7J!nfeoYMfMCG&B-gdx!Y)d9C=bt&}{;o{;hSr9-{_LNoOFDjnB~+k|as=h5 zi5*nqPBmfH4bxK|2~$(|`h#0nn_|CHs5xU-al*N&{HqPkk4DW*5oM2au@9sZgnMHc?^%vEB`ss6d#SzCT~TxH;AFV8H}K z$x`)#Y`$*Mk&69yWKEPmE-NLED*9uAYd~gzuKDQC4!&*Oj!e?ENDsirRyCXq9?HSW zwDNBfi7mE(&D+F;A1US?@$Pji)lKC_CckN?Tj)HaYR7koVzp!&Ur%gc6Yh~GDAt}C zg^7v9Wc$5I6XwWGx|A?pPt~4VFvY%80&e|kN>#J*M)u=pcA#!5lb!rV*B{#6Skd-N zqkfGHPrIU&=y_sC)t(#>$u;sD%2A%> zSg0CMPEDsUPCsI1IJr&-6m{>QhVQixMnH@&dN>I_7RWwX?uN$Yv zBRlC5OfXE<-djQKpMrY=Me%y9SA{pc6R{CNa&jh2PpypiJy$7FL4u0buvj&#m_GbS zfha%L3lPQX`-?TFn`GA`7l={|ydW?GbiOK2ipUaywrnBlGa{94F|gxOajzfvd*B(M z6&R1`v#6vf7bH+6Ew<>W@$>3cCj88fB!C(pw1k&EV625V zqU&)?lshHh>cog*wV2WnUZDr;#KThULgQu+r4vV<#JXv64Hps1Z0}3A-#dZP3X(d0 zP^>xAI{6Msc0E!>xpH&_Sfa26rCx-ElpVX-VWfRQXyXPUosPQ#+(OxP9a811s5F$p zOE<6?RRKY4kTAvGu|$U05+({nomdeYSU2A}PK__caf@(*VUk^soig~yt3-{Do9o1c zIfC@`FiJGKvA*YxDfXD+xHAYUX5^Ax538H&m~iyHQo1!)s+>)%XT9gF^;;BrwuXVD4~`2-Mx-i~N1Doc(_G`=iJRE!A_ z#T!t^Bi4V)jancMYCN2v9D-QCS|h(&+-#dGYKamPHB2_DKe#25s5q8Lv3_+aOf~yn zW``@;qF65(84c1B4Mz&yQZCMnDD(+T7WDTDlTf+ZcLfp6yGBIwfz2bjN|CP%vRstk z0?(<)M^S1(dl9!1jr_7|IN4q+DlY1!F~wfW?L2>)%8?w$p3?}4B2-*#tOg0Q;*GRn zoj5^yI&Quzi1j`1GnzM0aWqUfV@gAgKd=cfu8M0+m_x-yP$T7ffo5SK$jli0HE*aWwL+lPsy@jiMK!<72RvddAdR-^cM@rL(_ zQ|ueH+twVNPc#ILOc|&a5MHF*X|iGz{5If&F;CJl*Th}lHHC3$w*}E_MP;vu{77Mf zAiq+y36-S+?V&#|VZtoit7`2sU~}2?Md92SJh?Ypy6Dd=DiBe6tjCFbHkR zEe27~-tJ-+HLWUovkDK0vP03U0SDnuRpvOQ{`uBR6@sd%#v5*POqdlF2gD#YM4ecm zP67!=yyH*T`ZYv;4Q{>ziHfN4Q748(xpEE|K%=sBI0?iCm_qmQU{J>gRZOXGl-sXB z#tqbXB4K{&u|Zu6@*;30&<1)}ZOXaaaU?V`&*ZC;W(w%*fe(t}10Ml?2i%VG7GP#6 z-SSeDXe2hU)ku_=$gQx5gQ&GORySl#%rm9IG4N`9iq-Q_$HyDl2R0x~G^jc;OfZbt zXjB)-s6+@R%p$gQ(qV!`#XlZ@8Bzo^@+8b3b>wl&hgQfgYCM7eq= z*D)5f2dSy#CoIRy9w0XO64tFMma6BJBpC7C+`+Pw6K?=4<+%RT!JR6p6B`QS69*_4 zX-;R<@d0U|+^srKg`XTA4E8#L>w2z~f}%zcT?OVQQLRU~78MWCZ;f_%J|*JJH>Ey} zl9P84s#!27rNLT%a2tpaq^DtmEKZ^8uMQeO z#j)z9ifCBnme&}jTw9n9jFfYiY!LKjRQ_Sw_}I*?9r>c0En3$gqL_P7`5ww0pkD)) zfvy9I17};uUl%1B&+>+L&Ki?5aVgZFS5&M`bUm67wFDKd2d!Vz==VQYD{2XolOyX@ zIR5ZX#oE7WclsEKYgJrhg3M^zP2j}JlL3C9N-H8?D?g%E72Kq68j2+=>ew@lbuLwS z9AvvFYgFX5z(!PmV50n$W@yJ)=T@<1K@_B?^(4EW7;j2_CXCf~mTDHd@%|U5c*DD~ zUR6-6n&tUJJC7zb$H1%c5qq?X_E#VcjXA-uIBs6m^&+NA(SMX;Gtgdi} z^O0jjLb2v2C=)^N0$HkXh6>*nk(0LqeA^T)|3WKy!Tl+uGV1P6d;_K*ZZ5%0I&^_*@_Ykn>$_4fA~BRLh<2j#HjwXQY?Y{doU%I^Stl0d8(!aIw3tmETr*2Fh>F#79*L68 zOA_6WERraYQuVySFgBq&(X&>?hGW3hNm%Pwh$#+8`Q-n$q;9H6m@Ufj>3C%e@O=@v z0{B3#Wc#gZom&dk_Z$g>Ic0-v|=FQSq_7(%H;_-?6g>ET%av!8SGhy5sC|4eqm zh4Dns6Bot?w@DbU?<-DTUX$p4%J&Diz|n+?F&ZW&mrRh2Ir$@hbKpQZff{CG9P2O* zL4S@&9QZbH2xYJ$;WPo(bseh8>2vuQ!n+hcC1vrcQOi0b`gw&b;z!nfN!^Nr*`~`L zcM5&)t~hw7qY@t(nfzw!6}u9tgTE2L0(dL z8|A#gFfbV~j$n-#+{lVAMl7N?0c{{T(4s}(VGLEO@*5O_^z<(l>dv|{)qd}LOqADr z?Kyj+bo12Iq2HDyDvSYFzbX@?ra5kAPuk==Wi&nY>a@SO79uIXA{#BRLY0(z`$sT#iI%^}SmzY_ikTVzXGgL6wEF5@KXAP4p*jFW zw3KeyTC81!Kd`yU%O1?BlNeDXA%yZrAu$5REu1`Vy~+-pQt|Hi@mGO$X*B4t?If>VoMdE8H5U~j`aemxPzi$fDOmyP`|2Q!t5p! zjw~xzZ=?izLU)kJ=BG+Ef+oUwqg$-YW+AdKYIthFhTs}IPuB*ByrGJprV9>}9(Ny-4_C*}9#J)>hUQP$25Ly%1xc297pLJ!h0v2qi&( zF3K)Z9#ix(lrEHZL{0eBk_1@VgQHCxa9fxdHSku)9TA0opeDF_kB9 zyK{kLO9OM>pOxBEBZ;m0sSh-HdHnt_MITRMCeoHwZMAH z9VCswuMk~K`6EYwjEH;*RjY7=!jn>N!Fe~Z5mZ3VROFkY+JWKoDAkmsw>Cwt6D5u4 zH&G6aUaKXPTkcYn`wxeKIijo)xYY{(0W^#9Wkdr-z65j#^1Py}ez$3;^vOF8Iib~O z8yXr{j@gvYuRiBP_iY^f%wR66YpC)L_YH>+UpTMo{Mrhq`VV`vf0$6^&2tRtLw%)P zO||~)VyGjTeAqX!%5Uw?1p7*%%{PsU&CQoIlZs1CPbO^J(^cHQpgDQABe`D-uqfwHkPiBs=;`J9c#y zb}ej9Ev`&D6FT}z+b7m|GsB1?sEzrivc0dky`kElu1d7)aN)%;(&&t-$rXdysB>FK ze)EimSmXSr(;F!Cm7WWF2JqPg|FFq zI5!ojYiWotIM7on29ZrnsPe}542QjfN<)>O>KG^;sIBl~o}qYnu+%-ZK9LM6Z0-GrQ+cNi}u$27NsvL3UYd#mo(RM)riN zc3j%2uT6QAc6S#ts#;lF;ZDex)XSG_Asu%LwH5Brfu7={BJ%LgojZq*V*Y*~f)XXJ5hcO-X(i=}MX3w{iJ5sNdVa1U3Z{C7 zdX_nPx9oswwxvdRrg?g5F>nAmtPE0&tPG4mmKP99L)jqLXfQH^#hHL?Lq;aB>!N_{ z%yt&AcovWi0yoPT8D20WXf#V1fKn6K8CZZS4UCKp7#BcH1=+~D0AkV@Z{`;AH+ry}gpSK+k zT`{`z$i&D;)zmb~$75?~aDJ!t+D13=JSp*ayEaJ|UT$p)Y?cnzU#PN#yVv#77L5|G z7XsPKxAY}QYVZWSVriTC|95Op=&U<(|v1 z>%pBX=9m5*JAKi?qI>dYfu$GZ1eda07ZHhZ-`S_URkZO<@X|8p`ZTozQB@JlzwK(@ zobBgl|2}(Sw0&f{(BhaqvgtprNm#18uUN&G%;Uu(c(8Dr&DPXyE2l4dap7$DbCHD} z<;(9fCG49&`^nyqjE6!UZ>^F)rninIP$QIsYr$651gp1V99zp@3!jZ$9=9TQ^+yf< zWq6~>Z@OKyJ|hq<`=8f zDd_#NW%~E!`<{KdAwEauZ^u>p>6#mBY>MBh>}U%~Yb`%+zx>Q=@hwN4_jTQUH9x1J z+k3~BzFU*BnwFYHiOenSXWB3&GSTXVBuT?mule6aHZV~y*YnF%|vYx$5 z*;>jYJuKzhJEe_BrE4nxy07Xwow0fLiZ8!Bbk1MAT-32Hfn}*l^JZZqlYeKUTh-X4 zf9sX+xqNxwX4C9VGnGO!z&P^JijYSo7w`MHN{K{@eX|KSOR#@sxli&;OtMssFIoLz@3>=s8g4 N@pScbS?83{1OOWr)HDD9 delta 2702 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 delta 2524 zcmV<22_yEj2D zQ5zqLMk5##6cUV4gg-Pf(L}{S2|^^8AOVbmK_!Y3kR~7y%R-^Flx|CxrQOHOK4*4j zXYR~>oa^^DyIrScM}EmC=iWQ#fAKrN^Lv~T)I`30>uvhO5B=uOJMO$|VDsjSrRRB* z6WNJr{FKhm&58L!!OG|JvaPLsm2Fp4sZ^?3mc{c`+S6$Vebn!tc>G1YKf?1hlcowl zzW?ZBPuzR$b=Q-o>t(#}2QmnPf>KKQo|hvbu2agd`Mw&)ZyE)`g4DD%e^4a(@0VZd z`{R>;(*ODAr@rSB-Om%QB+V3%pSkg~uiy9U2hU5TQW4+x9ek^RJeUDtuu%vxf_4h{ zOW#(5xM3LYJoV%sj6`eC)?9XsesKFOci{WI;3FcJ+OwrIlj%#xVzJ}c?Ihl7paryn z&EO(XfHgv3HQ2I*3HAp8e^n#l$QoFKwtxCM`uRN%+=Kpif{#cu1zID~h|qOChY8ud z0nkATgqGfuAPst#zI_NrL4Ob^R?vWj&5K zxL*PAQLymL{LKV7Vq)iH>udro7?%r2B6hJbM@o6*xPEZO_G{>;f4|uKEBt;tSQc%m zJzKgyw`b3-TefVC!U9>mvlDXPI9N$({%(N&`c6`(+&gYFvDX-1vr*j?Y zwsNgj-F9qf=mqp+rJGv7vn!PXc5)ccymK~jH{fHK2kaB4<@6@lI{ci50>x-FDz4wX zJG67hRkeYE%ZGOEf7t%kHP>AI@~&N1v-S8W>(WetD&oG1iTL*nSOZw&@9h6sfK5IJP5~an{=zweBkBSufye(zGX<(O$8k^thIQRgnx>xv z3ZRM|Bmk0}e?}|dfjofdNgU%OC}Gil%qh{H0B3}L{h%8}Q0uyF-E+fha}(p8$KE^A zr%4%dT{mllBN-Vewg7rbMS(&qumRo?41)X%;YE^)gzeeo9GRiDre*1w)vE`klo2@f zms^ra&Y*|*GO=&=_r`UF%?RvBm~G@n`pBprL6pzWdM%lWUfxH~4IZvd79FX1h2G;QhQbpghkT>_eq>_&m_AYrk+4!U zJ9<`so8C=MPu?aAvw3>9s?a z2_IA);c%EkbEQON$c3t3fQ8ftHYd7C^r;T3$2w(IfaQoiOmg8jE^70Vw|k%(x3oL>?&lfpdIS3!D9Suf2R}X zY}C?qzg`$oYom%3f~UX#Q}o5lH&8@YX*D8SmA+bm0|KqB@n*O2@iY zd5-LA^%?k9rM zZP-D9Q>L4?nzX*VE%4heRbRMze}K~6=hB61x~V6H(Y|AnZ-=<3b)@3L3WauHQ|q|Q zFRr&J4GKsBC*$;XLJBJCW^_|L)g7e}3Lyw$edKixELe#S*DAda74!vNR+jJ;)WEf9RVdh09&f z*H7BQ?LM#H(M-#9iZfZ2${0a*suYr5k1tj);FtnO_SQoA={7&UN*Z&hH(o35M4dQp zi*&b4x?#|y6`^grcId`}ogjp53;9EuGJ2(lfe$3tdNS}4+xTx(u=!_Bi;=rtTk z37Ij4XY?0S7_Fgumk3k>e|14}T?mBa3kd%;s^6AQ$61Dpl)(8a<)R+MQCrvnR|-Sr zgbZ!g(6keVZUix}gw$012mEg$q-z1<$hCCMH+88DO(qN}T6Il}>r%|XtjF*!fQ5JD z41u6t1WMv&toRPVMF{%{I0Tn1(4fHhp_fjS9(nH2)a>C?`L_$Te_%>T&BpHd?-<|h zm@w>%Tpny#8uSXt;@euZd)a55Mt^ z4<_d-9!UquyN2-LKN)=QzXGhm^Q++R;9ML_58%IS99n$);ad~mqGcE^9Nt#trzxh+|--N*f8OxU<;VS-QaQjAx)uRU5UwZ@a!nQ zqfx`40$fl6V@s_A%kk|>%jL4-Z_oVo*|*+0uy=8-hO<~fV(Ip_+iw2WEj!|gcoc5q zAARr02e?o~ySsb3^7*-0(=d%hOCm7=NhA_6J|>7V@V#7KGAQH!VHnj9z9+-DSw%k> m9)9WZ#~%G9=4OY55d9ZBp)|Lt^r;B|0000C6 diff --git a/CSharpCodeAnalyst/Resources/Interface_16.png b/CSharpCodeAnalyst/Resources/Interface_16.png index 50c70f836f30cbb5a27425caee2d4189cc4469c1..fc9ea09f4cd7e5425e9e6d6d2def77facf011c65 100644 GIT binary patch literal 1080 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1enP@=>&q9iy!t)x7$D3u`~F*C13&(AeP!Bo#s z&oU?PmK{*dw$upEG*3@01`Z&Hl|hP;m4Ok+@&aOMC>!J&4Mt|LI1`X<$jAhCT@;X= z+0FtM&jPYR;8PhR!wY5vjbsF>-wr;B5Vg@5kk_>AaMk>mEyRm?M`W=~zsyZAwb zN2)=uhTc)WKgNzOA5ya%J~}SEVK{N`8iQpVc09`x;$2#{iCqyt-o;m#vxEJ#iYJz4czJ$u&d>i6%TJ4eN)u=C0AJ)iU5vi*HH!-3EbKI+Rj4(CsE`>dR| zO`rY2RcY_d^FyC6wBZeT_h#a|XNR6#oXmbqPVZSEyOGKyK89TT1FP2;?+i+P^y7|* zj?67NrRWuJ!mnLj|S{k`?tJ>LKUtg8UMfG~GpMT%w{M_$4 z+rqN2hDR4CyPwkEv+2G`{&th8euWQbch?yFd-<)1Vb70a#e2TKd%fjvLx@%8xp}j$ zcRrTqKc4X8@8S10ef=Dqmm-**me1|1K8 zf5qॖTMcl5O!O@b~az9JBl`UKMZJ2`uOGimv-rA`ymkyr&_H@hZ3)a5d_Go{s z-@GC`TW9NE2EmQDGkZ1rgxy0OT6PGliv_<4YwftPP5!~vJpEU1d`j=FUN2mpbS$d7 zW5dpiNjtYWUEuTlss;=fujE>0!421hfRd}%8(Ihdja+C`yRwEiG*DP_PK)!?NBL9a z?9a?RzyJBGL#1)muQ--3+ovkmpV;df`Xy*5*OcYk`LuoNK7C!C-1=z3{j6=1>+i1k z`24+jp^&UryQ9bc*^1lK#aEW}?+@5HtLFF8^~(|-UWi?}X4SE#Stm*YExDBUetNyA zuH?<1JD2K1%0$iHt}6fAUA#QI`TN_R_pd!IS7|NMO7c-To93N&FXGyKy_jj=kL{Zs y^;K&r-<$nOuO@xAlaPBosd(*16YJt~%m2)g?OtC_8|zL2C4Wy>KbLh*2~7Y>h_<`{ delta 2543 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 JF6*2UngAif)JOmT delta 2495 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 JPDHLkV1jLvr%V6< diff --git a/CSharpCodeAnalyst/Resources/Namespace_16.png b/CSharpCodeAnalyst/Resources/Namespace_16.png index 7d4d7b79e0e92e448a25ca97941b8598d34a0a11..662ea921b05fa0f8c4bd3547bf4efd947655a51b 100644 GIT binary patch literal 540 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1enP@=>&q9iy!t)x7$D3u`~F*C13&(AeP!Bo#s z&oU?PmK{*dw$upEG*3@01`Z&Hl|hP;m4Ok+@&aOMC>!J&4Mt|LI1`X<$jAhCT@;X= z+0FtM&jPYR;8PhR!wY5vjbr1-R_i(`m||Jh51eol@etq=Rzk4a>%c*|4v&S^2P zb&>D}S)u6;j`=-Pd*=oSZM58Dv#$S;m%q`>Gxq=I`n=<*pPR^sEr%+PY30N{oyBQZacIS1_r%#2xwGCWU2heCV^t%5t@MTE1Fqy6F})m_=kDh= z9ALk;V};WVt8+@G?&cCHChBqNGxj!LpMATeI?Vjgx58UjbP0l+XkKSzDS+ delta 2230 zcmV;n2ub&x1j7*_iBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPae|`D@ z0DbxaVX1Ef000PBNkl3&26~6Di+1|`}_8H@`XKarbys`w$VAcdeT!`4D z5K5cSLK~(1L7G%br1V$S{-{tJby5E`v}r@sN+BvGqEvx`0!4`(Q)6saW3aJ_Z9I!- ze=~31*6)r94NBr5wft&7`FP&DfA_q5&pqedd%nwrzxl)l-tTy3@=$+V9?9n#FW>r>1 zwJ1NUh*D5Yjwuqtm1g}EGKA=qWNw8i;I&zs136Qrhv@7UC!L)3V?higPc*F; zCS_sVC@Jw}Ie-B=K^~lj1y#udc zvMBoQL!J=HJT!Jxj0n}Lj%n9fOcBPchcgjkb1tge z>1hv&nx-{D0l7!A5FNv^LV7G38h-2SxiddGv}-0gb3`FTK;P#giNDxXtn=j;Fv1dQ3It8%9FHgf`tsz4L{mWG1n!90Z5C&x1>gmQ{SLp(o~%1DBE3Nb&A zcM)#qV5NYNe2AoMYXAPGP;k@o!vSImqkm4+5~its*M=U?f98&j$og`uK2Ng_VLCa3EJZQ$_y6A;l#-THPFOHl%_toKpXPx zCgU{Rv-=s@R`joE*<*BC%s2mV_T8zQ6Z^4eqWQtm_cVodPoEz8)8O%sUWV$I9?Nj6 z#7#~g))JB|Mw1tk@BZVtX(U^MNY`vBZKbKj-zX(=Oya}-SFxS{eVBDTv;OVQ?`)!0 z(X4$af2buS*tU7~dC2Q`o9+XSgpxc|IA-Vg%t`ux{O{skGBgk;>m+(zf)r^ndYCXk z==oEcr*sfeSavUegWt0FgWyBlhA4%uRWEKkw&dxx2kth_8sHt5b#2SerAazZ+(ZYc*mwyND_>zg}K!E!pg`KmA+S>su| ze_)$)RZ9cMn+6R&dqh{|c)WNeVVeXU`?{^#$LTEw+0jzzkP^l1 ze;(ia&;~4KwC~z)n?Rm zuikAt!Uk-C(kyd;br_z+Bs9S|l=4R2e`lZ9_Ps8x^@XkuLm4k?igw%NvL;O}^KdfH zhCt8x%KWU!fcgUlq-iyLl_v~FYehZxp`H&bxk4^?d91eBf9WOq(OeLQZ@e;csD~-U zGXnTT6pP}(C+aMI7bT@K7?R8AuxNa}+XZ!w^&>NNE~^u4H-cI>fyOE*>R|}ze>oGC zb7EVv`&#_`furk3NvVHMd`#5d-Z%f=HTbh*7xR%6OPLTI51ypmCXB1;ctg@0bWyTu zXOUGETp6#xTIvnTgegTwg(gPSZih6JNr^Y6&G7xbY<>WU){r-@DykdLB`)@9fcS9M zfZL_V?&F+<>$Gj^_^!cgzXj_ke;K8*K_4l?BT3|hm2arHZEOsD&0#HT;72D0paeSi zx!~K^Fa7q4AMN~g)nlz|;cB}2yIuF72lsT!dC?g^+|$i@eZi;99krUlZ8N}t1yJ~8 ztAT;j>Pe=M59NHot2YKbO>$m++A=oz4k$RT0{4Lr@9laM1a>QktOu?~e*$Zi-WMR$ ziciL6!96*pAd%S7u}PM#EL(s>C!n?-wKnpaeXL42=1qIB2YuTb>7{J z0%pI%YxX-s*met9>@{r9I$ZT|K9~q@TjbJfe>=f6HZ<-sudII*hs~wjz^xDB$Gh)X zh)udl(v+|LHw%*!r(ek4*cdi9d0WaF$~n%c|Kq;^dt-zc*8atd3;+NC07*qoM6N<$ Ef_G(16#xJL diff --git a/CSharpCodeAnalyst/Resources/Property_16.png b/CSharpCodeAnalyst/Resources/Property_16.png index 6de1ed6c66684c0057c670c42205eeea316e84a1..72ad52ab3588c549d2f79c2f52bca08214588240 100644 GIT binary patch literal 1034 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1enP@=>&q9iy!t)x7$D3u`~F*C13&(AeP!Bo#s z&oU?PmK{*dw$upEG*3@01`Z&Hl|hP;m4Ok+@&aOMC>!J&4Mt|LI1`X<$jAhCT@;X= z+0FtM&jPYR;8PhR!wY5vjbsF-P|r;B5Vg@5nlgL%=R0&V*(pWl0Ot1#wx;cSz# zB`nt5DqSI0do#2yPGe1K77*%CUr@^{*Q};}ts|C2l$$FwRLh-1R4g>}jYtP~;bfB{ z8TQ}zirZRWUwgaif7zF_e~f>*Gd#;Z_~&hztpndV|LN21{imN2Zwg5hRIq$!^D6K9 z`!`p!v)MNoo;sniC&H@Ow*K9xt0$9M3zWJyDl*(Vdc-}KZ}#jr|35u`b?w{x>utU* z=}}dm@5-m$`}x2tE$`y$RpHYmLPZ$_12;B`3tq0=lUnxf-j1Ii{;mDa@TTC?OKhZzFX zy3Tyb^gE-sVaq2$YyNuHP#2c3=URj#FD?DVD!jyq`&iqDHwn%w%U68gvE%r?`0ppr z=_x2JXjmm7Ewsd_J55AtDpR!d{m;kO=D#Sno^meci1qOm-VBpv%H=A>n>+f%TzHOd z4~tl_&;RM8c9z7JRq|q2ch7jTV{_`R+h46e21*-VTdZI8W6AjnEAJVz4p@I@3UlrG z`Y~|!yRyIOo5R_8)uy;>C}5z6e=4 z>(u!#HA3u42B9%Z65SFzgaTX}6Kt-&Hjz$z{q5JQ{co?8au;04TigHrk$0k5d}k4B zzr^=TYuN(JjMeNwu6Op=W5<>=l-(2aiQc_y|L^DFW!p`cH?F<4@q~nR$EJ>s zT`s@c{m)+hWt(|7E?)M~`S~xWmap@hK7IYZch>*;x2^K-+>^6rCMZFBy85}Sb4q9e E02g_p)c^nh delta 1474 zcmV;z1wHzT2-XWBiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPbf5QL( z4#NS*Z>VGd00nDFL_t(oN9|TyY!p=({$^)pcV^q&LZA?fP$HLLks>K1KA7k$F@ zk_ZtJCVoZ<(FcyTQ0wJJ@eSq))sYryB8X#;@-V`*z@5B6~C1~f1eyUpx)WM z1?fx%p->1)DR{n*JPigUVq3NzC(d#_op1yy2q1?=M>3v*X=eeS8?+&?s9^c(L?RgY z>rY%ha~d7Hc4^icO1)Ii3GFdIR#FQxnn-Xei<-g5b;Qc7a2xuPxe?w3%xP}M`t|Ge;Nlm=7yI`sr)dUOtXhTP#0XNkyiTMn2}Ehkrvo7n zlroyqXoBNG)F>xx*tSu}1PzgJjQ2+mAI9#Ej*8!6h7jk@pYK{YySX#q!09BCrV<&( za+2#%T1w0@1_>nie_UdmV|GitCB9?N0>kHPvWy)}Nlu2afpI^6`!>DKn2SRF-98%B0EY>FL3a zEnCJo7mOhwxN_xkm!HdZwzjsSktC?OR^T@KLzG6PoC=(Ie;MM8KgFmNAL-^LVTdq^ z8)7l^oIQ(=HWXw2IG!LN=(~2UYw-U4&c$s@(LnY$*gP6(NDL=fno{%P)FvU_WcXa5 z^N+utvcWiujT<3yHA9x(6ySt4q_wB{?{(j7BYSKm@u@t3D#d$q5+GTP| zwp$F7kSMDWf9C%P-=Dj10ShKIlq`;qaTO?|udlDmOC&m5+S-s|7?@!&m=BZLf@OxL z)E^&93zyy@#V)Vbj{o8MD!tzE0L-(q~F{oZ--fHE40H^lMF#f$j*^UrFsIbjuyho+e` zF}r0Uf95Z0Ma!#8Fn#Vkys~5oT9+=xg4V^D|8h%dWc8?t08?DI=pn9XcLxWN7#U%E z=7xo9hTg>RIN9A@>IT)JCIWV8dG=Upy4=_U@g{iGWN^YTl$X zfh@BEc`kjxLQMq9`$2(7FNY?>*-HrI zDx23@P!oY9m*YGM$XYLZ0oiIrxIe7pLglhO58S?ujhi<8cV#$ms~5eRWSH$y%HA|>D(1d42dmbssma!J c7!(2g3m=DP{E8nx3;+NC07*qoM6N<$f*hZ{_y7O^ diff --git a/CSharpCodeAnalyst/Resources/Record_16.png b/CSharpCodeAnalyst/Resources/Record_16.png index 0b620f21292d91ce263e0fd464634b2918432ea6..e38f0dec47f7de09e06b86ffc90ed5afdefc426c 100644 GIT binary patch literal 927 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~f)XXJ5hcO-X(i=}MX3w{iJ5sNdVa1U3Z{C7 zdX_nPx9oswwxvdRrg?g5F>nAmtPE0&tPG4mmKP99L)jqLXfQH^#hHL?Lq;aB>!N_{ z%yt&AcovWi0yoPT8D20WXf#V1fKn6K8CZZS4UCKp7#BcH1=+~D0AkVdHX5pMDHsdASo)d1m za$nw{5iH*6bWzWs!)URuz>Ep?jV?Eg1TJ?tWEpmc)iyXuGjA1ZI`>16PfsMRY^uSz zGr#AEt^d*LR$jXEPWAbx^NM*GtYmzC8NAPFN{X+~U%AvQawYo>4VU7>>ys`E$hZ1$ zZcnp{iD1Z(mXyy5$=l?2`?LBI)g`K1Y~{m&yvNSHP1`2!{a3r$ly_}#@yjV&+!lnM zIwkbO^>f|DJx11BO`CR>c!A`qy@6)T^j^NCv}$CT1bn93>)r5eN_tZKC-kh{?n|F@T&Z(QuVY=9V7H@yOUE3ZKd;Ms z-`z`CbklL;`n@|D)$rQ~kIyu8Q9nG_DsY&Tk`HgWm>?N=UUO`dAJ@s-k~oA>+=eL0*y zqk=m={o%K-vLy~i-J#+ueZyXT53H~_@<{6oPsj1{2X`VD3cYD(ERg=0v2Kg(ai51( zHyn-FO3|oewFj?wP%C~G^R5@4Bz%o;+&*JUY44p zMy`dzk_1Ji)Hz#ng2a9v4LBE7#MLKoDQ}LQ+o@AC!oSTAvODMV@xRe!K27#FHF912 jd^arR&+_)m=04wl?M~c`T~bRIf>N2MtDnm{r-UW|MU_W! literal 8387 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 From 92988995c811d8b3f83cafadc18bf3702b138f97 Mon Sep 17 00:00:00 2001 From: ATrefzer <36333177+ATrefzer@users.noreply.github.com> Date: Sun, 7 Sep 2025 20:40:45 +0200 Subject: [PATCH 3/4] Progress on loading project --- CSharpCodeAnalyst/MainViewModel.cs | 245 ++++++++++++++++------------- 1 file changed, 137 insertions(+), 108 deletions(-) diff --git a/CSharpCodeAnalyst/MainViewModel.cs b/CSharpCodeAnalyst/MainViewModel.cs index bd1d008..039becb 100644 --- a/CSharpCodeAnalyst/MainViewModel.cs +++ b/CSharpCodeAnalyst/MainViewModel.cs @@ -39,7 +39,7 @@ namespace CSharpCodeAnalyst; internal class MainViewModel : INotifyPropertyChanged { - private const int INFO_PANEL_TAB_INDEX = 2; + private const int InfoPanelTabIndex = 2; private readonly int _maxDegreeOfParallelism; private readonly MessageBus _messaging; @@ -87,21 +87,21 @@ internal MainViewModel(MessageBus messaging, ApplicationSettings settings) _messaging = messaging; _gallery = new Gallery.Gallery(); SearchCommand = new DelegateCommand(Search); - LoadSolutionCommand = new DelegateCommand(LoadSolution); - ImportJdepsCommand = new DelegateCommand(ImportJdeps); - LoadProjectCommand = new DelegateCommand(LoadProject); - SaveProjectCommand = new DelegateCommand(SaveProject); - GraphClearCommand = new DelegateCommand(GraphClear); - GraphLayoutCommand = new DelegateCommand(GraphLayout); - ExportToDgmlCommand = new DelegateCommand(ExportToDgml); - ExportToSvgCommand = new DelegateCommand(ExportToSvg); - FindCyclesCommand = new DelegateCommand(FindCycles); - ShowGalleryCommand = new DelegateCommand(ShowGallery); - ExportToDsiCommand = new DelegateCommand(ExportToDsi); - ShowLegendCommand = new DelegateCommand(ShowLegend); - OpenFilterDialogCommand = new DelegateCommand(OpenFilterDialog); - OpenSettingsDialogCommand = new DelegateCommand(OpenSettingsDialog); - ExportToPngCommand = new DelegateCommand(ExportToPng); + LoadSolutionCommand = new DelegateCommand(OnLoadSolution); + ImportJdepsCommand = new DelegateCommand(OnImportJdeps); + LoadProjectCommand = new DelegateCommand(OnLoadProject); + SaveProjectCommand = new DelegateCommand(OnSaveProject); + GraphClearCommand = new DelegateCommand(OnGraphClear); + GraphLayoutCommand = new DelegateCommand(OnGraphLayout); + ExportToDgmlCommand = new DelegateCommand(OnExportToDgml); + ExportToSvgCommand = new DelegateCommand(OnExportToSvg); + FindCyclesCommand = new DelegateCommand(OnFindCycles); + ShowGalleryCommand = new DelegateCommand(OnShowGallery); + ExportToDsiCommand = new DelegateCommand(OnExportToDsi); + ShowLegendCommand = new DelegateCommand(OnShowLegend); + OpenFilterDialogCommand = new DelegateCommand(OnOpenFilterDialog); + OpenSettingsDialogCommand = new DelegateCommand(OnOpenSettingsDialog); + ExportToPngCommand = new DelegateCommand(OnExportToPng); CopyToExplorerGraphCommand = new DelegateCommand(CopyToExplorerGraph); @@ -262,7 +262,7 @@ public int SelectedLeftTabIndex { if (value == _selectedLeftTabIndex) return; _selectedLeftTabIndex = value; - InfoPanelViewModel.Hide(value != INFO_PANEL_TAB_INDEX); + InfoPanelViewModel.Hide(value != InfoPanelTabIndex); OnPropertyChanged(nameof(SelectedLeftTabIndex)); } } @@ -270,7 +270,7 @@ public int SelectedLeftTabIndex public event PropertyChangedEventHandler? PropertyChanged; - private void ShowGallery() + private void OnShowGallery() { if (_graphViewModel is null || _gallery is null || _codeGraph is null) { @@ -324,7 +324,7 @@ GraphSession AddSession(string name) } } - private void ShowLegend() + private void OnShowLegend() { if (_openedLegendDialog == null) { @@ -336,13 +336,13 @@ private void ShowLegend() } } - private void OpenFilterDialog() + private void OnOpenFilterDialog() { var filterDialog = new FilterDialog(_projectExclusionFilters); filterDialog.ShowDialog(); } - private void OpenSettingsDialog() + private void OnOpenSettingsDialog() { var settingsDialog = new SettingsDialog(_applicationSettings); settingsDialog.Owner = Application.Current.MainWindow; @@ -402,7 +402,7 @@ private void Search() /// /// Exports the whole project to dsi. /// - private async void ExportToDsi() + private async void OnExportToDsi() { if (_codeGraph is null) { @@ -455,7 +455,7 @@ private async void ExportToDsi() } } - private async void FindCycles() + private async void OnFindCycles() { if (_codeGraph is null) { @@ -488,12 +488,12 @@ private async void FindCycles() } } - private void GraphLayout() + private void OnGraphLayout() { _graphViewModel?.Layout(); } - private void GraphClear() + private void OnGraphClear() { _graphViewModel?.Clear(); } @@ -503,40 +503,9 @@ protected virtual void OnPropertyChanged(string propertyName) PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - private async Task LoadAndAnalyzeSolution(string solutionPath) - { - try - { - IsLoading = true; - - var (codeGraph, diagnostics) = await Task.Run(async () => await LoadAsync(solutionPath)); - - var failures = diagnostics.FormatFailures(); - if (string.IsNullOrEmpty(failures) is false) - { - var failureText = Strings.Parser_FailureHeader + failures; - MessageBox.Show(failureText, Strings.Error_Title, MessageBoxButton.OK, MessageBoxImage.Warning); - } - - LoadCodeGraph(codeGraph); - // Imported a new solution - _isSaved = false; - } - catch (Exception ex) - { - var message = string.Format(Strings.OperationFailed_Message, ex.Message); - MessageBox.Show(message, Strings.Error_Title, MessageBoxButton.OK, - MessageBoxImage.Error); - } - finally - { - IsCanvasHintsVisible = false; - IsLoading = false; - } - } - private async Task<(CodeGraph, IParserDiagnostics)> LoadAsync(string solutionPath) + private async Task<(CodeGraph, IParserDiagnostics)> ImportSolutionAsync(string solutionPath) { LoadMessage = "Loading ..."; var parser = new Parser(new ParserConfig(_projectExclusionFilters, _maxDegreeOfParallelism)); @@ -567,7 +536,7 @@ private void LoadCodeGraph(CodeGraph codeGraph) Metrics = outputs; } - private async void LoadSolution() + private async void OnLoadSolution() { var openFileDialog = new OpenFileDialog { @@ -581,10 +550,45 @@ private async void LoadSolution() } var solutionPath = openFileDialog.FileName; - await LoadAndAnalyzeSolution(solutionPath); + + try + { + IsLoading = true; + + var codeGraph = await LoadSolutionAsync(solutionPath); + LoadDefaultSettings(); + LoadCodeGraph(codeGraph); + _gallery = new Gallery.Gallery(); + _isSaved = false; + } + catch (Exception ex) + { + var message = string.Format(Strings.OperationFailed_Message, ex.Message); + MessageBox.Show(message, Strings.Error_Title, MessageBoxButton.OK, + MessageBoxImage.Error); + } + finally + { + IsCanvasHintsVisible = false; + IsLoading = false; + } } - private void ImportJdeps() + private async Task LoadSolutionAsync(string solutionPath) + { + var (codeGraph, diagnostics) = await Task.Run(async () => await ImportSolutionAsync(solutionPath)); + + var failures = diagnostics.FormatFailures(); + if (string.IsNullOrEmpty(failures) is false) + { + var failureText = Strings.Parser_FailureHeader + failures; + MessageBox.Show(failureText, Strings.Error_Title, MessageBoxButton.OK, MessageBoxImage.Warning); + } + + return codeGraph; + } + + private void OnImportJdeps() { var openFileDialog = new OpenFileDialog { @@ -629,7 +633,7 @@ private void OnProgress(object? sender, ParserProgressArg e) LoadMessage = e.Message; } - private void ExportToDgml() + private void OnExportToDgml() { if (_graphViewModel is null) { @@ -653,7 +657,7 @@ private void ExportToDgml() } - private void ExportToPng(FrameworkElement canvas) + private void OnExportToPng(FrameworkElement canvas) { if (_graphViewModel is null) { @@ -677,7 +681,7 @@ private void ExportToPng(FrameworkElement canvas) /// /// Not usable at the moment. It does not render subgraphs. /// - private void ExportToSvg() + private void OnExportToSvg() { if (_graphViewModel is null) { @@ -702,58 +706,31 @@ private void ExportToSvg() } - private void LoadProject() + private async void OnLoadProject() { - try + var openFileDialog = new OpenFileDialog { - var openFileDialog = new OpenFileDialog - { - Filter = "JSON files (*.json)|*.json", - Title = "Load Project" - }; - - if (openFileDialog.ShowDialog() != true) - { - return; - } - - var json = File.ReadAllText(openFileDialog.FileName); - var options = new JsonSerializerOptions - { - ReferenceHandler = ReferenceHandler.Preserve - }; - var projectData = JsonSerializer.Deserialize(json, options); - if (projectData is null) - { - throw new NullReferenceException(); - } - - var codeGraph = projectData.GetCodeGraph(); + Filter = "JSON files (*.json)|*.json", + Title = "Load Project" + }; + if (openFileDialog.ShowDialog() != true) + { + return; + } - // Load settings - if (GraphViewModel != null) - { - if (projectData.Settings.TryGetValue(nameof(GraphViewModel.ShowFlatGraph), out var showFlatGraph)) - { - GraphViewModel.ShowFlatGraph = bool.Parse(showFlatGraph); - } - - if (projectData.Settings.TryGetValue(nameof(GraphViewModel.ShowDataFlow), out var showFlow)) - { - GraphViewModel.ShowDataFlow = bool.Parse(showFlow); - } - } + try + { + LoadMessage = "Loading ..."; + IsLoading = true; - if (projectData.Settings.TryGetValue(nameof(ProjectExclusionRegExCollection), out var projectExcludeRegEx)) - { - _projectExclusionFilters.Initialize(projectExcludeRegEx, ";"); - } + var fileName = openFileDialog.FileName; + var (codeGraph, projectData) = await Task.Run(() => LoadProject(fileName)); + LoadSettings(projectData.Settings); LoadCodeGraph(codeGraph); _gallery = projectData.GetGallery(); - _isSaved = true; } catch (Exception ex) @@ -763,11 +740,63 @@ private void LoadProject() } finally { + LoadMessage = string.Empty; IsCanvasHintsVisible = false; + IsLoading = false; } } - private void SaveProject() + private void LoadDefaultSettings() + { + if (GraphViewModel != null) + { + GraphViewModel.ShowFlatGraph = false; + GraphViewModel.ShowDataFlow = false; + } + + _projectExclusionFilters.Initialize(_applicationSettings.DefaultProjectExcludeFilter, ";"); + } + + private void LoadSettings(Dictionary settings) + { + if (GraphViewModel != null) + { + if (settings.TryGetValue(nameof(GraphViewModel.ShowFlatGraph), out var showFlatGraph)) + { + GraphViewModel.ShowFlatGraph = bool.Parse(showFlatGraph); + } + + if (settings.TryGetValue(nameof(GraphViewModel.ShowDataFlow), out var showFlow)) + { + GraphViewModel.ShowDataFlow = bool.Parse(showFlow); + } + } + + if (settings.TryGetValue(nameof(ProjectExclusionRegExCollection), out var projectExcludeRegEx)) + { + _projectExclusionFilters.Initialize(projectExcludeRegEx, ";"); + } + } + + private (CodeGraph codeGraph, ProjectData projectData) LoadProject(string fileName) + { + var json = File.ReadAllText(fileName); + var options = new JsonSerializerOptions + { + ReferenceHandler = ReferenceHandler.Preserve + }; + var projectData = JsonSerializer.Deserialize(json, options); + if (projectData is null) + { + throw new NullReferenceException(); + } + + var codeGraph = projectData.GetCodeGraph(); + + return (codeGraph, projectData); + } + + private void OnSaveProject() { if (_codeGraph is null || _graphViewModel is null) { @@ -835,7 +864,7 @@ internal bool OnClosing() if (MessageBox.Show(Strings.Save_Message, Strings.Save_Title, MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { - SaveProject(); + OnSaveProject(); } } From 66295762afd19d7c7de1f3242f59953d0d146382 Mon Sep 17 00:00:00 2001 From: ATrefzer <36333177+ATrefzer@users.noreply.github.com> Date: Sun, 7 Sep 2025 20:44:53 +0200 Subject: [PATCH 4/4] Removed .claude folder --- .claude/settings.local.json | 10 ---------- .gitignore | 1 + 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index 333db68..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(dotnet build)", - "Bash(dotnet build:*)" - ], - "deny": [], - "ask": [] - } -} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 77f173e..6f3b8be 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ bld/ [Oo]ut/ [Ll]og/ [Ll]ogs/ +.claude/ # Visual Studio 2015/2017 cache/options directory .vs/