From 4c696413d76b45ecd16aeaff42b85f131990d317 Mon Sep 17 00:00:00 2001 From: gurikbal <36083297+gurikbal@users.noreply.github.com> Date: Tue, 29 Oct 2019 12:27:03 -0700 Subject: [PATCH] new --- Remove dup lines/Remove dup lines.sln | 29 + Remove dup lines/Remove dup lines.v11.suo | Bin 0 -> 44032 bytes .../DllExport/DllExportAttribute.cs | 29 + .../Remove dup lines/DllExport/Mono.Cecil.dll | Bin 0 -> 275968 bytes .../DllExport/NppPlugin.DllExport.MSBuild.dll | Bin 0 -> 41472 bytes .../DllExport/NppPlugin.DllExport.dll | Bin 0 -> 90112 bytes .../DllExport/NppPlugin.DllExport.targets | 23 + .../Forms/frmMyDlg.Designer.cs | 48 + .../Remove dup lines/Forms/frmMyDlg.cs | 46 + .../Remove dup lines/Forms/frmMyDlg.resx | 120 + Remove dup lines/Remove dup lines/Main.cs | 103 + .../Remove dup lines/NppPluginNETBase.cs | 46 + .../Remove dup lines/NppPluginNETHelper.cs | 2156 +++++++++++++++++ .../Properties/AssemblyInfo.cs | Bin 0 -> 2982 bytes .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 120 + .../Remove dup lines/Properties/star.png | Bin 0 -> 811 bytes .../Remove dup lines/Properties/star_bmp.bmp | Bin 0 -> 628 bytes .../Remove dup lines/Remove dup lines.csproj | 130 + .../Remove dup lines.csproj.user | 13 + .../Remove dup lines/Resources/Thumbs.db | Bin 0 -> 2560 bytes .../Resources/folder-search.png | Bin 0 -> 429 bytes .../Remove dup lines/UnmanagedExports.cs | 61 + 23 files changed, 2987 insertions(+) create mode 100644 Remove dup lines/Remove dup lines.sln create mode 100644 Remove dup lines/Remove dup lines.v11.suo create mode 100644 Remove dup lines/Remove dup lines/DllExport/DllExportAttribute.cs create mode 100644 Remove dup lines/Remove dup lines/DllExport/Mono.Cecil.dll create mode 100644 Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.MSBuild.dll create mode 100644 Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.dll create mode 100644 Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.targets create mode 100644 Remove dup lines/Remove dup lines/Forms/frmMyDlg.Designer.cs create mode 100644 Remove dup lines/Remove dup lines/Forms/frmMyDlg.cs create mode 100644 Remove dup lines/Remove dup lines/Forms/frmMyDlg.resx create mode 100644 Remove dup lines/Remove dup lines/Main.cs create mode 100644 Remove dup lines/Remove dup lines/NppPluginNETBase.cs create mode 100644 Remove dup lines/Remove dup lines/NppPluginNETHelper.cs create mode 100644 Remove dup lines/Remove dup lines/Properties/AssemblyInfo.cs create mode 100644 Remove dup lines/Remove dup lines/Properties/Resources.Designer.cs create mode 100644 Remove dup lines/Remove dup lines/Properties/Resources.resx create mode 100644 Remove dup lines/Remove dup lines/Properties/star.png create mode 100644 Remove dup lines/Remove dup lines/Properties/star_bmp.bmp create mode 100644 Remove dup lines/Remove dup lines/Remove dup lines.csproj create mode 100644 Remove dup lines/Remove dup lines/Remove dup lines.csproj.user create mode 100644 Remove dup lines/Remove dup lines/Resources/Thumbs.db create mode 100644 Remove dup lines/Remove dup lines/Resources/folder-search.png create mode 100644 Remove dup lines/Remove dup lines/UnmanagedExports.cs diff --git a/Remove dup lines/Remove dup lines.sln b/Remove dup lines/Remove dup lines.sln new file mode 100644 index 0000000..0c28def --- /dev/null +++ b/Remove dup lines/Remove dup lines.sln @@ -0,0 +1,29 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Remove dup lines", "Remove dup lines\Remove dup lines.csproj", "{5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Debug|x64.ActiveCfg = Debug|x64 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Debug|x64.Build.0 = Debug|x64 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Debug|x86.ActiveCfg = Debug|x86 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Debug|x86.Build.0 = Debug|x86 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Release|x64.ActiveCfg = Release|x64 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Release|x64.Build.0 = Release|x64 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Release|x86.ActiveCfg = Release|x86 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C0F78D24-F478-462D-8203-F3CA3BD82FF2} + EndGlobalSection +EndGlobal diff --git a/Remove dup lines/Remove dup lines.v11.suo b/Remove dup lines/Remove dup lines.v11.suo new file mode 100644 index 0000000000000000000000000000000000000000..1b113b412d8d811067155657b55151adbb998f50 GIT binary patch literal 44032 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 H|Lgw&n{~r% literal 0 HcmV?d00001 diff --git a/Remove dup lines/Remove dup lines/DllExport/DllExportAttribute.cs b/Remove dup lines/Remove dup lines/DllExport/DllExportAttribute.cs new file mode 100644 index 0000000..77e3031 --- /dev/null +++ b/Remove dup lines/Remove dup lines/DllExport/DllExportAttribute.cs @@ -0,0 +1,29 @@ +// NPP plugin platform for .Net v0.93.96 by Kasper B. Graversen etc. +using System; +using System.Runtime.InteropServices; + +namespace NppPlugin.DllExport +{ + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + partial class DllExportAttribute : Attribute + { + public DllExportAttribute() + { + } + + public DllExportAttribute(string exportName) + : this(exportName, CallingConvention.StdCall) + { + } + + public DllExportAttribute(string exportName, CallingConvention callingConvention) + { + ExportName = exportName; + CallingConvention = callingConvention; + } + + public CallingConvention CallingConvention { get; set; } + + public string ExportName { get; set; } + } +} \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/DllExport/Mono.Cecil.dll b/Remove dup lines/Remove dup lines/DllExport/Mono.Cecil.dll new file mode 100644 index 0000000000000000000000000000000000000000..ffe9b57debe72e460a2fa851d2870557e6030ffd GIT binary patch literal 275968 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 z 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¥Oz$yjIj1vGqg;92UeJF8d4qlid5a1}CB#i4 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 literal 0 HcmV?d00001 diff --git a/Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.MSBuild.dll b/Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.MSBuild.dll new file mode 100644 index 0000000000000000000000000000000000000000..c3c9de86a2cb42776089e8ee157ca5223bfd643a GIT binary patch literal 41472 zcmeIb3w%`7wLiYjnfK%YGl7Ih5+*!!2w^0=QA9$*Bgi`eQKQ3<8DJ!t6K5tsK$Q5Z zC{=0I`lwa0w&J5|)%sSb)@rSat+utbK5i{y>!WXL>y`g^t+UU}83!I)M>;Mk&+VsNR{=H*+dI82mSr+ zEz7LZ-Xy)INGl?`78JKhy_5wD;kO4rqW%)rO}UxC@|%Ae5$Ne}6Y4ed0*=c6^H+tc z*i(^j3y1gMm(PSL=HHt{#T}_nu76(p^pbHmU6RS{Uizbfos;h|Hctp7<`-T2j~z#!dwTzK zS1tMW%ZqQl=@fk*L?0TiAo3ds`EOyg_UwMN4;nG)jvXBQw46Bxf_}aB+{5`!6#=~i z5vuj@AOvdX>ston>M(`??r?G5R5s2@4k zZUZgh4}&IuM19y@Du0c(q$b(S50U&tHE*>>a{M#P8pgZ+Eh zH%WJdW0nDjhl*_+2UdM9u8MlB!kjYV)XuO_mw`U+ug$Yz=zcpJ-pQ61`kOs6iWf1@ z!__!n#bm@`T)-G)fy)>JR}j9Csp1O0#GKP@6y*voVmdm$l&^8~e>{j!XHM;li{q6gwsieU3410CC%m0H)`G3Phhb zfx@k5>T?%k)%up3`8pg`lmH0dv^orQ+6)!}YC>z)GEckQfu3t0ErS@##PzGr7WP{4Z7&U&bT^{}1wNCE3nJL|Cm z*5h{869ue2jG-y^@|D|00w8?fB1iy)CoO^mtQPqU@%m5&vSC}7f+S#N^AuApFzV(m|1$E|jOUT4qRjbgSFSXJr9>Go;9?Hk zgWbl97BaS2SJ*y~^zcg-qYkltVj&Vsu%B`)v%7GGk@#hf^a_VFKLafG>fxW`YWxDg zTjVh%-XX%i3X;e8CE)9RPo3Li{0hO>^ewEV@=vug=j%&LR1G~rkFAD2<26K4EN{?T z!1^_(&e#5RXqml~@jBCM1J2rpi87xiCv-9xKBfv+v`_9Yj8HLX6Y*<8crg_DlbmOJ z3z2o_)_>!RYwK_LQtI6Lwp?9Xe=Aq_*8RA$MRIJua&*3Oe7>X^D49% z6~SII?||udr<*Z-G!7tql-tbE)ZV*7Nhj=FE=KN348`4Q=W^jY%Gpd5_ZmBwMcM)T z$#K!u^X0OjI|kXf&)T^x{toCemlj1?X^o@6td+Vs=o`2eqi&Awfr#yQPs8Xy;ol*K zSv9w4%=kSBbsNL)37sqD77ZHjGd&vqK&{>b!W!haGv zSHUeBH~!4@itt~A&ceH;1&qHUh&v^7++$fwAZuv;>;s?pL!*~3zr}ruO;+P?h`ln$ z$O~(HRKUnfYy7={kr&taxPXzD*Z4;PBQLP=Phq%4)*|`^Y_$}!I*m_25C1!W-)Vfx zVZ`u{^_s|-A%}U4gJ2uDcl8%J4GotvbhWUKz*t{-dB%YNypJc0&f+h28t^0jGW58^ zVt6G+iPLa%45ukadHqDE;Q?Vl*b7*9l!+NWMh4rEGz_vU;0*gEvDfD@(>skK5CYB& zx+5H-*^vV-qlD9IwHA(Amx5xZshF@p)zKI9*&IU}HqvEgIKUIs!~Ku~m;QWln3zMb zfKz#o09dsu)B02NQR0^>R+>&+W=UoKAa3Txm$Bph;zb0x2qkV&u*jB|J10gN$6>z^ zfIap@8&~-CfyX!p`Nz2Qv3j|mO+e;pSK-N&Id-JP_9?2e8(G0B(eFH4UOp zjXGi-WhRn_*>nvJ4??86VqL`^3``FX`9cXLHYY^ULveu&Vy7;`Y=`R+aMaDP4=(lg z@o1!}5I^oD^STZ1%@1moERs3s@bGL_s8vzmwG?HRnNJZ`6m0oCgnS0c@KEe6x8<_S zTVcy#m)F3s;IECOVS!!YYBM}L7aoc=pW{%MAnJ1V)hKdQad;RaNmvh(5dt!{%tZBY z4X{yuV>mAEqStZfKLVlGJhh~u!E|`UqsH^C1Q90eaI)Oq4jKu(4EgVK!BxsE))^j& zbhj`L1&l)2;Wm!KMdC*gAGR3C91V)!y$^oZOs0piXyMN?zI8N0Sc|H~B{K#9gO6FF zbwwnU4Ra=VXx!V>A(F#sjK#(Oy6dO`{?~DHE^;FZ_3uxvHjIzF26i`aj4ntMLFDuW zP?p0u2EiStA%?@ia*i1c*CP}j58!v-!n`7V%LHIfj}%ip=4emFO3*kPk0cIbEXJzS z0Q41mL~q^CIPS@xFRoWDyu9G8^P54=(OWxooQL4>xXyvhBotKUOkc?@JsIIqV~dVT ze`sNT_t=_re+PI|z$;>X6unNKx?+!{Fs6cvILJ2ObQ_bna?-1gj*0jKX%_Y4H2^|!J%1I|y~Cop9u0QxE0 zB+&>e8Aq-d3p&n4qd*aRNH;pEOAj|7YIqhvkiw0)z!BBz?r;-=6{bIO(sV0L82!c{ zo&!)f!0Fc=E+m@En7h>JURqJ>G(sJ0flhD0*o(8|x44&Uv zx7dk$?fD27dFn7Up&Wmm-{p}-H)Lma`{JN(@Aglzf96(ogil0D<>I-Im)E+_hU@f) z7XYanXQnO*I_#+*vr@|fVnJe4Ml>T05gECzxYL!|hTv&dLxV-0@?jgU_f!m9alOYF zjk5gi%tFM&+8@#t>h~nk?;>!+ivbGty9AVq+BIr9wV$5uL~LUzsF*MF#D(vh?}aT7 zg)F#V4=>|BZ%7tQ<=N>iIeN=ckup*BLF>NQx@z_NeJKdAs&1v9F z;WF~FjU8cU+|^fcGg{^ zGknJBe4Xr*N|iYS&N?_RLF#G{kOW8P6O<^X)Laah`{ zMdtmD!T1 z7{(b~n4)^HqIWp;JAG33_eq`Q=_`i~eNy-JNuBTQD~F5vr2eT->h=Df8M9a^MzEVBELp-em~y&}qLy&G?8&gg zWXlnoS+biWg)z&vo5N#JU;8;6H@}}FIjAyi`#D0kM9mbGnPtpkbr-NU*jXD3Sexvu zo&wfpJ8Me;>nuBKYXR$QJL{YR);7lSJ5Ieou{?b)E?c?svg35#p+wnnI{#2=uI(`K z&DZ)uMsln#*;yCak?jTXE-t_>u}9odz`|TFU)H4stjp}I%L`aL?X0g9u)b<%T~WZo z>?vQ?RRyfC*;!W?u&%MQt}S3)XJ>uAfOWl{^^F474R+Rz1+1IwtX+2GW;^mtJ8}yn z@Q2^xD>cI7z3`(CAIB7mc(T&b(v!(1IwQ*x8KXPhp2*}v%M!78B3&2i%(NTnj^ygP z(27JllQdGtkB^Mwe|4e8?v8ACI&pj|(Vb1lI_g48x>t83+fPjNv>NLZspD5qnG&1S zK526OvwpI@Sq zn6Q%%KVCFk?I4OGW9W*efPX4zf5o*wuKee~9qK6!l)=9Qb<%2V4E4}5gyWQ?G_LKG zMaZBOvRQ*`8rO07t)m#yL_s$YBZ`y>{Nq@hQ{3-=UFDl4j-+POTDoMdC80qs z-f9es*DgYEWm$-BIl6BjJx-7tT9YkRJ zfLo$`M=C06%h-^Urs+zYr-;AQ~o$8 zW=}O!u*|GQrkj%Ubs?SzoQ3?^O1X~gFbp~aaoEAJYcuWF3Ew!U1yS<-FA5f0l-(#S z)pB8+si`KbUz={>*T|}_1sNr!R;F|dk&UTMmST2+U3=iGSA3q{*9xVv|5^lvu*YB% z%{QyntxTnGG4*t`6Dt-KTgGh-t&3$s<|CYmR49|kc6UXz(`Fgjb)of%p3sI^M|UD~ zYzV_yqmjzSlBq;GG#u%MhhnKXljkHm5*8($z=NTQOd^%73mK`79)JWtBFfK)X1WsX z$u-GDJfaP2G@lw>lSCHDj##EMlGv2sr$>)Q&PPYINZ%1QCbR2|?rbO)nuBLg6B~{6 z`X#aKx`w>BO2uI+1EmgtA5m<<*5U*;qQ8Osx%Z0innuM4K3y zR2RywOJ+jtkS`NLAe}g~JDE?EEQXeyc3(cjC3{=(T+KC7VBag5~xShf(3}4O{91}6455v5DIM46ZNl-C5`cBC{2SdlK2vp-gud ztAQmzu|2R+)EH_<{_zBK4@D(W?Kp_*5}}1Hv$~;uekS>hM7yc>h!$>%i*<0$mNFo2 zGS!`HX=QEK>n-b(U0ukuGXY_9jZla3+GE`io=fTKh-KFp>CO<0g$;=XR$AFKbuxrc zhc-=~7ztteW=fUGN!67|XL~|NFEW}sI%b;q8^guvnu_H(@p~H<8%>miny`n$5<;34MC>M&MwWcV-E zyAO0fedJt-a;jXM^AoP`xct=aX3Dp{O!=GlG~{1j^akSJP;{>Drp?INPahX8M7`^a zA3|AMi@B^PikYjGd|2$J#r=-$=ceBeWcr8-XN8+qS1`Rt;8z6RF7W9Jj`Nzt`Gdeu zg^FOAN%Q_a}A+))2b>$GcK;TUR9})N>pr3wI$y!}s#c40A;GMl_9ZQ)a}(LFKe(#BC$W=~Y0s zLemzx*KNZVPA%p!E`&`irZBhg(t_!zDaYKXupls^Ep!#q>DWoU33+}O7}i0sH>LsZ z1s1?H1PuLFV!G&bav+y~f>MP&qII(p0tiBZRo$9Z--SlRt!Rw|IYrYNmLHX@~ch)=t z_*l*D-hI#kLDQr3N=WjK!lvmX(MBHVfO*sO2wJ5{Ve9m1@MSmVux30(`G&%7*Vn-x zzo)QA^b8gg{-LmE^v&>lp5bPmuj=QZ9S11vPrw3Hqp%`J2Hxcug;hDufwfFm*l6$u z(gKA|bDR&`S);I-j!V(*S%uAWT!EJUdJg+0?B_{^o#S`}KKZ#E_9R;HrwY5-@d9=y zFA$sGIp{9IJ`vtd8a-s8Qy8ek(`*2RUqz79lrAM54ER<6J+dNmQn=4%ZvNY6QE``zuI2nWif2J;!^%HVL-h z$2FQl7buKtG=;t@n5na=bgh|g(5>!GXml~B{k|&C zd%*fDY%F+lsY+qTgEtpXM4LKW0^U5Ds<3wO=FuF5b%WPTEeiV*c+C`3*wx_8r1zsm8N3DbO@+M!-U9lr!afFXAw8k6BJX>^o>y3f_W*7u zf2pt$;4Pv93Y!JqV*0DXV&E+%hjf?yzVpFbLj6rl+v9E1mQa<#UiU_T)e81Bec)XQ zY^q>yY5(-bfVG&IuiEz$T1uzdcuOg%u#fx)v}Lp@hkdBE(nUG!Bkd&mS`Is?olM_W z*t{aI-bVN5uu}ardP*>}7f0zOg>f&A(i?)Ay?7P9qcHBptLWn#Hb{$8NSwok=wo&I zdb(OLv;TF_06Yo6eTD6_gK8AUw%b9+2zH^DdvPaCQ5g5)PMWDO_Gc-Yr!e+sDOxJn zejnSlL8mK>Z63>X3S%qpq8^2@m3PsX6vlRaCS9R0w)rz@m%`Yt({z`@*yhvpn8Mhu zGxQ^cvCU`b7Ybv$&eCrc#x|d&KP!ywx|=Xr5lyhocT=gt*seG53wFX|o8LgA6~=bG zktQpQZGIy)DU9uU6D?I3+x#YqDva&AhdLC-Hs3>d6--KCyWUJ+QW)F(X1Y>gY}Z?8 zm%`ZQx6s`RW4k_!9#a_G{8{vzU>ADXV{WCNDvUkmR(efg>@m-#w-v@7^K5!wVeB!_ zp}#7OJ?1&|slwP}ZlfZ;J)sM|>@l~|V1=>A?4_d=#vZemCMt|Q=D9RoVeB!_rP+e* zm)>|DEmIix#`9>E8B==WdGr+S(g?W?Dju(&N4M59wv!r*r|B2aGlKQf%HoyUh14CE60@90n>EDL7xvr$2`{eXF4#{LwpXwN3ey9e%clw( zCD?%DO*u~&tX5%Df*fk?A4!KU?8kr->T~sU>k1`SM zE(+za@xUhKu&LVJbfRG94C%Xcvch--x|h}{j7N)mDXTCZN$#Uwh4I*NA6=?29y{)% zuPcm4i~H#|h4D!8J$gW4JX(B@exNWONgkk|D2zvo2k1?O@ksI@y{|AHEgqzQDvU>x zhsZmV>%QN|qs2p1t}q@+9;Oir%-TebP&BVNGsvpyzqlCiFuiof>jye^#t9l!-ZiRindONVK z3VXf!E5I&L*vHk^0lQqVr|GJ}2k1HK;0KlIX>tv_5xhY%t~^b}!%onCOqa_TVAkQs zbhU}m??Wege@yyBOU{V)0?jiq>ZrNT`vUoGynQr4@t&_a(Yp_cH2T&+3+nW}L&6Sv z+(vo&kg&ylMd-f*)ak8USRWuJG>qvrfDSTyVi;i;)dRX|GN7d;=Hi4Fcy5ih1M0L> z!oQR7do>=c@_DeD=f$(bUWB~}`{dtXz!EA3y%?clga>0aF{agH-SB|G4+VZC@F3s? zxF2R%s((y8r_eNpKEU@VAaJn28iAt$TeNzC(}dC>uvy?zK&K-H*r+7|Bifk)chmcW z?soVj|4Lag9ZB_r-*8M6%0!_|l+o)RQ2ykYE|ezWHmNX=U%iss0@^nC1nju%9DKCX zC*#a^?FNiC+qJs|?gf3j_T1oWvHS8W!mUzP8{lL5ZhA}Nd@y*fb0>0pk8aX73^_pe zNcbKJKct=GXmjqSdxoT(*JzJ}`>b%E)qaNXOWNOtoP)AFLoY?R6!2AT=+JBRYqa4* zv(C4)NkcDi?neASIo{Id4!y+rF2WJ*kAPos#);PnH!CyNu$ z#UQ7IdG3XrF?Wg+&$Z&jbF4V=+$v5yr-~ELrQ*b^OmX75Q(W$2Ylzo`eLCwuD|-T2 z*#`(nD+Ht!veF8@(h3X*Atvt|oF%#qNZRue<{Wq@AuGEFS-BtF0s5aDgAwNfS61$o zuMkQvRabu1wHM*tpz}V%*HsR@+mI!`=N+vts@&_Ere9t8JmB{#e+KwkR%NI+UA zAT1J*)(J?91f+EW(jozAod9u*AZN5fKw2aqt%KZz&aD%W7C|X!g@Ck3Kw2jtEfSE{ z!IM7NKgkmBr9g*(0coj#v{Y91WU{iFkQM8V>E%^*s5|$C4jNgtQtP1ls>k#*sj+Gj z=q%Muw5W>LnOL^0$b6H)tVn(nosLvl;x&n+Y8|%iq|UaT)VEYkcPI5rs^FdU>lo6V zRkPeZ`jg1>eEJC}y-4-Ad#AMi9kQ!)hwSRyA-g(v$gU3V=di1DhwSQHBQdYhcMW^P z&2Yc_WqNd&$MZ7gy#dc_5`Im>Z%g=X3FGbqao&^gUnKk&34bEtPbB;@=E|+ef#KT% z-xK&3fu9I`mcCzo0_w}_GtWxvkEU0Ko$lGK|8^LB7abfH_c%4y<`($oe%Eo;1j2NB z4WVy&&ZJ&}jaB!1vc#(_cp^_Auf}A>|7_P>!#)I;y;D}aQ&v`4IEP7Y&Vk#P*N2|f z?+dxS1GI-jgS=T;6&j#%xzFlPgZ`3UQM1%rsqs$QNUeVG8Qwbav9Ic*Yc58Z>2(_4 zM@$F(PmU&y_tvIM%mo_nyzM0#egf{W`U7%JUqPNjhQH=rpz)5}OL}PdZxH5Qznf}@ z|G|5WHhy>(V?pikzj=4lX~RG9HVL;$@5mD01) z2eZU$Vp-x9KRZVrf;-^$H96Bk6fc2 zW{bOqT?G2U;jk0UKjM1dc5T#%n|&{7V@8~Vk!}j$S;V`b)5M#dMZE6SfINTbYX-!e zfi53W>fZ_O0KgkZ)cBWz9`?6sJnFS+JnFS+yc^c0@u#{IoPq-{f6 zKw5;y3uP*}JjS(YJjS(YJjS(YJjS(YJjS(YJjS(YJjOvbp|BTi!~1>A*yGN z1nW{%6ruBI55gwBg-$?t3(a;#=&STQgm0#g08gd0fbDb^;ClKhV1^#{&y-Y+0#^x) z(NOK6zD>gC3A|C@%>wrbd{ZD{ed(a?zz* zmGE}G$azq|Ny2*sJ|*0Dg&uSK)BOW?ufUrG?iKi!K+VbAXPunGXcxn8x;W?a-3*&O zrxqRKPYU!EF*j6{f&P;c_7yWFUd%C@N*L}b;TpXukV-im61XQIbb%BUy1cqJcMNonbsp>7;ym7U zqU#&3QSN5<$LuU2+zSY zjT)X*U^th?f-+Cwe8{Dt{~ZI$0z3k);VFT7gcm_B4Lkn~7eg)``}dO&UJB`SJo(SC z71C*VVxHl0JP)GN3P6ocf?PVS6qtZ?8m$4;se>92?i6T1E*-np47(tghTUd{8AzvN zcX=+t-H=Pi%!T0w$faSY_e6v@K`sruw+y#HIvu;U49|je8g^NiB78RF(y(*Nuou$l z*ePXrE~L{i_ML?A`E)YE7YO_k#yXuY6nGIvPpq^6>U1&o{584+P^TRfL-@-AFN43* z=~6%qJCzB9FBkX~ya}PvR{?dpf|3Yd38-T~aXrFc6L<}DfYnHWH{p?dopz!2I-Z}) zAkKFIb?l~eBm4krj8$ua52D68c0INLK8#xG*vU8t@KMxH$L_>=fRCd#I(8hs1h@w^ z(6Og*3E=l3wN6jcWq?mXULDWleHHMBkWQm#0CoB?q|62mL328ofd{ApEkxpWz-%qn`un^b5=#Gwr_k}0j0Cjqo?n3y0z~4bPI{jYY`)^d6v2A3{$WeIW1;(3Vbr z6!>T8Nuxgj>hxFWNu$3A{2TP7(?+z#{EAz+&xrz!L36z*6lcjBE4J*S+XR;{hLpZ}Fm~BJdyI$Ipk>aRKgu zZ}Fkk9Dq;3pZKsJ!s~U$G?OFVw> zN^i`&$=mC_!uzE61#h))s^7VdR}}eK(DT2Hp%8yp;RmOg`@{2(7%#0@=c-r>g>R2n zhWidCI#5IFuZ$iNnmwLIIC!6iZ7S?yVUOBc=ohbeoW^~_?bCB^j5;!$FD!a z0sMma@t=e6Vl)0+)PyHE`D)@Gg=01&e4oO73NKQ4k-|&pA&D2n${y!8KwXEZctcdY zN`+S{yh^33rVpw(VKpD|BiH`bT)Ao*UhS0Y#A?=BHO)d4q7d@u_#q0FFkXXv7_Xt_ zqLbmO{1J*iLeWPmdb1WPNzxg3Md>7$mo~d5Xpgy$(>`(?ua#rO!?U;ex$*PjSA@~6 z2;-8uLOc+<91JTQj1jRCzkz`KZy-jWO8l^W#edTm8u9Lq#0*;0)wQIfdu=im$-Tl5 zQLkM@;vF57qqZc{8TQ$-hP*_w zED^`6H|<%x|Ik-PmMqkq6QnhkS)b3pp{uLO=)~Jg&3N|#FH^*YZN7`a!RF4cjzlNk zTZ(ZJtLpP97a3W8YbkvaUVxEA)@!%NBM^ZBHyJCmN&%G{1%_2mrK=mSWqtV%g z_q0-3GL2jRp=ioYS3Z zUp1cc(dWe4vqrjyEPKd_*wJCOekL+EfmhIy?bO_8SVXiJ8%|4XO`_4j%hZ^zSa@qX z*_lTS^W_s8VF6xnN;juA#L`K;c4K2K#|uGyF_2#izb+>~5 z&RLJuDjfF+EKapVy(uMm<`6r_OkBWMBo?zkt|OF_%hn30^wA^rX{qr-dB4l1Vy?+y z#Jm&9S^C^WHW!va54Ffq0gdQ0ON3QNnF@6I)em*pPF5zuGZIpv8Q)AG#rH$oTTZA?jV zL?)+f#UTfHeN!S@VaQ;$pe2*E6zGD_?o4Kz605t{w)AwaHaarG?31`4ftLiEQ`tni z6N3eOJinNVx2jR_XRtVuNY4W15Kfe{dVa-JiY=r_#>v&KhS8CWvA~Ag_!yK9jbf2F zmbm_0*(^vQh2z+@Ey5HKR1D6;VoI3l=IfmW*&jmUSj!CKkajMla2)kQrIcWWnVuVS za~*3Aym3yepTX`swPi$~kwZZg3z?Nn#nL^tk++%OMg44UUKKQZQ=%QOqLTCv)tL?* zi81=*M!PT2W4TS)vmNGYzCa!Y-oom-hxJgaws!LnJ=!`P9oB!2&_QxWQ)u~iD_3F5 zoC^)tE(8G)o6Kum(-1|bML7=~RU`TG3?>Qe z!3s5Y=v2?t=IjlaBQ~VhW@vE=jc`&r##1D7STtk6zNK``rt$W646oP|`pe-&h?b1Q zL)+)P7EPH+#+)Ec5NCr-au!(NZ@D+d*XKw;@jr()7b>W)TxRu{T~h2LH-N5DlTFoM z;YJMN>e@0lr*h_`qshqP$bg)L)-0)y6lP(PU!klrZlz)!WT_#Sn+zNlHCMIPG)@;% z;$V2j+vIaLS>@X6Y0<0GYTZbVFFCz_GB!b zh^mu3qI{4CKq8961(0hrcaVo<+b9QFMEOvFs2t@H#Zey7WD1#l249`z5smdR&9dj% zkzCz(eyoF7G?~=OdgBk^o{7cByJfGDFYGYw29A`w>cO_W2!ZyIC~>%p1l!OM{h*cArstmQVAS1 z!C@TZV4lVjm6I8`VUp_Tjc8OIy%Ck8H>?Kdqc`#;<&WNosyan+^hPwAJ9;CE)UXyl zdV{r#{MG1*a`@;CW=GW;5Nt*66hzIU5#?w&Z&MvCuX*-HlpEhN5B3H)c|+ZVsk=9G zmVbDAS|hotGPj)AUA@({a?3`auUq^VbP2oh9@-uH<{hak*kc!V1I77#U7)~vzo_{a zBtG2qZR}h-|A$@b|4NhpJm!7`Q~x4n&P{&UbTw1B!QMk3Vh9#s< z9EZgR6cLVM>1KxhM&;js4A zjujBFW#VV@GQ^Hbrc`pWQf_@Dk&5TSS*(Is173#KVWA464^DK7FM(4}ZnC6SixpC% z<`lByNoBh=v5w^@!#H#b>&@7hOJ-W+@FFF$h+#@E18)|i1P^jTZ|}xYMX9Vg1%h(9 zEo8#82J_{(gse%Sc}8PICTd2Pnw(=Q+?~xUjPuSfmO%f!1g!2dm?s%p0;G7&#JY89 zO=fLNe>pNQ&Bju;Cb8mU{ub|Uw-s$M8jY@=baL%F8>?|a3+L0p3!HgbL0XZ_B(WNp zr_Jq7#`Bn!rJ6$?&R{hj##H)hO2*cvj7&D!jsnz1?>9Y+~H9uN!3IP;SZOE~d}2`6Bc*Q~3o zYxCAbUP$il=AD~bx0coHR%;cz)i`AJy45&j)tcj*tJTdJUXfm$HrK0}&g;}%KyIxD zHxZpNsRQ4hEr#uimS=BjPjt!hrezSau-LI7k-s6FZZ18Wn!sXprXY%`&NMZ)jGR7W zS~S`iYhQF#hVwy3u37chLG#TQZ#P$aevDV zwHil{5t}_0i*SrvhIo65ErxRYFp_0+{A(=U`gf(M~5Z{=Q-5P0c)tFE=SL=|we?C1;^sM@$*|hl%X5zLkW^2_5 zR_<|EWY#br=4!Cp&-Ou5_vd^sZs+nYi;QOpEC$;c`5>fU5bInWk5PUn4b5(fm%lxi zjV8-HG1D|x`CAS9qBUDn?k*a6h`tu5n-XhcxLrd#uT|?GVi@WUOU#N>VjIUCta7Vb zC-E|Nng?3*&c)O}L7~{(gfB8OV)tf{?a=C-C`p!jSi5;D7XlB^zP>e$p`03F2Wj}H zHPL9U|FPE_w`wv?hnmw_4A3*qh(=qXK$>n2*m>L<*YlJXH4Vs9xUc0gRrx$2S4c97 z^>$tnU=b~9uE+weDF#i?6<@%$s90LCgel-#RGKcL74VpXU2b#sGNXWHHQVenvEGJf zl@eJr^Eye8lU50qD?zwcLUV{qq-Uj#jnZiOZg&`~1sl%^HBctf^OEs+B9)J>dPyrz zdn9utkZoX?2^(pozUxAVeurCkiG>}V~Q zf-Is7V`o6C5NE=8X|RP!EI_b(#c0}`frX&~k)#gpo)aekS3E2QkO1(WIQVwn_S>dFWg$`dJT z0+E|>T87G=0n-6I_F&HTkN~3#PxqLU@9LIkSY)J@<`1}?<&jeOK_1W$UJN2%ld z&!ZRNna?gfQObwAuf_9`De#+sb>JD${2AWli{L#zrqa+Ycpi$+1?QvO@fHhm%z$z{ zepFEh$j6i8%|bhUDATPIo2^5TRT|;7AeDJ$HlLQ=W93)I=^Bv}pAD_z4`v#l%FHKn znjVj$2{Wv>T5g&qZpM+&r$G4{&b6508up{qTd`=Rhxf zRyv*VMN^swQ|Hq6TY+3Kc|d;L7IgALg!nXd)}a9nWug82sn-!aC(DQV^O^B{)E{RR0$jdjm~`@Z*Tn7pmcS#bK@$qY(|&fl7BnISCjSAEeGllJlAS z9g@cq;HyP7?RXTK4;*L3@ImS+#9xiPCP1N+@SB2PJ^sakjYIkg_|di}|1%2uA6ALZ z|4bcPQGGmY0!3y21G_J5CMsh~jKKyw(M$<=2lR-6OvBs0g;ab)YdM;s@T7MfoYl|# z`av#rSrhWu08hi?TN5lijsCj=J)S(PfuV==F-7vuTh7QBI#MLPa~LI&mW!R)s3@Lk0= zJiv;dNBO_l=ku5mlwv=@J_3Kk{hW`1XTNFn=4HUS@3W!vM;#!;sSSYkuMKbS=~Xtj|+eL#z26ga6u(dC>7kF1hei5q*8hgOYuxKKzRf|LSKv zsCV~bX;@21?4#_x>VLoC!CwyfpYRP2n)`p|10FQ?i+sItS_=C7|Ab=#>oewVxtY;IdIc;cJey>~`$n7{mfy~um_3DI)`ulSGk^w)6ie6YmV zU)QVg=0UaQ@2@+|kls%b2L?y!!IEmNzhYUquDeV9^%#xE<2M=Kc+@oSz~E?P=qA0i zw94Tmt+bLssjt6g=8v~8z$%rj5s|avQcJif!N+RVn%6V+_cxS9e!jv(x*n(x)XQ~J zV3O|E@#=%-3{h~JCqx4S$7{Mbq-hdxgs9XB1Rs!PcGzS)!c^*U4-Agff+0@V;0-x7 zFQls+81is{(*|an5LD!%xsXe+*&WgWOF{5*wqB+N79tM@nx=!HbB;^Fs0=PgL0*&` zScrhW@;^5<`j4m9_^xGNa~p>{I9TLeUg-%rwBYhe-NWK951#B5Jb1D$wOVe*(jD$H zVzr#6SC%3%KBMZzCB|{eh~rcS6E4yMNv|K%tYD`j7%MF;BFzexmLl<)dZ~pMqwzUh z>Mad+Bd6|uAtxHzV)rjC4LS0$`=g;K7<1wzn^H7rsfWNU?O*D4OH2B_xgrs-jG)#s zLZ;35_25;RU^9ar$fp7KG7iw=@aCF&9OqxchEU?va0BY*w%c~+wi{_AjzHT+cqI=+ z9RT>UmWFz~4TG17Gzvs_9jth2mEIT}KW)z?XQxi@+OzeY=V;~~H>7_1($iB)st#0L zF#5HFPdt3`O&gyZRlDTt3+{e({YA00X(u3QcuMBQ` z$>|Pmd!+>ZS|1qP_7*azCWl`ubwTmlp2t@v084!yXK>rA=xn7fG}yL3ax);6*&6@8 z?aGLDj#`_rb|>sR8Md%}C*%L<_x6HXYpIhL&3wE-)0*ziWKmys7A`SG50uDW#>G}d zPLCEW5k8F4uLT=WlVF38!rX7n{-l~F*x>g=HzUCaHc00y@eB<12DD(p4?S2xZY6F> zj-zW{ZwY6T>o`!Uw+K4#9T?~x45RRJxCZW~lpMj{QNiA-V0RT@01bg0(NF{ol+h)A zWIPr>>6HD^KZD&8Lz)xsyIU;oD&206#@TR}UswuLVHW^zC}R7h*?Ny3?C}Mc274#T z|KoMh3rrFJ`i0!6CCpGSbCfyDT<|XJq{}n}*hiMJzj1KDfq;_(P6S*W0MPVG?&2B) zoq>aalYvWYrFXVh^p7U!KQK5QzAIlAH$m^hQu9)&m+6o}FLUZ;E*Dy>cOmP1DWt>8 zfGUK(#GQc@M^jf_T^;J`R99D!o2al*=*0_{gaL%@y?43S9E<|9#eoH83-x4l7PQvM z`0pkMM!nKv&L=QCFdJ?XJw<~U?54Ror6F`4{CV*Q#rxp31HGpqRO=}YBugccJ$0E3 zZ`Q!Y)qzQR*kOw=4fMt!o$mEGm{G-}uvQ7vvbk)psG)zEHq7I&{B-_mi^yIGMg$pQ zp^(r`@I}kLF!Py~Q!&}d5f;D=>48sD{Axk~{Awy?=h54VL8%+66|)pK#JRwExRIw> zk{7M1mtw@>5vmF5!DSvUs1Xl4LV-dnD=SS=N^#LK=D9qMN-tau{3mM{5ZyS~T^i`^ z3HENS3NEh-^!9qdK$qcxu(Gm>ot-(jje>PAhtuL-!iAaTSX@qw|0oa*Sy}1f0%O4# zJGfXWs~EnLXFOthkVPv+W!a(eLw;<@#c?wU}|~plVsR7 zA`YnIY!hz;vR*w6LQa@gucH!bV$O`_;K}!!*F@VkaEHE3!% z_4ilKcs;dq)}`0{^z2pN@LeB7oc3eePQv%)+VDVh8e0g7Oj{r8<9*SrS3uj0)n~Nf zVU+})JNT@4k*@e^7VLlE->L`mLY>XwP#(93x@_@GI(7il*wS8zH*QJZcugeaJz?e^ z9EE($PixsT`QPw=lLq+9O@w#8XUx53`NZPF_y3vPgrA07c`e!6 z-{7Sk{^T(Kjg(Za;PT!}Mplk_)l>F8B*xuNC*Mj!Ci9!4{7KHkb9xgFfzNHR{!Nsn zeWIDrk|ujY{N-13f5+Nc;_SDeeq->@+&|(KUH(q3xw{0nh%|g^i&Y-4LuX_shQIx3 zm$PscH-vR#UPoGwe9ez5hvaUs@cXwR=sLf52G5K?K8+$@-XSaN;MeEw;&}^%XcbD} z(_r{}u)JcNLb)BNllcKrLg@4C+a10NtyZyV9ZoUOu>OtReaV^E+3`IRl*He&U58Rh zv|C6E;hd0A-?|N1x(#79VjSv&;RAo`q#lb^zDZRNOYdAO{vhhVUY{nMHle9CcARA@ z>*RTD(dTNViPA>qI=z+0p)GZ2JI%z24I0kTDO_7Tbc?I7eJ5b8W<35)6%7I0ZGNBe P@*Kfp{O|Su1r7Xv!L!b_ literal 0 HcmV?d00001 diff --git a/Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.dll b/Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.dll new file mode 100644 index 0000000000000000000000000000000000000000..f673ed5ce1d567e6337dea83858dd141922daf8e GIT binary patch literal 90112 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≻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 bKqj?-f5*Rm3!Er*6J9a<|Ns8alfeHC8XNyQ literal 0 HcmV?d00001 diff --git a/Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.targets b/Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.targets new file mode 100644 index 0000000..83cff05 --- /dev/null +++ b/Remove dup lines/Remove dup lines/DllExport/NppPlugin.DllExport.targets @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/Forms/frmMyDlg.Designer.cs b/Remove dup lines/Remove dup lines/Forms/frmMyDlg.Designer.cs new file mode 100644 index 0000000..b508ca8 --- /dev/null +++ b/Remove dup lines/Remove dup lines/Forms/frmMyDlg.Designer.cs @@ -0,0 +1,48 @@ +namespace Remove_dup_lines +{ + partial class frmMyDlg + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // frmMyDlg + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(811, 517); + this.Margin = new System.Windows.Forms.Padding(4); + this.Name = "frmMyDlg"; + this.Text = "frmMyDlg"; + this.ResumeLayout(false); + + } + + #endregion + + } +} \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/Forms/frmMyDlg.cs b/Remove dup lines/Remove dup lines/Forms/frmMyDlg.cs new file mode 100644 index 0000000..fb9eb0f --- /dev/null +++ b/Remove dup lines/Remove dup lines/Forms/frmMyDlg.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Reflection; +using System.IO; +namespace Remove_dup_lines +{ + public partial class frmMyDlg : Form + { + public frmMyDlg() + { + InitializeComponent(); + LoadRegExTractorUI(); + } + + private void LoadRegExTractorUI() + { + var currentDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + var regextractorassembly = Assembly.LoadFrom(currentDirectory + "\\RegExtractor\\RegExTractorWinForm.dll"); + //MessageBox.Show("Registerd Assembly"); + + Type type = regextractorassembly.GetType("RegExTractorWinForm.RegExTractorMainUI"); + //MessageBox.Show("Registerd type"); + + //var method = type.GetMethod("Process"); + //MessageBox.Show("Registerd Method"); + + + object activator = Activator.CreateInstance(type); + //MessageBox.Show("Registerd Activator"); + + this.Controls.Add(activator as Control); + (activator as Control).Dock = DockStyle.Fill; + + + //method.Invoke(activator, new object[] { directory, recursive, filter, searchTermFile, outputFile }); + //var workflow = new RegExTractorSimpleWorkflow(); + //workflow.Process(directory, recursive, filter, searchTermFile, outputFile); + } + + + } +} \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/Forms/frmMyDlg.resx b/Remove dup lines/Remove dup lines/Forms/frmMyDlg.resx new file mode 100644 index 0000000..7080a7d --- /dev/null +++ b/Remove dup lines/Remove dup lines/Forms/frmMyDlg.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/Main.cs b/Remove dup lines/Remove dup lines/Main.cs new file mode 100644 index 0000000..3bdc870 --- /dev/null +++ b/Remove dup lines/Remove dup lines/Main.cs @@ -0,0 +1,103 @@ +using System; +using System.IO; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using NppPluginNET; + +namespace Remove_dup_lines +{ + class Main + { + #region " Fields " + internal const string PluginName = "Remove Duplicate lines"; + static string iniFilePath = null; + static bool someSetting = false; + #endregion + + #region " StartUp/CleanUp " + internal static void CommandMenuInit() + { + PluginBase.SetCommand(0, "Remove duplicate lines", selection, new ShortcutKey(false, false, false, Keys.None)); + PluginBase.SetCommand(3, "About", about, new ShortcutKey(false, false, false, Keys.None)); + } + internal static void SetToolBarIcon() + { + + } + internal static void PluginCleanUp() + { + Win32.WritePrivateProfileString("SomeSection", "SomeKey", someSetting ? "1" : "0", iniFilePath); + } + #endregion + + #region " Menu functions " + internal static void about() + { + var ss = " To Remove all visible Duplicate lines Remove Whitespace first\n Edit > Blank Operations > Trim Trailing Space \n\n ****** Remove Duplicate lines Except Empty lines ****** \n build by G. Singh \n 29-10-2019 build 1.2.0.0 "; + MessageBox.Show(ss); + } + internal static void selection() + { + int selectionLength = (int)Win32.SendMessage(PluginBase.GetCurrentScintilla(), SciMsg.SCI_GETSELTEXT, 0, 0); + StringBuilder inputText = new StringBuilder(selectionLength); + Win32.SendMessage(PluginBase.GetCurrentScintilla(), SciMsg.SCI_GETSELTEXT, 0, inputText); + + if (string.IsNullOrEmpty(inputText.ToString())) + { + MessageBox.Show("please select lines first"); + return; + } + try + { + string original = inputText.ToString(); + string outputString; + using (StringReader reader = new StringReader(original)) // code from https://stackoverflow.com/questions/2865863/removing-all-whitespace-lines-from-a-multi-line-string-efficiently + using (StringWriter writer = new StringWriter()) + { + string line; + int x = 1; + while ((line = reader.ReadLine()) != null) + { + x += 1; + if (string.IsNullOrEmpty(line.Trim())) + { + line = Regex.Replace(line, "$", "3f5456cfsd661lld33Guid9CA0F324-3E3A-4C43-8AGu989CAACD-3BD6-499D-8664-41CE47622FE25E1E7C8FF3Guid9CA0F324-3E3A-4C43-8A22-308B5E1E7C8FA-4C43-8A22-308B5E1E7CGuid9CA0F324-3E3A-4C43-8A22-308B5E1E7C8F" + x); + } + writer.WriteLine(line); + } + outputString = writer.ToString(); + } + + string[] distinctLines = outputString.Split(new string[] { Environment.NewLine }, StringSplitOptions.None).Distinct().ToArray(); + string outputStrin; + string s = string.Join("\r\n", distinctLines); + using (StringReader readerr = new StringReader(s)) // code from https://stackoverflow.com/questions/2865863/removing-all-whitespace-lines-from-a-multi-line-string-efficiently + using (StringWriter writerr = new StringWriter()) + { + string linek; + while ((linek = readerr.ReadLine()) != null) + { + string uu = Regex.Replace(linek, "3f5456cfsd661lld33Guid9CA0F324-3E3A-4C43-8AGu989CAACD-3BD6-499D-8664-41CE47622FE25E1E7C8FF3Guid9CA0F324-3E3A-4C43-8A22-308B5E1E7C8FA-4C43-8A22-308B5E1E7CGuid9CA0F324-3E3A-4C43-8A22-308B5E1E7C8F.*$", ""); + writerr.WriteLine(uu); + } + outputStrin = writerr.ToString(); + outputStrin = outputStrin.Substring(0, outputStrin.LastIndexOf(Environment.NewLine)); + } + if (inputText.ToString() == outputStrin) + { + + Win32.SendMessage(PluginBase.GetCurrentScintilla(), SciMsg.SCI_CLEARSELECTIONS, 0, 0); + return; + } + Win32.SendMessage(PluginBase.GetCurrentScintilla(), SciMsg.SCI_REPLACESEL, 0, outputStrin); + } + catch (Exception exp) + { + MessageBox.Show("Error. " + exp.Message); + } + } + #endregion + } +} \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/NppPluginNETBase.cs b/Remove dup lines/Remove dup lines/NppPluginNETBase.cs new file mode 100644 index 0000000..48dc65e --- /dev/null +++ b/Remove dup lines/Remove dup lines/NppPluginNETBase.cs @@ -0,0 +1,46 @@ +using System; + +namespace NppPluginNET +{ + class PluginBase + { + #region " Fields " + internal static NppData nppData; + internal static FuncItems _funcItems = new FuncItems(); + #endregion + + #region " Helper " + internal static void SetCommand(int index, string commandName, NppFuncItemDelegate functionPointer) + { + SetCommand(index, commandName, functionPointer, new ShortcutKey(), false); + } + internal static void SetCommand(int index, string commandName, NppFuncItemDelegate functionPointer, ShortcutKey shortcut) + { + SetCommand(index, commandName, functionPointer, shortcut, false); + } + internal static void SetCommand(int index, string commandName, NppFuncItemDelegate functionPointer, bool checkOnInit) + { + SetCommand(index, commandName, functionPointer, new ShortcutKey(), checkOnInit); + } + internal static void SetCommand(int index, string commandName, NppFuncItemDelegate functionPointer, ShortcutKey shortcut, bool checkOnInit) + { + FuncItem funcItem = new FuncItem(); + funcItem._cmdID = index; + funcItem._itemName = commandName; + if (functionPointer != null) + funcItem._pFunc = new NppFuncItemDelegate(functionPointer); + if (shortcut._key != 0) + funcItem._pShKey = shortcut; + funcItem._init2Check = checkOnInit; + _funcItems.Add(funcItem); + } + + internal static IntPtr GetCurrentScintilla() + { + int curScintilla; + Win32.SendMessage(nppData._nppHandle, NppMsg.NPPM_GETCURRENTSCINTILLA, 0, out curScintilla); + return (curScintilla == 0) ? nppData._scintillaMainHandle : nppData._scintillaSecondHandle; + } + #endregion + } +} diff --git a/Remove dup lines/Remove dup lines/NppPluginNETHelper.cs b/Remove dup lines/Remove dup lines/NppPluginNETHelper.cs new file mode 100644 index 0000000..25e68bf --- /dev/null +++ b/Remove dup lines/Remove dup lines/NppPluginNETHelper.cs @@ -0,0 +1,2156 @@ +using System; +using System.Text; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Runtime.InteropServices; + +namespace NppPluginNET +{ + #region " Notepad++ " + [StructLayout(LayoutKind.Sequential)] + public struct NppData + { + public IntPtr _nppHandle; + public IntPtr _scintillaMainHandle; + public IntPtr _scintillaSecondHandle; + } + + public delegate void NppFuncItemDelegate(); + + [StructLayout(LayoutKind.Sequential)] + public struct ShortcutKey + { + public ShortcutKey(bool isCtrl, bool isAlt, bool isShift, Keys key) + { + // the types 'bool' and 'char' have a size of 1 byte only! + _isCtrl = Convert.ToByte(isCtrl); + _isAlt = Convert.ToByte(isAlt); + _isShift = Convert.ToByte(isShift); + _key = Convert.ToByte(key); + } + public byte _isCtrl; + public byte _isAlt; + public byte _isShift; + public byte _key; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + public struct FuncItem + { + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] + public string _itemName; + public NppFuncItemDelegate _pFunc; + public int _cmdID; + public bool _init2Check; + public ShortcutKey _pShKey; + } + + public class FuncItems : IDisposable + { + List _funcItems; + int _sizeFuncItem; + List _shortCutKeys; + IntPtr _nativePointer; + bool _disposed = false; + + public FuncItems() + { + _funcItems = new List(); + _sizeFuncItem = Marshal.SizeOf(typeof(FuncItem)); + _shortCutKeys = new List(); + } + + [DllImport("kernel32")] + static extern void RtlMoveMemory(IntPtr Destination, IntPtr Source, int Length); + public void Add(FuncItem funcItem) + { + int oldSize = _funcItems.Count * _sizeFuncItem; + _funcItems.Add(funcItem); + int newSize = _funcItems.Count * _sizeFuncItem; + IntPtr newPointer = Marshal.AllocHGlobal(newSize); + + if (_nativePointer != IntPtr.Zero) + { + RtlMoveMemory(newPointer, _nativePointer, oldSize); + Marshal.FreeHGlobal(_nativePointer); + } + IntPtr ptrPosNewItem = (IntPtr)(newPointer.ToInt64() + oldSize); + byte[] aB = Encoding.Unicode.GetBytes(funcItem._itemName + "\0"); + Marshal.Copy(aB, 0, ptrPosNewItem, aB.Length); + ptrPosNewItem = (IntPtr)(ptrPosNewItem.ToInt64() + 128); + IntPtr p = (funcItem._pFunc != null) ? Marshal.GetFunctionPointerForDelegate(funcItem._pFunc) : IntPtr.Zero; + Marshal.WriteIntPtr(ptrPosNewItem, p); + ptrPosNewItem = (IntPtr)(ptrPosNewItem.ToInt64() + IntPtr.Size); + Marshal.WriteInt32(ptrPosNewItem, funcItem._cmdID); + ptrPosNewItem = (IntPtr)(ptrPosNewItem.ToInt64() + 4); + Marshal.WriteInt32(ptrPosNewItem, Convert.ToInt32(funcItem._init2Check)); + ptrPosNewItem = (IntPtr)(ptrPosNewItem.ToInt64() + 4); + if (funcItem._pShKey._key != 0) + { + IntPtr newShortCutKey = Marshal.AllocHGlobal(4); + Marshal.StructureToPtr(funcItem._pShKey, newShortCutKey, false); + Marshal.WriteIntPtr(ptrPosNewItem, newShortCutKey); + } + else Marshal.WriteIntPtr(ptrPosNewItem, IntPtr.Zero); + + _nativePointer = newPointer; + } + + public void RefreshItems() + { + IntPtr ptrPosItem = _nativePointer; + for (int i = 0; i < _funcItems.Count; i++) + { + FuncItem updatedItem = new FuncItem(); + updatedItem._itemName = _funcItems[i]._itemName; + ptrPosItem = (IntPtr)(ptrPosItem.ToInt64() + 128); + updatedItem._pFunc = _funcItems[i]._pFunc; + ptrPosItem = (IntPtr)(ptrPosItem.ToInt64() + IntPtr.Size); + updatedItem._cmdID = Marshal.ReadInt32(ptrPosItem); + ptrPosItem = (IntPtr)(ptrPosItem.ToInt64() + 4); + updatedItem._init2Check = _funcItems[i]._init2Check; + ptrPosItem = (IntPtr)(ptrPosItem.ToInt64() + 4); + updatedItem._pShKey = _funcItems[i]._pShKey; + ptrPosItem = (IntPtr)(ptrPosItem.ToInt64() + IntPtr.Size); + + _funcItems[i] = updatedItem; + } + } + + public IntPtr NativePointer { get { return _nativePointer; } } + public List Items { get { return _funcItems; } } + + public void Dispose() + { + if (!_disposed) + { + foreach (IntPtr ptr in _shortCutKeys) Marshal.FreeHGlobal(ptr); + if (_nativePointer != IntPtr.Zero) Marshal.FreeHGlobal(_nativePointer); + _disposed = true; + } + } + ~FuncItems() + { + Dispose(); + } + } + + [StructLayout(LayoutKind.Sequential)] + public struct RECT + { + public RECT(int left, int top, int right, int bottom) + { + Left = left; Top = top; Right = right; Bottom = bottom; + } + public int Left; + public int Top; + public int Right; + public int Bottom; + } + + [Flags] + public enum NppTbMsg : uint + { + // styles for containers + //CAPTION_TOP = 1, + //CAPTION_BOTTOM = 0, + + // defines for docking manager + CONT_LEFT = 0, + CONT_RIGHT = 1, + CONT_TOP = 2, + CONT_BOTTOM = 3, + DOCKCONT_MAX = 4, + + // mask params for plugins of internal dialogs + DWS_ICONTAB = 0x00000001, // Icon for tabs are available + DWS_ICONBAR = 0x00000002, // Icon for icon bar are available (currently not supported) + DWS_ADDINFO = 0x00000004, // Additional information are in use + DWS_PARAMSALL = (DWS_ICONTAB|DWS_ICONBAR|DWS_ADDINFO), + + // default docking values for first call of plugin + DWS_DF_CONT_LEFT = (CONT_LEFT << 28), // default docking on left + DWS_DF_CONT_RIGHT = (CONT_RIGHT << 28), // default docking on right + DWS_DF_CONT_TOP = (CONT_TOP << 28), // default docking on top + DWS_DF_CONT_BOTTOM = (CONT_BOTTOM << 28), // default docking on bottom + DWS_DF_FLOATING = 0x80000000 // default state is floating + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + public struct NppTbData + { + public IntPtr hClient; // HWND: client Window Handle + public string pszName; // TCHAR*: name of plugin (shown in window) + public int dlgID; // int: a funcItem provides the function pointer to start a dialog. Please parse here these ID + // user modifications + public NppTbMsg uMask; // UINT: mask params: look to above defines + public uint hIconTab; // HICON: icon for tabs + public string pszAddInfo; // TCHAR*: for plugin to display additional informations + // internal data, do not use !!! + public RECT rcFloat; // RECT: floating position + public int iPrevCont; // int: stores the privious container (toggling between float and dock) + public string pszModuleName; // const TCHAR*: it's the plugin file name. It's used to identify the plugin + } + + public enum LangType + { + L_TEXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC, + L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_ASCII, L_USER, + L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA, + L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME, + L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3, + L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT, + L_CMAKE, L_YAML, L_COBOL, L_GUI4CLI, L_D, L_POWERSHELL, L_R, L_JSP, + // The end of enumated language type, so it should be always at the end + L_EXTERNAL + } + + [Flags] + public enum NppMsg : uint + { + //Here you can find how to use these messages : http://notepad-plus.sourceforge.net/uk/plugins-HOWTO.php + NPPMSG = (0x400/*WM_USER*/ + 1000), + + NPPM_GETCURRENTSCINTILLA = (NPPMSG + 4), + NPPM_GETCURRENTLANGTYPE = (NPPMSG + 5), + NPPM_SETCURRENTLANGTYPE = (NPPMSG + 6), + + NPPM_GETNBOPENFILES = (NPPMSG + 7), + ALL_OPEN_FILES = 0, + PRIMARY_VIEW = 1, + SECOND_VIEW = 2, + + NPPM_GETOPENFILENAMES = (NPPMSG + 8), + + NPPM_MODELESSDIALOG = (NPPMSG + 12), + MODELESSDIALOGADD = 0, + MODELESSDIALOGREMOVE = 1, + + NPPM_GETNBSESSIONFILES = (NPPMSG + 13), + NPPM_GETSESSIONFILES = (NPPMSG + 14), + NPPM_SAVESESSION = (NPPMSG + 15), + NPPM_SAVECURRENTSESSION = (NPPMSG + 16), + //struct sessionInfo { + // TCHAR* sessionFilePathName; + // int nbFile; + // TCHAR** files; + //}; + + NPPM_GETOPENFILENAMESPRIMARY = (NPPMSG + 17), + NPPM_GETOPENFILENAMESSECOND = (NPPMSG + 18), + + NPPM_CREATESCINTILLAHANDLE = (NPPMSG + 20), + NPPM_DESTROYSCINTILLAHANDLE = (NPPMSG + 21), + NPPM_GETNBUSERLANG = (NPPMSG + 22), + + NPPM_GETCURRENTDOCINDEX = (NPPMSG + 23), + MAIN_VIEW = 0, + SUB_VIEW = 1, + + NPPM_SETSTATUSBAR = (NPPMSG + 24), + STATUSBAR_DOC_TYPE = 0, + STATUSBAR_DOC_SIZE = 1, + STATUSBAR_CUR_POS = 2, + STATUSBAR_EOF_FORMAT = 3, + STATUSBAR_UNICODE_TYPE = 4, + STATUSBAR_TYPING_MODE = 5, + + NPPM_GETMENUHANDLE = (NPPMSG + 25), + NPPPLUGINMENU = 0, + + NPPM_ENCODESCI = (NPPMSG + 26), + //ascii file to unicode + //int NPPM_ENCODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return new unicodeMode + + NPPM_DECODESCI = (NPPMSG + 27), + //unicode file to ascii + //int NPPM_DECODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return old unicodeMode + + NPPM_ACTIVATEDOC = (NPPMSG + 28), + //void NPPM_ACTIVATEDOC(int view, int index2Activate) + + NPPM_LAUNCHFINDINFILESDLG = (NPPMSG + 29), + //void NPPM_LAUNCHFINDINFILESDLG(TCHAR * dir2Search, TCHAR * filtre) + + NPPM_DMMSHOW = (NPPMSG + 30), + NPPM_DMMHIDE = (NPPMSG + 31), + NPPM_DMMUPDATEDISPINFO = (NPPMSG + 32), + //void NPPM_DMMxxx(0, tTbData->hClient) + + NPPM_DMMREGASDCKDLG = (NPPMSG + 33), + //void NPPM_DMMREGASDCKDLG(0, &tTbData) + + NPPM_LOADSESSION = (NPPMSG + 34), + //void NPPM_LOADSESSION(0, const TCHAR* file name) + + NPPM_DMMVIEWOTHERTAB = (NPPMSG + 35), + //void WM_DMM_VIEWOTHERTAB(0, tTbData->pszName) + + NPPM_RELOADFILE = (NPPMSG + 36), + //BOOL NPPM_RELOADFILE(BOOL withAlert, TCHAR *filePathName2Reload) + + NPPM_SWITCHTOFILE = (NPPMSG + 37), + //BOOL NPPM_SWITCHTOFILE(0, TCHAR *filePathName2switch) + + NPPM_SAVECURRENTFILE = (NPPMSG + 38), + //BOOL NPPM_SAVECURRENTFILE(0, 0) + + NPPM_SAVEALLFILES = (NPPMSG + 39), + //BOOL NPPM_SAVEALLFILES(0, 0) + + NPPM_SETMENUITEMCHECK = (NPPMSG + 40), + //void WM_PIMENU_CHECK(UINT funcItem[X]._cmdID, TRUE/FALSE) + + NPPM_ADDTOOLBARICON = (NPPMSG + 41), + //void WM_ADDTOOLBARICON(UINT funcItem[X]._cmdID, toolbarIcons icon) + //struct toolbarIcons { + // HBITMAP hToolbarBmp; + // HICON hToolbarIcon; + //}; + + NPPM_GETWINDOWSVERSION = (NPPMSG + 42), + //winVer NPPM_GETWINDOWSVERSION(0, 0) + + NPPM_DMMGETPLUGINHWNDBYNAME = (NPPMSG + 43), + //HWND WM_DMM_GETPLUGINHWNDBYNAME(const TCHAR *windowName, const TCHAR *moduleName) + // if moduleName is NULL, then return value is NULL + // if windowName is NULL, then the first found window handle which matches with the moduleName will be returned + + NPPM_MAKECURRENTBUFFERDIRTY = (NPPMSG + 44), + //BOOL NPPM_MAKECURRENTBUFFERDIRTY(0, 0) + + NPPM_GETENABLETHEMETEXTUREFUNC = (NPPMSG + 45), + //BOOL NPPM_GETENABLETHEMETEXTUREFUNC(0, 0) + + NPPM_GETPLUGINSCONFIGDIR = (NPPMSG + 46), + //void NPPM_GETPLUGINSCONFIGDIR(int strLen, TCHAR *str) + + NPPM_MSGTOPLUGIN = (NPPMSG + 47), + //BOOL NPPM_MSGTOPLUGIN(TCHAR *destModuleName, CommunicationInfo *info) + // return value is TRUE when the message arrive to the destination plugins. + // if destModule or info is NULL, then return value is FALSE + //struct CommunicationInfo { + // long internalMsg; + // const TCHAR * srcModuleName; + // void * info; // defined by plugin + //}; + + NPPM_MENUCOMMAND = (NPPMSG + 48), + //void NPPM_MENUCOMMAND(0, int cmdID) + // uncomment //#include "menuCmdID.h" + // in the beginning of this file then use the command symbols defined in "menuCmdID.h" file + // to access all the Notepad++ menu command items + + NPPM_TRIGGERTABBARCONTEXTMENU = (NPPMSG + 49), + //void NPPM_TRIGGERTABBARCONTEXTMENU(int view, int index2Activate) + + NPPM_GETNPPVERSION = (NPPMSG + 50), + // int NPPM_GETNPPVERSION(0, 0) + // return version + // ex : v4.6 + // HIWORD(version) == 4 + // LOWORD(version) == 6 + + NPPM_HIDETABBAR = (NPPMSG + 51), + // BOOL NPPM_HIDETABBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then tab bar will be hidden + // otherwise it'll be shown. + // return value : the old status value + + NPPM_ISTABBARHIDDEN = (NPPMSG + 52), + // BOOL NPPM_ISTABBARHIDDEN(0, 0) + // returned value : TRUE if tab bar is hidden, otherwise FALSE + + NPPM_GETPOSFROMBUFFERID = (NPPMSG + 57), + // INT NPPM_GETPOSFROMBUFFERID(INT bufferID, 0) + // Return VIEW|INDEX from a buffer ID. -1 if the bufferID non existing + // + // VIEW takes 2 highest bits and INDEX (0 based) takes the rest (30 bits) + // Here's the values for the view : + // MAIN_VIEW 0 + // SUB_VIEW 1 + + NPPM_GETFULLPATHFROMBUFFERID = (NPPMSG + 58), + // INT NPPM_GETFULLPATHFROMBUFFERID(INT bufferID, TCHAR *fullFilePath) + // Get full path file name from a bufferID. + // Return -1 if the bufferID non existing, otherwise the number of TCHAR copied/to copy + // User should call it with fullFilePath be NULL to get the number of TCHAR (not including the nul character), + // allocate fullFilePath with the return values + 1, then call it again to get full path file name + + NPPM_GETBUFFERIDFROMPOS = (NPPMSG + 59), + //wParam: Position of document + //lParam: View to use, 0 = Main, 1 = Secondary + //Returns 0 if invalid + + NPPM_GETCURRENTBUFFERID = (NPPMSG + 60), + //Returns active Buffer + + NPPM_RELOADBUFFERID = (NPPMSG + 61), + //Reloads Buffer + //wParam: Buffer to reload + //lParam: 0 if no alert, else alert + + + NPPM_GETBUFFERLANGTYPE = (NPPMSG + 64), + //wParam: BufferID to get LangType from + //lParam: 0 + //Returns as int, see LangType. -1 on error + + NPPM_SETBUFFERLANGTYPE = (NPPMSG + 65), + //wParam: BufferID to set LangType of + //lParam: LangType + //Returns TRUE on success, FALSE otherwise + //use int, see LangType for possible values + //L_USER and L_EXTERNAL are not supported + + NPPM_GETBUFFERENCODING = (NPPMSG + 66), + //wParam: BufferID to get encoding from + //lParam: 0 + //returns as int, see UniMode. -1 on error + + NPPM_SETBUFFERENCODING = (NPPMSG + 67), + //wParam: BufferID to set encoding of + //lParam: format + //Returns TRUE on success, FALSE otherwise + //use int, see UniMode + //Can only be done on new, unedited files + + NPPM_GETBUFFERFORMAT = (NPPMSG + 68), + //wParam: BufferID to get format from + //lParam: 0 + //returns as int, see formatType. -1 on error + + NPPM_SETBUFFERFORMAT = (NPPMSG + 69), + //wParam: BufferID to set format of + //lParam: format + //Returns TRUE on success, FALSE otherwise + //use int, see formatType + + /* + NPPM_ADDREBAR = (NPPMSG + 57), + // BOOL NPPM_ADDREBAR(0, REBARBANDINFO *) + // Returns assigned ID in wID value of struct pointer + NPPM_UPDATEREBAR = (NPPMSG + 58), + // BOOL NPPM_ADDREBAR(INT ID, REBARBANDINFO *) + //Use ID assigned with NPPM_ADDREBAR + NPPM_REMOVEREBAR = (NPPMSG + 59), + // BOOL NPPM_ADDREBAR(INT ID, 0) + //Use ID assigned with NPPM_ADDREBAR + */ + + NPPM_HIDETOOLBAR = (NPPMSG + 70), + // BOOL NPPM_HIDETOOLBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then tool bar will be hidden + // otherwise it'll be shown. + // return value : the old status value + + NPPM_ISTOOLBARHIDDEN = (NPPMSG + 71), + // BOOL NPPM_ISTOOLBARHIDDEN(0, 0) + // returned value : TRUE if tool bar is hidden, otherwise FALSE + + NPPM_HIDEMENU = (NPPMSG + 72), + // BOOL NPPM_HIDEMENU(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then menu will be hidden + // otherwise it'll be shown. + // return value : the old status value + + NPPM_ISMENUHIDDEN = (NPPMSG + 73), + // BOOL NPPM_ISMENUHIDDEN(0, 0) + // returned value : TRUE if menu is hidden, otherwise FALSE + + NPPM_HIDESTATUSBAR = (NPPMSG + 74), + // BOOL NPPM_HIDESTATUSBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then STATUSBAR will be hidden + // otherwise it'll be shown. + // return value : the old status value + + NPPM_ISSTATUSBARHIDDEN = (NPPMSG + 75), + // BOOL NPPM_ISSTATUSBARHIDDEN(0, 0) + // returned value : TRUE if STATUSBAR is hidden, otherwise FALSE + + NPPM_GETSHORTCUTBYCMDID = (NPPMSG + 76), + // BOOL NPPM_GETSHORTCUTBYCMDID(int cmdID, ShortcutKey *sk) + // get your plugin command current mapped shortcut into sk via cmdID + // You may need it after getting NPPN_READY notification + // returned value : TRUE if this function call is successful and shorcut is enable, otherwise FALSE + + NPPM_DOOPEN = (NPPMSG + 77), + // BOOL NPPM_DOOPEN(0, const TCHAR *fullPathName2Open) + // fullPathName2Open indicates the full file path name to be opened. + // The return value is TRUE (1) if the operation is successful, otherwise FALSE (0). + + NPPM_SAVECURRENTFILEAS = (NPPMSG + 78), + // BOOL NPPM_SAVECURRENTFILEAS (BOOL asCopy, const TCHAR* filename) + + NPPM_GETCURRENTNATIVELANGENCODING = (NPPMSG + 79), + // INT NPPM_GETCURRENTNATIVELANGENCODING(0, 0) + // returned value : the current native language enconding + + NPPM_ALLOCATESUPPORTED = (NPPMSG + 80), + // returns TRUE if NPPM_ALLOCATECMDID is supported + // Use to identify if subclassing is necessary + + NPPM_ALLOCATECMDID = (NPPMSG + 81), + // BOOL NPPM_ALLOCATECMDID(int numberRequested, int* startNumber) + // sets startNumber to the initial command ID if successful + // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful + NPPM_GETPLUGINHOMEPATH = (NPPMSG + 97), + + NPPM_ALLOCATEMARKER = (NPPMSG + 82), + // BOOL NPPM_ALLOCATEMARKER(int numberRequested, int* startNumber) + // sets startNumber to the initial command ID if successful + // Allocates a marker number to a plugin + // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful + + RUNCOMMAND_USER = (0x400/*WM_USER*/ + 3000), + NPPM_GETFULLCURRENTPATH = (RUNCOMMAND_USER + FULL_CURRENT_PATH), + NPPM_GETCURRENTDIRECTORY = (RUNCOMMAND_USER + CURRENT_DIRECTORY), + NPPM_GETFILENAME = (RUNCOMMAND_USER + FILE_NAME), + NPPM_GETNAMEPART = (RUNCOMMAND_USER + NAME_PART), + NPPM_GETEXTPART = (RUNCOMMAND_USER + EXT_PART), + NPPM_GETCURRENTWORD = (RUNCOMMAND_USER + CURRENT_WORD), + NPPM_GETNPPDIRECTORY = (RUNCOMMAND_USER + NPP_DIRECTORY), + // BOOL NPPM_GETXXXXXXXXXXXXXXXX(size_t strLen, TCHAR *str) + // where str is the allocated TCHAR array, + // strLen is the allocated array size + // The return value is TRUE when get generic_string operation success + // Otherwise (allocated array size is too small) FALSE + + NPPM_GETCURRENTLINE = (RUNCOMMAND_USER + CURRENT_LINE), + // INT NPPM_GETCURRENTLINE(0, 0) + // return the caret current position line + NPPM_GETCURRENTCOLUMN = (RUNCOMMAND_USER + CURRENT_COLUMN), + // INT NPPM_GETCURRENTCOLUMN(0, 0) + // return the caret current position column + VAR_NOT_RECOGNIZED = 0, + FULL_CURRENT_PATH = 1, + CURRENT_DIRECTORY = 2, + FILE_NAME = 3, + NAME_PART = 4, + EXT_PART = 5, + CURRENT_WORD = 6, + NPP_DIRECTORY = 7, + CURRENT_LINE = 8, + CURRENT_COLUMN = 9, + + // Notification code + NPPN_FIRST = 1000, + NPPN_READY = (NPPN_FIRST + 1), // To notify plugins that all the procedures of launchment of notepad++ are done. + //scnNotification->nmhdr.code = NPPN_READY; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + NPPN_TBMODIFICATION = (NPPN_FIRST + 2), // To notify plugins that toolbar icons can be registered + //scnNotification->nmhdr.code = NPPN_TB_MODIFICATION; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + NPPN_FILEBEFORECLOSE = (NPPN_FIRST + 3), // To notify plugins that the current file is about to be closed + //scnNotification->nmhdr.code = NPPN_FILEBEFORECLOSE; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + NPPN_FILEOPENED = (NPPN_FIRST + 4), // To notify plugins that the current file is just opened + //scnNotification->nmhdr.code = NPPN_FILEOPENED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + NPPN_FILECLOSED = (NPPN_FIRST + 5), // To notify plugins that the current file is just closed + //scnNotification->nmhdr.code = NPPN_FILECLOSED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + NPPN_FILEBEFOREOPEN = (NPPN_FIRST + 6), // To notify plugins that the current file is about to be opened + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + NPPN_FILEBEFORESAVE = (NPPN_FIRST + 7), // To notify plugins that the current file is about to be saved + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + NPPN_FILESAVED = (NPPN_FIRST + 8), // To notify plugins that the current file is just saved + //scnNotification->nmhdr.code = NPPN_FILESAVED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + NPPN_SHUTDOWN = (NPPN_FIRST + 9), // To notify plugins that Notepad++ is about to be shutdowned. + //scnNotification->nmhdr.code = NPPN_SHUTDOWN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + NPPN_BUFFERACTIVATED = (NPPN_FIRST + 10), // To notify plugins that a buffer was activated (put to foreground). + //scnNotification->nmhdr.code = NPPN_BUFFERACTIVATED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = activatedBufferID; + + NPPN_LANGCHANGED = (NPPN_FIRST + 11), // To notify plugins that the language in the current doc is just changed. + //scnNotification->nmhdr.code = NPPN_LANGCHANGED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = currentBufferID; + + NPPN_WORDSTYLESUPDATED = (NPPN_FIRST + 12), // To notify plugins that user initiated a WordStyleDlg change. + //scnNotification->nmhdr.code = NPPN_WORDSTYLESUPDATED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = currentBufferID; + + NPPN_SHORTCUTREMAPPED = (NPPN_FIRST + 13), // To notify plugins that plugin command shortcut is remapped. + //scnNotification->nmhdr.code = NPPN_SHORTCUTSREMAPPED; + //scnNotification->nmhdr.hwndFrom = ShortcutKeyStructurePointer; + //scnNotification->nmhdr.idFrom = cmdID; + //where ShortcutKeyStructurePointer is pointer of struct ShortcutKey: + //struct ShortcutKey { + // bool _isCtrl; + // bool _isAlt; + // bool _isShift; + // UCHAR _key; + //}; + + NPPN_FILEBEFORELOAD = (NPPN_FIRST + 14), // To notify plugins that the current file is about to be loaded + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = NULL; + + NPPN_FILELOADFAILED = (NPPN_FIRST + 15), // To notify plugins that file open operation failed + //scnNotification->nmhdr.code = NPPN_FILEOPENFAILED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + NPPN_READONLYCHANGED = (NPPN_FIRST + 16), // To notify plugins that current document change the readonly status, + //scnNotification->nmhdr.code = NPPN_READONLYCHANGED; + //scnNotification->nmhdr.hwndFrom = bufferID; + //scnNotification->nmhdr.idFrom = docStatus; + // where bufferID is BufferID + // docStatus can be combined by DOCSTAUS_READONLY and DOCSTAUS_BUFFERDIRTY + + DOCSTAUS_READONLY = 1, + DOCSTAUS_BUFFERDIRTY = 2, + + NPPN_DOCORDERCHANGED = (NPPN_FIRST + 16) // To notify plugins that document order is changed + //scnNotification->nmhdr.code = NPPN_DOCORDERCHANGED; + //scnNotification->nmhdr.hwndFrom = newIndex; + //scnNotification->nmhdr.idFrom = BufferID; + } + + public enum NppMenuCmd : uint + { + IDM = 40000, + + IDM_FILE = (IDM + 1000), + IDM_FILE_NEW = (IDM_FILE + 1), + IDM_FILE_OPEN = (IDM_FILE + 2), + IDM_FILE_CLOSE = (IDM_FILE + 3), + IDM_FILE_CLOSEALL = (IDM_FILE + 4), + IDM_FILE_CLOSEALL_BUT_CURRENT = (IDM_FILE + 5), + IDM_FILE_SAVE = (IDM_FILE + 6), + IDM_FILE_SAVEALL = (IDM_FILE + 7), + IDM_FILE_SAVEAS = (IDM_FILE + 8), + //IDM_FILE_ASIAN_LANG = (IDM_FILE + 9), + IDM_FILE_PRINT = (IDM_FILE + 10), + IDM_FILE_PRINTNOW = 1001, + IDM_FILE_EXIT = (IDM_FILE + 11), + IDM_FILE_LOADSESSION = (IDM_FILE + 12), + IDM_FILE_SAVESESSION = (IDM_FILE + 13), + IDM_FILE_RELOAD = (IDM_FILE + 14), + IDM_FILE_SAVECOPYAS = (IDM_FILE + 15), + IDM_FILE_DELETE = (IDM_FILE + 16), + IDM_FILE_RENAME = (IDM_FILE + 17), + + // A mettre à jour si on ajoute nouveau menu item dans le menu "File" + IDM_FILEMENU_LASTONE = IDM_FILE_RENAME, + + IDM_EDIT = (IDM + 2000), + IDM_EDIT_CUT = (IDM_EDIT + 1), + IDM_EDIT_COPY = (IDM_EDIT + 2), + IDM_EDIT_UNDO = (IDM_EDIT + 3), + IDM_EDIT_REDO = (IDM_EDIT + 4), + IDM_EDIT_PASTE = (IDM_EDIT + 5), + IDM_EDIT_DELETE = (IDM_EDIT + 6), + IDM_EDIT_SELECTALL = (IDM_EDIT + 7), + + IDM_EDIT_INS_TAB = (IDM_EDIT + 8), + IDM_EDIT_RMV_TAB = (IDM_EDIT + 9), + IDM_EDIT_DUP_LINE = (IDM_EDIT + 10), + IDM_EDIT_TRANSPOSE_LINE = (IDM_EDIT + 11), + IDM_EDIT_SPLIT_LINES = (IDM_EDIT + 12), + IDM_EDIT_JOIN_LINES = (IDM_EDIT + 13), + IDM_EDIT_LINE_UP = (IDM_EDIT + 14), + IDM_EDIT_LINE_DOWN = (IDM_EDIT + 15), + IDM_EDIT_UPPERCASE = (IDM_EDIT + 16), + IDM_EDIT_LOWERCASE = (IDM_EDIT + 17), + + // Menu macro + IDM_MACRO_STARTRECORDINGMACRO = (IDM_EDIT + 18), + IDM_MACRO_STOPRECORDINGMACRO = (IDM_EDIT + 19), + IDM_MACRO_PLAYBACKRECORDEDMACRO = (IDM_EDIT + 21), + //----------- + + IDM_EDIT_BLOCK_COMMENT = (IDM_EDIT + 22), + IDM_EDIT_STREAM_COMMENT = (IDM_EDIT + 23), + IDM_EDIT_TRIMTRAILING = (IDM_EDIT + 24), + IDM_EDIT_TRIMLINEHEAD = (IDM_EDIT + 42), + IDM_EDIT_TRIM_BOTH = (IDM_EDIT + 43), + IDM_EDIT_EOL2WS = (IDM_EDIT + 44), + IDM_EDIT_TRIMALL = (IDM_EDIT + 45), + IDM_EDIT_TAB2SW = (IDM_EDIT + 46), + IDM_EDIT_SW2TAB = (IDM_EDIT + 47), + + // Menu macro + IDM_MACRO_SAVECURRENTMACRO = (IDM_EDIT + 25), + //----------- + + IDM_EDIT_RTL = (IDM_EDIT + 26), + IDM_EDIT_LTR = (IDM_EDIT + 27), + IDM_EDIT_SETREADONLY = (IDM_EDIT + 28), + IDM_EDIT_FULLPATHTOCLIP = (IDM_EDIT + 29), + IDM_EDIT_FILENAMETOCLIP = (IDM_EDIT + 30), + IDM_EDIT_CURRENTDIRTOCLIP = (IDM_EDIT + 31), + + // Menu macro + IDM_MACRO_RUNMULTIMACRODLG = (IDM_EDIT + 32), + //----------- + + IDM_EDIT_CLEARREADONLY = (IDM_EDIT + 33), + IDM_EDIT_COLUMNMODE = (IDM_EDIT + 34), + IDM_EDIT_BLOCK_COMMENT_SET = (IDM_EDIT + 35), + IDM_EDIT_BLOCK_UNCOMMENT = (IDM_EDIT + 36), + + IDM_EDIT_AUTOCOMPLETE = (50000 + 0), + IDM_EDIT_AUTOCOMPLETE_CURRENTFILE = (50000 + 1), + IDM_EDIT_FUNCCALLTIP = (50000 + 2), + + //Belong to MENU FILE + IDM_OPEN_ALL_RECENT_FILE = (IDM_EDIT + 40), + IDM_CLEAN_RECENT_FILE_LIST = (IDM_EDIT + 41), + + IDM_SEARCH = (IDM + 3000), + + IDM_SEARCH_FIND = (IDM_SEARCH + 1), + IDM_SEARCH_FINDNEXT = (IDM_SEARCH + 2), + IDM_SEARCH_REPLACE = (IDM_SEARCH + 3), + IDM_SEARCH_GOTOLINE = (IDM_SEARCH + 4), + IDM_SEARCH_TOGGLE_BOOKMARK = (IDM_SEARCH + 5), + IDM_SEARCH_NEXT_BOOKMARK = (IDM_SEARCH + 6), + IDM_SEARCH_PREV_BOOKMARK = (IDM_SEARCH + 7), + IDM_SEARCH_CLEAR_BOOKMARKS = (IDM_SEARCH + 8), + IDM_SEARCH_GOTOMATCHINGBRACE = (IDM_SEARCH + 9), + IDM_SEARCH_FINDPREV = (IDM_SEARCH + 10), + IDM_SEARCH_FINDINCREMENT = (IDM_SEARCH + 11), + IDM_SEARCH_FINDINFILES = (IDM_SEARCH + 13), + IDM_SEARCH_VOLATILE_FINDNEXT = (IDM_SEARCH + 14), + IDM_SEARCH_VOLATILE_FINDPREV = (IDM_SEARCH + 15), + IDM_SEARCH_CUTMARKEDLINES = (IDM_SEARCH + 18), + IDM_SEARCH_COPYMARKEDLINES = (IDM_SEARCH + 19), + IDM_SEARCH_PASTEMARKEDLINES = (IDM_SEARCH + 20), + IDM_SEARCH_DELETEMARKEDLINES = (IDM_SEARCH + 21), + IDM_SEARCH_MARKALLEXT1 = (IDM_SEARCH + 22), + IDM_SEARCH_UNMARKALLEXT1 = (IDM_SEARCH + 23), + IDM_SEARCH_MARKALLEXT2 = (IDM_SEARCH + 24), + IDM_SEARCH_UNMARKALLEXT2 = (IDM_SEARCH + 25), + IDM_SEARCH_MARKALLEXT3 = (IDM_SEARCH + 26), + IDM_SEARCH_UNMARKALLEXT3 = (IDM_SEARCH + 27), + IDM_SEARCH_MARKALLEXT4 = (IDM_SEARCH + 28), + IDM_SEARCH_UNMARKALLEXT4 = (IDM_SEARCH + 29), + IDM_SEARCH_MARKALLEXT5 = (IDM_SEARCH + 30), + IDM_SEARCH_UNMARKALLEXT5 = (IDM_SEARCH + 31), + IDM_SEARCH_CLEARALLMARKS = (IDM_SEARCH + 32), + + IDM_SEARCH_GOPREVMARKER1 = (IDM_SEARCH + 33), + IDM_SEARCH_GOPREVMARKER2 = (IDM_SEARCH + 34), + IDM_SEARCH_GOPREVMARKER3 = (IDM_SEARCH + 35), + IDM_SEARCH_GOPREVMARKER4 = (IDM_SEARCH + 36), + IDM_SEARCH_GOPREVMARKER5 = (IDM_SEARCH + 37), + IDM_SEARCH_GOPREVMARKER_DEF = (IDM_SEARCH + 38), + + IDM_SEARCH_GONEXTMARKER1 = (IDM_SEARCH + 39), + IDM_SEARCH_GONEXTMARKER2 = (IDM_SEARCH + 40), + IDM_SEARCH_GONEXTMARKER3 = (IDM_SEARCH + 41), + IDM_SEARCH_GONEXTMARKER4 = (IDM_SEARCH + 42), + IDM_SEARCH_GONEXTMARKER5 = (IDM_SEARCH + 43), + IDM_SEARCH_GONEXTMARKER_DEF = (IDM_SEARCH + 44), + + IDM_FOCUS_ON_FOUND_RESULTS = (IDM_SEARCH + 45), + IDM_SEARCH_GOTONEXTFOUND = (IDM_SEARCH + 46), + IDM_SEARCH_GOTOPREVFOUND = (IDM_SEARCH + 47), + + IDM_SEARCH_SETANDFINDNEXT = (IDM_SEARCH + 48), + IDM_SEARCH_SETANDFINDPREV = (IDM_SEARCH + 49), + IDM_SEARCH_INVERSEMARKS = (IDM_SEARCH + 50), + + IDM_VIEW = (IDM + 4000), + //IDM_VIEW_TOOLBAR_HIDE = (IDM_VIEW + 1), + IDM_VIEW_TOOLBAR_REDUCE = (IDM_VIEW + 2), + IDM_VIEW_TOOLBAR_ENLARGE = (IDM_VIEW + 3), + IDM_VIEW_TOOLBAR_STANDARD = (IDM_VIEW + 4), + IDM_VIEW_REDUCETABBAR = (IDM_VIEW + 5), + IDM_VIEW_LOCKTABBAR = (IDM_VIEW + 6), + IDM_VIEW_DRAWTABBAR_TOPBAR = (IDM_VIEW + 7), + IDM_VIEW_DRAWTABBAR_INACIVETAB = (IDM_VIEW + 8), + IDM_VIEW_POSTIT = (IDM_VIEW + 9), + IDM_VIEW_TOGGLE_FOLDALL = (IDM_VIEW + 10), + IDM_VIEW_USER_DLG = (IDM_VIEW + 11), + IDM_VIEW_LINENUMBER = (IDM_VIEW + 12), + IDM_VIEW_SYMBOLMARGIN = (IDM_VIEW + 13), + IDM_VIEW_FOLDERMAGIN = (IDM_VIEW + 14), + IDM_VIEW_FOLDERMAGIN_SIMPLE = (IDM_VIEW + 15), + IDM_VIEW_FOLDERMAGIN_ARROW = (IDM_VIEW + 16), + IDM_VIEW_FOLDERMAGIN_CIRCLE = (IDM_VIEW + 17), + IDM_VIEW_FOLDERMAGIN_BOX = (IDM_VIEW + 18), + IDM_VIEW_ALL_CHARACTERS = (IDM_VIEW + 19), + IDM_VIEW_INDENT_GUIDE = (IDM_VIEW + 20), + IDM_VIEW_CURLINE_HILITING = (IDM_VIEW + 21), + IDM_VIEW_WRAP = (IDM_VIEW + 22), + IDM_VIEW_ZOOMIN = (IDM_VIEW + 23), + IDM_VIEW_ZOOMOUT = (IDM_VIEW + 24), + IDM_VIEW_TAB_SPACE = (IDM_VIEW + 25), + IDM_VIEW_EOL = (IDM_VIEW + 26), + IDM_VIEW_EDGELINE = (IDM_VIEW + 27), + IDM_VIEW_EDGEBACKGROUND = (IDM_VIEW + 28), + IDM_VIEW_TOGGLE_UNFOLDALL = (IDM_VIEW + 29), + IDM_VIEW_FOLD_CURRENT = (IDM_VIEW + 30), + IDM_VIEW_UNFOLD_CURRENT = (IDM_VIEW + 31), + IDM_VIEW_FULLSCREENTOGGLE = (IDM_VIEW + 32), + IDM_VIEW_ZOOMRESTORE = (IDM_VIEW + 33), + IDM_VIEW_ALWAYSONTOP = (IDM_VIEW + 34), + IDM_VIEW_SYNSCROLLV = (IDM_VIEW + 35), + IDM_VIEW_SYNSCROLLH = (IDM_VIEW + 36), + IDM_VIEW_EDGENONE = (IDM_VIEW + 37), + IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN = (IDM_VIEW + 38), + IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE = (IDM_VIEW + 39), + IDM_VIEW_REFRESHTABAR = (IDM_VIEW + 40), + IDM_VIEW_WRAP_SYMBOL = (IDM_VIEW + 41), + IDM_VIEW_HIDELINES = (IDM_VIEW + 42), + IDM_VIEW_DRAWTABBAR_VERTICAL = (IDM_VIEW + 43), + IDM_VIEW_DRAWTABBAR_MULTILINE = (IDM_VIEW + 44), + IDM_VIEW_DOCCHANGEMARGIN = (IDM_VIEW + 45), + IDM_VIEW_LWDEF = (IDM_VIEW + 46), + IDM_VIEW_LWALIGN = (IDM_VIEW + 47), + IDM_VIEW_LWINDENT = (IDM_VIEW + 48), + IDM_VIEW_SUMMARY = (IDM_VIEW + 49), + + IDM_VIEW_FOLD = (IDM_VIEW + 50), + IDM_VIEW_FOLD_1 = (IDM_VIEW_FOLD + 1), + IDM_VIEW_FOLD_2 = (IDM_VIEW_FOLD + 2), + IDM_VIEW_FOLD_3 = (IDM_VIEW_FOLD + 3), + IDM_VIEW_FOLD_4 = (IDM_VIEW_FOLD + 4), + IDM_VIEW_FOLD_5 = (IDM_VIEW_FOLD + 5), + IDM_VIEW_FOLD_6 = (IDM_VIEW_FOLD + 6), + IDM_VIEW_FOLD_7 = (IDM_VIEW_FOLD + 7), + IDM_VIEW_FOLD_8 = (IDM_VIEW_FOLD + 8), + + IDM_VIEW_UNFOLD = (IDM_VIEW + 60), + IDM_VIEW_UNFOLD_1 = (IDM_VIEW_UNFOLD + 1), + IDM_VIEW_UNFOLD_2 = (IDM_VIEW_UNFOLD + 2), + IDM_VIEW_UNFOLD_3 = (IDM_VIEW_UNFOLD + 3), + IDM_VIEW_UNFOLD_4 = (IDM_VIEW_UNFOLD + 4), + IDM_VIEW_UNFOLD_5 = (IDM_VIEW_UNFOLD + 5), + IDM_VIEW_UNFOLD_6 = (IDM_VIEW_UNFOLD + 6), + IDM_VIEW_UNFOLD_7 = (IDM_VIEW_UNFOLD + 7), + IDM_VIEW_UNFOLD_8 = (IDM_VIEW_UNFOLD + 8), + + IDM_VIEW_GOTO_ANOTHER_VIEW = 10001, + IDM_VIEW_CLONE_TO_ANOTHER_VIEW = 10002, + IDM_VIEW_GOTO_NEW_INSTANCE = 10003, + IDM_VIEW_LOAD_IN_NEW_INSTANCE = 10004, + + IDM_VIEW_SWITCHTO_OTHER_VIEW = (IDM_VIEW + 72), + + IDM_FORMAT = (IDM + 5000), + IDM_FORMAT_TODOS = (IDM_FORMAT + 1), + IDM_FORMAT_TOUNIX = (IDM_FORMAT + 2), + IDM_FORMAT_TOMAC = (IDM_FORMAT + 3), + IDM_FORMAT_ANSI = (IDM_FORMAT + 4), + IDM_FORMAT_UTF_8 = (IDM_FORMAT + 5), + IDM_FORMAT_UCS_2BE = (IDM_FORMAT + 6), + IDM_FORMAT_UCS_2LE = (IDM_FORMAT + 7), + IDM_FORMAT_AS_UTF_8 = (IDM_FORMAT + 8), + IDM_FORMAT_CONV2_ANSI = (IDM_FORMAT + 9), + IDM_FORMAT_CONV2_AS_UTF_8 = (IDM_FORMAT + 10), + IDM_FORMAT_CONV2_UTF_8 = (IDM_FORMAT + 11), + IDM_FORMAT_CONV2_UCS_2BE = (IDM_FORMAT + 12), + IDM_FORMAT_CONV2_UCS_2LE = (IDM_FORMAT + 13), + + IDM_FORMAT_ENCODE = (IDM_FORMAT + 20), + IDM_FORMAT_WIN_1250 = (IDM_FORMAT_ENCODE + 0), + IDM_FORMAT_WIN_1251 = (IDM_FORMAT_ENCODE + 1), + IDM_FORMAT_WIN_1252 = (IDM_FORMAT_ENCODE + 2), + IDM_FORMAT_WIN_1253 = (IDM_FORMAT_ENCODE + 3), + IDM_FORMAT_WIN_1254 = (IDM_FORMAT_ENCODE + 4), + IDM_FORMAT_WIN_1255 = (IDM_FORMAT_ENCODE + 5), + IDM_FORMAT_WIN_1256 = (IDM_FORMAT_ENCODE + 6), + IDM_FORMAT_WIN_1257 = (IDM_FORMAT_ENCODE + 7), + IDM_FORMAT_WIN_1258 = (IDM_FORMAT_ENCODE + 8), + IDM_FORMAT_ISO_8859_1 = (IDM_FORMAT_ENCODE + 9), + IDM_FORMAT_ISO_8859_2 = (IDM_FORMAT_ENCODE + 10), + IDM_FORMAT_ISO_8859_3 = (IDM_FORMAT_ENCODE + 11), + IDM_FORMAT_ISO_8859_4 = (IDM_FORMAT_ENCODE + 12), + IDM_FORMAT_ISO_8859_5 = (IDM_FORMAT_ENCODE + 13), + IDM_FORMAT_ISO_8859_6 = (IDM_FORMAT_ENCODE + 14), + IDM_FORMAT_ISO_8859_7 = (IDM_FORMAT_ENCODE + 15), + IDM_FORMAT_ISO_8859_8 = (IDM_FORMAT_ENCODE + 16), + IDM_FORMAT_ISO_8859_9 = (IDM_FORMAT_ENCODE + 17), + IDM_FORMAT_ISO_8859_10 = (IDM_FORMAT_ENCODE + 18), + IDM_FORMAT_ISO_8859_11 = (IDM_FORMAT_ENCODE + 19), + IDM_FORMAT_ISO_8859_13 = (IDM_FORMAT_ENCODE + 20), + IDM_FORMAT_ISO_8859_14 = (IDM_FORMAT_ENCODE + 21), + IDM_FORMAT_ISO_8859_15 = (IDM_FORMAT_ENCODE + 22), + IDM_FORMAT_ISO_8859_16 = (IDM_FORMAT_ENCODE + 23), + IDM_FORMAT_DOS_437 = (IDM_FORMAT_ENCODE + 24), + IDM_FORMAT_DOS_720 = (IDM_FORMAT_ENCODE + 25), + IDM_FORMAT_DOS_737 = (IDM_FORMAT_ENCODE + 26), + IDM_FORMAT_DOS_775 = (IDM_FORMAT_ENCODE + 27), + IDM_FORMAT_DOS_850 = (IDM_FORMAT_ENCODE + 28), + IDM_FORMAT_DOS_852 = (IDM_FORMAT_ENCODE + 29), + IDM_FORMAT_DOS_855 = (IDM_FORMAT_ENCODE + 30), + IDM_FORMAT_DOS_857 = (IDM_FORMAT_ENCODE + 31), + IDM_FORMAT_DOS_858 = (IDM_FORMAT_ENCODE + 32), + IDM_FORMAT_DOS_860 = (IDM_FORMAT_ENCODE + 33), + IDM_FORMAT_DOS_861 = (IDM_FORMAT_ENCODE + 34), + IDM_FORMAT_DOS_862 = (IDM_FORMAT_ENCODE + 35), + IDM_FORMAT_DOS_863 = (IDM_FORMAT_ENCODE + 36), + IDM_FORMAT_DOS_865 = (IDM_FORMAT_ENCODE + 37), + IDM_FORMAT_DOS_866 = (IDM_FORMAT_ENCODE + 38), + IDM_FORMAT_DOS_869 = (IDM_FORMAT_ENCODE + 39), + IDM_FORMAT_BIG5 = (IDM_FORMAT_ENCODE + 40), + IDM_FORMAT_GB2312 = (IDM_FORMAT_ENCODE + 41), + IDM_FORMAT_SHIFT_JIS = (IDM_FORMAT_ENCODE + 42), + IDM_FORMAT_KOREAN_WIN = (IDM_FORMAT_ENCODE + 43), + IDM_FORMAT_EUC_KR = (IDM_FORMAT_ENCODE + 44), + IDM_FORMAT_TIS_620 = (IDM_FORMAT_ENCODE + 45), + IDM_FORMAT_MAC_CYRILLIC = (IDM_FORMAT_ENCODE + 46), + IDM_FORMAT_KOI8U_CYRILLIC = (IDM_FORMAT_ENCODE + 47), + IDM_FORMAT_KOI8R_CYRILLIC = (IDM_FORMAT_ENCODE + 48), + IDM_FORMAT_ENCODE_END = IDM_FORMAT_KOI8R_CYRILLIC, + + //#define IDM_FORMAT_CONVERT 200 + + IDM_LANG = (IDM + 6000), + IDM_LANGSTYLE_CONFIG_DLG = (IDM_LANG + 1), + IDM_LANG_C = (IDM_LANG + 2), + IDM_LANG_CPP = (IDM_LANG + 3), + IDM_LANG_JAVA = (IDM_LANG + 4), + IDM_LANG_HTML = (IDM_LANG + 5), + IDM_LANG_XML = (IDM_LANG + 6), + IDM_LANG_JS = (IDM_LANG + 7), + IDM_LANG_PHP = (IDM_LANG + 8), + IDM_LANG_ASP = (IDM_LANG + 9), + IDM_LANG_CSS = (IDM_LANG + 10), + IDM_LANG_PASCAL = (IDM_LANG + 11), + IDM_LANG_PYTHON = (IDM_LANG + 12), + IDM_LANG_PERL = (IDM_LANG + 13), + IDM_LANG_OBJC = (IDM_LANG + 14), + IDM_LANG_ASCII = (IDM_LANG + 15), + IDM_LANG_TEXT = (IDM_LANG + 16), + IDM_LANG_RC = (IDM_LANG + 17), + IDM_LANG_MAKEFILE = (IDM_LANG + 18), + IDM_LANG_INI = (IDM_LANG + 19), + IDM_LANG_SQL = (IDM_LANG + 20), + IDM_LANG_VB = (IDM_LANG + 21), + IDM_LANG_BATCH = (IDM_LANG + 22), + IDM_LANG_CS = (IDM_LANG + 23), + IDM_LANG_LUA = (IDM_LANG + 24), + IDM_LANG_TEX = (IDM_LANG + 25), + IDM_LANG_FORTRAN = (IDM_LANG + 26), + IDM_LANG_BASH = (IDM_LANG + 27), + IDM_LANG_FLASH = (IDM_LANG + 28), + IDM_LANG_NSIS = (IDM_LANG + 29), + IDM_LANG_TCL = (IDM_LANG + 30), + IDM_LANG_LISP = (IDM_LANG + 31), + IDM_LANG_SCHEME = (IDM_LANG + 32), + IDM_LANG_ASM = (IDM_LANG + 33), + IDM_LANG_DIFF = (IDM_LANG + 34), + IDM_LANG_PROPS = (IDM_LANG + 35), + IDM_LANG_PS = (IDM_LANG + 36), + IDM_LANG_RUBY = (IDM_LANG + 37), + IDM_LANG_SMALLTALK = (IDM_LANG + 38), + IDM_LANG_VHDL = (IDM_LANG + 39), + IDM_LANG_CAML = (IDM_LANG + 40), + IDM_LANG_KIX = (IDM_LANG + 41), + IDM_LANG_ADA = (IDM_LANG + 42), + IDM_LANG_VERILOG = (IDM_LANG + 43), + IDM_LANG_AU3 = (IDM_LANG + 44), + IDM_LANG_MATLAB = (IDM_LANG + 45), + IDM_LANG_HASKELL = (IDM_LANG + 46), + IDM_LANG_INNO = (IDM_LANG + 47), + IDM_LANG_CMAKE = (IDM_LANG + 48), + IDM_LANG_YAML = (IDM_LANG + 49), + IDM_LANG_COBOL = (IDM_LANG + 50), + IDM_LANG_D = (IDM_LANG + 51), + IDM_LANG_GUI4CLI = (IDM_LANG + 52), + IDM_LANG_POWERSHELL = (IDM_LANG + 53), + IDM_LANG_R = (IDM_LANG + 54), + IDM_LANG_JSP = (IDM_LANG + 55), + + IDM_LANG_EXTERNAL = (IDM_LANG + 65), + IDM_LANG_EXTERNAL_LIMIT = (IDM_LANG + 79), + + IDM_LANG_USER = (IDM_LANG + 80), //46080 + IDM_LANG_USER_LIMIT = (IDM_LANG + 110), //46110 + + + IDM_ABOUT = (IDM + 7000), + IDM_HOMESWEETHOME = (IDM_ABOUT + 1), + IDM_PROJECTPAGE = (IDM_ABOUT + 2), + IDM_ONLINEHELP = (IDM_ABOUT + 3), + IDM_FORUM = (IDM_ABOUT + 4), + IDM_PLUGINSHOME = (IDM_ABOUT + 5), + IDM_UPDATE_NPP = (IDM_ABOUT + 6), + IDM_WIKIFAQ = (IDM_ABOUT + 7), + IDM_HELP = (IDM_ABOUT + 8), + + + IDM_SETTING = (IDM + 8000), + IDM_SETTING_TAB_SIZE = (IDM_SETTING + 1), + IDM_SETTING_TAB_REPLCESPACE = (IDM_SETTING + 2), + IDM_SETTING_HISTORY_SIZE = (IDM_SETTING + 3), + IDM_SETTING_EDGE_SIZE = (IDM_SETTING + 4), + IDM_SETTING_IMPORTPLUGIN = (IDM_SETTING + 5), + IDM_SETTING_IMPORTSTYLETHEMS = (IDM_SETTING + 6), + IDM_SETTING_TRAYICON = (IDM_SETTING + 8), + IDM_SETTING_SHORTCUT_MAPPER = (IDM_SETTING + 9), + IDM_SETTING_REMEMBER_LAST_SESSION = (IDM_SETTING + 10), + IDM_SETTING_PREFERECE = (IDM_SETTING + 11), + IDM_SETTING_AUTOCNBCHAR = (IDM_SETTING + 15), + IDM_SETTING_SHORTCUT_MAPPER_MACRO = (IDM_SETTING + 16), + IDM_SETTING_SHORTCUT_MAPPER_RUN = (IDM_SETTING + 17), + IDM_SETTING_EDITCONTEXTMENU = (IDM_SETTING + 18), + + IDM_EXECUTE = (IDM + 9000), + + IDM_SYSTRAYPOPUP = (IDM + 3100), + IDM_SYSTRAYPOPUP_ACTIVATE = (IDM_SYSTRAYPOPUP + 1), + IDM_SYSTRAYPOPUP_NEWDOC = (IDM_SYSTRAYPOPUP + 2), + IDM_SYSTRAYPOPUP_NEW_AND_PASTE = (IDM_SYSTRAYPOPUP + 3), + IDM_SYSTRAYPOPUP_OPENFILE = (IDM_SYSTRAYPOPUP + 4), + IDM_SYSTRAYPOPUP_CLOSE = (IDM_SYSTRAYPOPUP + 5) + } + + [Flags] + public enum DockMgrMsg : uint + { + IDB_CLOSE_DOWN = 137, + IDB_CLOSE_UP = 138, + IDD_CONTAINER_DLG = 139, + + IDC_TAB_CONT = 1027, + IDC_CLIENT_TAB = 1028, + IDC_BTN_CAPTION = 1050, + + DMM_MSG = 0x5000, + DMM_CLOSE = (DMM_MSG + 1), + DMM_DOCK = (DMM_MSG + 2), + DMM_FLOAT = (DMM_MSG + 3), + DMM_DOCKALL = (DMM_MSG + 4), + DMM_FLOATALL = (DMM_MSG + 5), + DMM_MOVE = (DMM_MSG + 6), + DMM_UPDATEDISPINFO = (DMM_MSG + 7), + DMM_GETIMAGELIST = (DMM_MSG + 8), + DMM_GETICONPOS = (DMM_MSG + 9), + DMM_DROPDATA = (DMM_MSG + 10), + DMM_MOVE_SPLITTER = (DMM_MSG + 11), + DMM_CANCEL_MOVE = (DMM_MSG + 12), + DMM_LBUTTONUP = (DMM_MSG + 13), + + DMN_FIRST = 1050, + DMN_CLOSE = (DMN_FIRST + 1), + //nmhdr.code = DWORD(DMN_CLOSE, 0)); + //nmhdr.hwndFrom = hwndNpp; + //nmhdr.idFrom = ctrlIdNpp; + + DMN_DOCK = (DMN_FIRST + 2), + DMN_FLOAT = (DMN_FIRST + 3) + //nmhdr.code = DWORD(DMN_XXX, int newContainer); + //nmhdr.hwndFrom = hwndNpp; + //nmhdr.idFrom = ctrlIdNpp; + } + + [StructLayout(LayoutKind.Sequential)] + public struct toolbarIcons + { + public IntPtr hToolbarBmp; + public IntPtr hToolbarIcon; + } + #endregion + + #region " Scintilla " + [StructLayout(LayoutKind.Sequential)] + public struct Sci_NotifyHeader + { + /* Compatible with Windows NMHDR. + * hwndFrom is really an environment specific window handle or pointer + * but most clients of Scintilla.h do not have this type visible. */ + public IntPtr hwndFrom; + public IntPtr idFrom; + public uint code; + } + + [StructLayout(LayoutKind.Sequential)] + public struct SCNotification + { + public Sci_NotifyHeader nmhdr; + public int position; /* SCN_STYLENEEDED, SCN_MODIFIED, SCN_DWELLSTART, SCN_DWELLEND */ + public int ch; /* SCN_CHARADDED, SCN_KEY */ + public int modifiers; /* SCN_KEY */ + public int modificationType; /* SCN_MODIFIED */ + public IntPtr text; /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION */ + public int length; /* SCN_MODIFIED */ + public int linesAdded; /* SCN_MODIFIED */ + public int message; /* SCN_MACRORECORD */ + public IntPtr wParam; /* SCN_MACRORECORD */ + public IntPtr lParam; /* SCN_MACRORECORD */ + public int line; /* SCN_MODIFIED */ + public int foldLevelNow; /* SCN_MODIFIED */ + public int foldLevelPrev; /* SCN_MODIFIED */ + public int margin; /* SCN_MARGINCLICK */ + public int listType; /* SCN_USERLISTSELECTION */ + public int x; /* SCN_DWELLSTART, SCN_DWELLEND */ + public int y; /* SCN_DWELLSTART, SCN_DWELLEND */ + public int token; /* SCN_MODIFIED with SC_MOD_CONTAINER */ + public int annotationLinesAdded;/* SC_MOD_CHANGEANNOTATION */ + } + + [Flags] + public enum SciMsg : uint + { + INVALID_POSITION = 0xFFFFFFFF, + SCI_START = 2000, + SCI_OPTIONAL_START = 3000, + SCI_LEXER_START = 4000, + SCI_ADDTEXT = 2001, + SCI_ADDSTYLEDTEXT = 2002, + SCI_INSERTTEXT = 2003, + SCI_CLEARALL = 2004, + SCI_CLEARDOCUMENTSTYLE = 2005, + SCI_GETLENGTH = 2006, + SCI_GETCHARAT = 2007, + SCI_GETCURRENTPOS = 2008, + SCI_GETANCHOR = 2009, + SCI_GETSTYLEAT = 2010, + SCI_REDO = 2011, + SCI_SETUNDOCOLLECTION = 2012, + SCI_SELECTALL = 2013, + SCI_SETSAVEPOINT = 2014, + SCI_GETSTYLEDTEXT = 2015, + SCI_CANREDO = 2016, + SCI_MARKERLINEFROMHANDLE = 2017, + SCI_MARKERDELETEHANDLE = 2018, + SCI_GETUNDOCOLLECTION = 2019, + SCWS_INVISIBLE = 0, + SCWS_VISIBLEALWAYS = 1, + SCWS_VISIBLEAFTERINDENT = 2, + SCI_GETVIEWWS = 2020, + SCI_SETVIEWWS = 2021, + SCI_POSITIONFROMPOINT = 2022, + SCI_POSITIONFROMPOINTCLOSE = 2023, + SCI_GOTOLINE = 2024, + SCI_GOTOPOS = 2025, + SCI_SETANCHOR = 2026, + SCI_GETCURLINE = 2027, + SCI_GETENDSTYLED = 2028, + SC_EOL_CRLF = 0, + SC_EOL_CR = 1, + SC_EOL_LF = 2, + SCI_CONVERTEOLS = 2029, + SCI_GETEOLMODE = 2030, + SCI_SETEOLMODE = 2031, + SCI_STARTSTYLING = 2032, + SCI_SETSTYLING = 2033, + SCI_GETBUFFEREDDRAW = 2034, + SCI_SETBUFFEREDDRAW = 2035, + SCI_SETTABWIDTH = 2036, + SCI_GETTABWIDTH = 2121, + SC_CP_UTF8 = 65001, + SC_CP_DBCS = 1, + SCI_SETCODEPAGE = 2037, + SCI_SETUSEPALETTE = 2039, + MARKER_MAX = 31, + SC_MARK_CIRCLE = 0, + SC_MARK_ROUNDRECT = 1, + SC_MARK_ARROW = 2, + SC_MARK_SMALLRECT = 3, + SC_MARK_SHORTARROW = 4, + SC_MARK_EMPTY = 5, + SC_MARK_ARROWDOWN = 6, + SC_MARK_MINUS = 7, + SC_MARK_PLUS = 8, + SC_MARK_VLINE = 9, + SC_MARK_LCORNER = 10, + SC_MARK_TCORNER = 11, + SC_MARK_BOXPLUS = 12, + SC_MARK_BOXPLUSCONNECTED = 13, + SC_MARK_BOXMINUS = 14, + SC_MARK_BOXMINUSCONNECTED = 15, + SC_MARK_LCORNERCURVE = 16, + SC_MARK_TCORNERCURVE = 17, + SC_MARK_CIRCLEPLUS = 18, + SC_MARK_CIRCLEPLUSCONNECTED = 19, + SC_MARK_CIRCLEMINUS = 20, + SC_MARK_CIRCLEMINUSCONNECTED = 21, + SC_MARK_BACKGROUND = 22, + SC_MARK_DOTDOTDOT = 23, + SC_MARK_ARROWS = 24, + SC_MARK_PIXMAP = 25, + SC_MARK_FULLRECT = 26, + SC_MARK_LEFTRECT = 27, + SC_MARK_AVAILABLE = 28, + SC_MARK_UNDERLINE = 29, + SC_MARK_CHARACTER = 10000, + SC_MARKNUM_FOLDEREND = 25, + SC_MARKNUM_FOLDEROPENMID = 26, + SC_MARKNUM_FOLDERMIDTAIL = 27, + SC_MARKNUM_FOLDERTAIL = 28, + SC_MARKNUM_FOLDERSUB = 29, + SC_MARKNUM_FOLDER = 30, + SC_MARKNUM_FOLDEROPEN = 31, + SC_MASK_FOLDERS = 0xFE000000, + SCI_MARKERDEFINE = 2040, + SCI_MARKERSETFORE = 2041, + SCI_MARKERSETBACK = 2042, + SCI_MARKERADD = 2043, + SCI_MARKERDELETE = 2044, + SCI_MARKERDELETEALL = 2045, + SCI_MARKERGET = 2046, + SCI_MARKERNEXT = 2047, + SCI_MARKERPREVIOUS = 2048, + SCI_MARKERDEFINEPIXMAP = 2049, + SCI_MARKERADDSET = 2466, + SCI_MARKERSETALPHA = 2476, + SC_MARGIN_SYMBOL = 0, + SC_MARGIN_NUMBER = 1, + SC_MARGIN_BACK = 2, + SC_MARGIN_FORE = 3, + SC_MARGIN_TEXT = 4, + SC_MARGIN_RTEXT = 5, + SCI_SETMARGINTYPEN = 2240, + SCI_GETMARGINTYPEN = 2241, + SCI_SETMARGINWIDTHN = 2242, + SCI_GETMARGINWIDTHN = 2243, + SCI_SETMARGINMASKN = 2244, + SCI_GETMARGINMASKN = 2245, + SCI_SETMARGINSENSITIVEN = 2246, + SCI_GETMARGINSENSITIVEN = 2247, + STYLE_DEFAULT = 32, + STYLE_LINENUMBER = 33, + STYLE_BRACELIGHT = 34, + STYLE_BRACEBAD = 35, + STYLE_CONTROLCHAR = 36, + STYLE_INDENTGUIDE = 37, + STYLE_CALLTIP = 38, + STYLE_LASTPREDEFINED = 39, + STYLE_MAX = 255, + SC_CHARSET_ANSI = 0, + SC_CHARSET_DEFAULT = 1, + SC_CHARSET_BALTIC = 186, + SC_CHARSET_CHINESEBIG5 = 136, + SC_CHARSET_EASTEUROPE = 238, + SC_CHARSET_GB2312 = 134, + SC_CHARSET_GREEK = 161, + SC_CHARSET_HANGUL = 129, + SC_CHARSET_MAC = 77, + SC_CHARSET_OEM = 255, + SC_CHARSET_RUSSIAN = 204, + SC_CHARSET_CYRILLIC = 1251, + SC_CHARSET_SHIFTJIS = 128, + SC_CHARSET_SYMBOL = 2, + SC_CHARSET_TURKISH = 162, + SC_CHARSET_JOHAB = 130, + SC_CHARSET_HEBREW = 177, + SC_CHARSET_ARABIC = 178, + SC_CHARSET_VIETNAMESE = 163, + SC_CHARSET_THAI = 222, + SC_CHARSET_8859_15 = 1000, + SCI_STYLECLEARALL = 2050, + SCI_STYLESETFORE = 2051, + SCI_STYLESETBACK = 2052, + SCI_STYLESETBOLD = 2053, + SCI_STYLESETITALIC = 2054, + SCI_STYLESETSIZE = 2055, + SCI_STYLESETFONT = 2056, + SCI_STYLESETEOLFILLED = 2057, + SCI_STYLERESETDEFAULT = 2058, + SCI_STYLESETUNDERLINE = 2059, + SC_CASE_MIXED = 0, + SC_CASE_UPPER = 1, + SC_CASE_LOWER = 2, + SCI_STYLEGETFORE = 2481, + SCI_STYLEGETBACK = 2482, + SCI_STYLEGETBOLD = 2483, + SCI_STYLEGETITALIC = 2484, + SCI_STYLEGETSIZE = 2485, + SCI_STYLEGETFONT = 2486, + SCI_STYLEGETEOLFILLED = 2487, + SCI_STYLEGETUNDERLINE = 2488, + SCI_STYLEGETCASE = 2489, + SCI_STYLEGETCHARACTERSET = 2490, + SCI_STYLEGETVISIBLE = 2491, + SCI_STYLEGETCHANGEABLE = 2492, + SCI_STYLEGETHOTSPOT = 2493, + SCI_STYLESETCASE = 2060, + SCI_STYLESETCHARACTERSET = 2066, + SCI_STYLESETHOTSPOT = 2409, + SCI_SETSELFORE = 2067, + SCI_SETSELBACK = 2068, + SCI_GETSELALPHA = 2477, + SCI_SETSELALPHA = 2478, + SCI_GETSELEOLFILLED = 2479, + SCI_SETSELEOLFILLED = 2480, + SCI_SETCARETFORE = 2069, + SCI_ASSIGNCMDKEY = 2070, + SCI_CLEARCMDKEY = 2071, + SCI_CLEARALLCMDKEYS = 2072, + SCI_SETSTYLINGEX = 2073, + SCI_STYLESETVISIBLE = 2074, + SCI_GETCARETPERIOD = 2075, + SCI_SETCARETPERIOD = 2076, + SCI_SETWORDCHARS = 2077, + SCI_BEGINUNDOACTION = 2078, + SCI_ENDUNDOACTION = 2079, + INDIC_PLAIN = 0, + INDIC_SQUIGGLE = 1, + INDIC_TT = 2, + INDIC_DIAGONAL = 3, + INDIC_STRIKE = 4, + INDIC_HIDDEN = 5, + INDIC_BOX = 6, + INDIC_ROUNDBOX = 7, + INDIC_MAX = 31, + INDIC_CONTAINER = 8, + INDIC0_MASK = 0x20, + INDIC1_MASK = 0x40, + INDIC2_MASK = 0x80, + INDICS_MASK = 0xE0, + SCI_INDICSETSTYLE = 2080, + SCI_INDICGETSTYLE = 2081, + SCI_INDICSETFORE = 2082, + SCI_INDICGETFORE = 2083, + SCI_INDICSETUNDER = 2510, + SCI_INDICGETUNDER = 2511, + SCI_GETCARETLINEVISIBLEALWAYS = 3095, + SCI_SETCARETLINEVISIBLEALWAYS = 3096, + SCI_SETWHITESPACEFORE = 2084, + SCI_SETWHITESPACEBACK = 2085, + SCI_SETSTYLEBITS = 2090, + SCI_GETSTYLEBITS = 2091, + SCI_SETLINESTATE = 2092, + SCI_GETLINESTATE = 2093, + SCI_GETMAXLINESTATE = 2094, + SCI_GETCARETLINEVISIBLE = 2095, + SCI_SETCARETLINEVISIBLE = 2096, + SCI_GETCARETLINEBACK = 2097, + SCI_SETCARETLINEBACK = 2098, + SCI_STYLESETCHANGEABLE = 2099, + SCI_AUTOCSHOW = 2100, + SCI_AUTOCCANCEL = 2101, + SCI_AUTOCACTIVE = 2102, + SCI_AUTOCPOSSTART = 2103, + SCI_AUTOCCOMPLETE = 2104, + SCI_AUTOCSTOPS = 2105, + SCI_AUTOCSETSEPARATOR = 2106, + SCI_AUTOCGETSEPARATOR = 2107, + SCI_AUTOCSELECT = 2108, + SCI_AUTOCSETCANCELATSTART = 2110, + SCI_AUTOCGETCANCELATSTART = 2111, + SCI_AUTOCSETFILLUPS = 2112, + SCI_AUTOCSETCHOOSESINGLE = 2113, + SCI_AUTOCGETCHOOSESINGLE = 2114, + SCI_AUTOCSETIGNORECASE = 2115, + SCI_AUTOCGETIGNORECASE = 2116, + SCI_USERLISTSHOW = 2117, + SCI_AUTOCSETAUTOHIDE = 2118, + SCI_AUTOCGETAUTOHIDE = 2119, + SCI_AUTOCSETDROPRESTOFWORD = 2270, + SCI_AUTOCGETDROPRESTOFWORD = 2271, + SCI_REGISTERIMAGE = 2405, + SCI_CLEARREGISTEREDIMAGES = 2408, + SCI_AUTOCGETTYPESEPARATOR = 2285, + SCI_AUTOCSETTYPESEPARATOR = 2286, + SCI_AUTOCSETMAXWIDTH = 2208, + SCI_AUTOCGETMAXWIDTH = 2209, + SCI_AUTOCSETMAXHEIGHT = 2210, + SCI_AUTOCGETMAXHEIGHT = 2211, + SCI_SETINDENT = 2122, + SCI_GETINDENT = 2123, + SCI_SETUSETABS = 2124, + SCI_GETUSETABS = 2125, + SCI_SETLINEINDENTATION = 2126, + SCI_GETLINEINDENTATION = 2127, + SCI_GETLINEINDENTPOSITION = 2128, + SCI_GETCOLUMN = 2129, + SCI_SETHSCROLLBAR = 2130, + SCI_GETHSCROLLBAR = 2131, + SC_IV_NONE = 0, + SC_IV_REAL = 1, + SC_IV_LOOKFORWARD = 2, + SC_IV_LOOKBOTH = 3, + SCI_SETINDENTATIONGUIDES = 2132, + SCI_GETINDENTATIONGUIDES = 2133, + SCI_SETHIGHLIGHTGUIDE = 2134, + SCI_GETHIGHLIGHTGUIDE = 2135, + SCI_GETLINEENDPOSITION = 2136, + SCI_GETCODEPAGE = 2137, + SCI_GETCARETFORE = 2138, + SCI_GETUSEPALETTE = 2139, + SCI_GETREADONLY = 2140, + SCI_SETCURRENTPOS = 2141, + SCI_SETSELECTIONSTART = 2142, + SCI_GETSELECTIONSTART = 2143, + SCI_SETSELECTIONEND = 2144, + SCI_GETSELECTIONEND = 2145, + SCI_SETPRINTMAGNIFICATION = 2146, + SCI_GETPRINTMAGNIFICATION = 2147, + SC_PRINT_NORMAL = 0, + SC_PRINT_INVERTLIGHT = 1, + SC_PRINT_BLACKONWHITE = 2, + SC_PRINT_COLOURONWHITE = 3, + SC_PRINT_COLOURONWHITEDEFAULTBG = 4, + SCI_SETPRINTCOLOURMODE = 2148, + SCI_GETPRINTCOLOURMODE = 2149, + SCFIND_WHOLEWORD = 2, + SCFIND_MATCHCASE = 4, + SCFIND_WORDSTART = 0x00100000, + SCFIND_REGEXP = 0x00200000, + SCFIND_POSIX = 0x00400000, + SCI_FINDTEXT = 2150, + SCI_FORMATRANGE = 2151, + SCI_GETFIRSTVISIBLELINE = 2152, + SCI_GETLINE = 2153, + SCI_GETLINECOUNT = 2154, + SCI_SETMARGINLEFT = 2155, + SCI_GETMARGINLEFT = 2156, + SCI_SETMARGINRIGHT = 2157, + SCI_GETMARGINRIGHT = 2158, + SCI_GETMODIFY = 2159, + SCI_SETSEL = 2160, + SCI_GETSELTEXT = 2161, + SCI_GETTEXTRANGE = 2162, + SCI_HIDESELECTION = 2163, + SCI_POINTXFROMPOSITION = 2164, + SCI_POINTYFROMPOSITION = 2165, + SCI_LINEFROMPOSITION = 2166, + SCI_POSITIONFROMLINE = 2167, + SCI_LINESCROLL = 2168, + SCI_SCROLLCARET = 2169, + SCI_REPLACESEL = 2170, + SCI_SETREADONLY = 2171, + SCI_NULL = 2172, + SCI_CANPASTE = 2173, + SCI_CANUNDO = 2174, + SCI_EMPTYUNDOBUFFER = 2175, + SCI_UNDO = 2176, + SCI_CUT = 2177, + SCI_COPY = 2178, + SCI_PASTE = 2179, + SCI_CLEAR = 2180, + SCI_SETTEXT = 2181, + SCI_GETTEXT = 2182, + SCI_GETTEXTLENGTH = 2183, + SCI_GETDIRECTFUNCTION = 2184, + SCI_GETDIRECTPOINTER = 2185, + SCI_SETOVERTYPE = 2186, + SCI_GETOVERTYPE = 2187, + SCI_SETCARETWIDTH = 2188, + SCI_GETCARETWIDTH = 2189, + SCI_SETTARGETSTART = 2190, + SCI_GETTARGETSTART = 2191, + SCI_SETTARGETEND = 2192, + SCI_GETTARGETEND = 2193, + SCI_REPLACETARGET = 2194, + SCI_REPLACETARGETRE = 2195, + SCI_SEARCHINTARGET = 2197, + SCI_SETSEARCHFLAGS = 2198, + SCI_GETSEARCHFLAGS = 2199, + SCI_CALLTIPSHOW = 2200, + SCI_CALLTIPCANCEL = 2201, + SCI_CALLTIPACTIVE = 2202, + SCI_CALLTIPPOSSTART = 2203, + SCI_CALLTIPSETHLT = 2204, + SCI_CALLTIPSETBACK = 2205, + SCI_CALLTIPSETFORE = 2206, + SCI_CALLTIPSETFOREHLT = 2207, + SCI_CALLTIPUSESTYLE = 2212, + SCI_VISIBLEFROMDOCLINE = 2220, + SCI_DOCLINEFROMVISIBLE = 2221, + SCI_WRAPCOUNT = 2235, + SC_FOLDLEVELBASE = 0x400, + SC_FOLDLEVELWHITEFLAG = 0x1000, + SC_FOLDLEVELHEADERFLAG = 0x2000, + SC_FOLDLEVELNUMBERMASK = 0x0FFF, + SCI_SETFOLDLEVEL = 2222, + SCI_GETFOLDLEVEL = 2223, + SCI_GETLASTCHILD = 2224, + SCI_GETFOLDPARENT = 2225, + SCI_SHOWLINES = 2226, + SCI_HIDELINES = 2227, + SCI_GETLINEVISIBLE = 2228, + SCI_SETFOLDEXPANDED = 2229, + SCI_GETFOLDEXPANDED = 2230, + SCI_TOGGLEFOLD = 2231, + SCI_ENSUREVISIBLE = 2232, + SC_FOLDFLAG_LINEBEFORE_EXPANDED = 0x0002, + SC_FOLDFLAG_LINEBEFORE_CONTRACTED = 0x0004, + SC_FOLDFLAG_LINEAFTER_EXPANDED = 0x0008, + SC_FOLDFLAG_LINEAFTER_CONTRACTED = 0x0010, + SC_FOLDFLAG_LEVELNUMBERS = 0x0040, + SCI_SETFOLDFLAGS = 2233, + SCI_ENSUREVISIBLEENFORCEPOLICY = 2234, + SCI_SETTABINDENTS = 2260, + SCI_GETTABINDENTS = 2261, + SCI_SETBACKSPACEUNINDENTS = 2262, + SCI_GETBACKSPACEUNINDENTS = 2263, + SC_TIME_FOREVER = 10000000, + SCI_SETMOUSEDWELLTIME = 2264, + SCI_GETMOUSEDWELLTIME = 2265, + SCI_WORDSTARTPOSITION = 2266, + SCI_WORDENDPOSITION = 2267, + SC_WRAP_NONE = 0, + SC_WRAP_WORD = 1, + SC_WRAP_CHAR = 2, + SCI_SETWRAPMODE = 2268, + SCI_GETWRAPMODE = 2269, + SC_WRAPVISUALFLAG_NONE = 0x0000, + SC_WRAPVISUALFLAG_END = 0x0001, + SC_WRAPVISUALFLAG_START = 0x0002, + SCI_SETWRAPVISUALFLAGS = 2460, + SCI_GETWRAPVISUALFLAGS = 2461, + SC_WRAPVISUALFLAGLOC_DEFAULT = 0x0000, + SC_WRAPVISUALFLAGLOC_END_BY_TEXT = 0x0001, + SC_WRAPVISUALFLAGLOC_START_BY_TEXT = 0x0002, + SCI_SETWRAPVISUALFLAGSLOCATION = 2462, + SCI_GETWRAPVISUALFLAGSLOCATION = 2463, + SCI_SETWRAPSTARTINDENT = 2464, + SCI_GETWRAPSTARTINDENT = 2465, + SC_WRAPINDENT_FIXED = 0, + SC_WRAPINDENT_SAME = 1, + SC_WRAPINDENT_INDENT = 2, + SCI_SETWRAPINDENTMODE = 2472, + SCI_GETWRAPINDENTMODE = 2473, + SC_CACHE_NONE = 0, + SC_CACHE_CARET = 1, + SC_CACHE_PAGE = 2, + SC_CACHE_DOCUMENT = 3, + SCI_SETLAYOUTCACHE = 2272, + SCI_GETLAYOUTCACHE = 2273, + SCI_SETSCROLLWIDTH = 2274, + SCI_GETSCROLLWIDTH = 2275, + SCI_SETSCROLLWIDTHTRACKING = 2516, + SCI_GETSCROLLWIDTHTRACKING = 2517, + SCI_TEXTWIDTH = 2276, + SCI_SETENDATLASTLINE = 2277, + SCI_GETENDATLASTLINE = 2278, + SCI_TEXTHEIGHT = 2279, + SCI_SETVSCROLLBAR = 2280, + SCI_GETVSCROLLBAR = 2281, + SCI_APPENDTEXT = 2282, + SCI_GETTWOPHASEDRAW = 2283, + SCI_SETTWOPHASEDRAW = 2284, + SCI_TARGETFROMSELECTION = 2287, + SCI_LINESJOIN = 2288, + SCI_LINESSPLIT = 2289, + SCI_SETFOLDMARGINCOLOUR = 2290, + SCI_SETFOLDMARGINHICOLOUR = 2291, + SCI_LINEDOWN = 2300, + SCI_LINEDOWNEXTEND = 2301, + SCI_LINEUP = 2302, + SCI_LINEUPEXTEND = 2303, + SCI_CHARLEFT = 2304, + SCI_CHARLEFTEXTEND = 2305, + SCI_CHARRIGHT = 2306, + SCI_CHARRIGHTEXTEND = 2307, + SCI_WORDLEFT = 2308, + SCI_WORDLEFTEXTEND = 2309, + SCI_WORDRIGHT = 2310, + SCI_WORDRIGHTEXTEND = 2311, + SCI_HOME = 2312, + SCI_HOMEEXTEND = 2313, + SCI_LINEEND = 2314, + SCI_LINEENDEXTEND = 2315, + SCI_DOCUMENTSTART = 2316, + SCI_DOCUMENTSTARTEXTEND = 2317, + SCI_DOCUMENTEND = 2318, + SCI_DOCUMENTENDEXTEND = 2319, + SCI_PAGEUP = 2320, + SCI_PAGEUPEXTEND = 2321, + SCI_PAGEDOWN = 2322, + SCI_PAGEDOWNEXTEND = 2323, + SCI_EDITTOGGLEOVERTYPE = 2324, + SCI_CANCEL = 2325, + SCI_DELETEBACK = 2326, + SCI_TAB = 2327, + SCI_BACKTAB = 2328, + SCI_NEWLINE = 2329, + SCI_FORMFEED = 2330, + SCI_VCHOME = 2331, + SCI_VCHOMEEXTEND = 2332, + SCI_ZOOMIN = 2333, + SCI_ZOOMOUT = 2334, + SCI_DELWORDLEFT = 2335, + SCI_DELWORDRIGHT = 2336, + SCI_DELWORDRIGHTEND = 2518, + SCI_LINECUT = 2337, + SCI_LINEDELETE = 2338, + SCI_LINETRANSPOSE = 2339, + SCI_LINEDUPLICATE = 2404, + SCI_LOWERCASE = 2340, + SCI_UPPERCASE = 2341, + SCI_LINESCROLLDOWN = 2342, + SCI_LINESCROLLUP = 2343, + SCI_DELETEBACKNOTLINE = 2344, + SCI_HOMEDISPLAY = 2345, + SCI_HOMEDISPLAYEXTEND = 2346, + SCI_LINEENDDISPLAY = 2347, + SCI_LINEENDDISPLAYEXTEND = 2348, + SCI_HOMEWRAP = 2349, + SCI_HOMEWRAPEXTEND = 2450, + SCI_LINEENDWRAP = 2451, + SCI_LINEENDWRAPEXTEND = 2452, + SCI_VCHOMEWRAP = 2453, + SCI_VCHOMEWRAPEXTEND = 2454, + SCI_LINECOPY = 2455, + SCI_MOVECARETINSIDEVIEW = 2401, + SCI_LINELENGTH = 2350, + SCI_BRACEHIGHLIGHT = 2351, + SCI_BRACEBADLIGHT = 2352, + SCI_BRACEMATCH = 2353, + SCI_GETVIEWEOL = 2355, + SCI_SETVIEWEOL = 2356, + SCI_GETDOCPOINTER = 2357, + SCI_SETDOCPOINTER = 2358, + SCI_SETMODEVENTMASK = 2359, + EDGE_NONE = 0, + EDGE_LINE = 1, + EDGE_BACKGROUND = 2, + SCI_GETEDGECOLUMN = 2360, + SCI_SETEDGECOLUMN = 2361, + SCI_GETEDGEMODE = 2362, + SCI_SETEDGEMODE = 2363, + SCI_GETEDGECOLOUR = 2364, + SCI_SETEDGECOLOUR = 2365, + SCI_SEARCHANCHOR = 2366, + SCI_SEARCHNEXT = 2367, + SCI_SEARCHPREV = 2368, + SCI_LINESONSCREEN = 2370, + SCI_USEPOPUP = 2371, + SCI_SELECTIONISRECTANGLE = 2372, + SCI_SETZOOM = 2373, + SCI_GETZOOM = 2374, + SCI_CREATEDOCUMENT = 2375, + SCI_ADDREFDOCUMENT = 2376, + SCI_RELEASEDOCUMENT = 2377, + SCI_GETMODEVENTMASK = 2378, + SCI_SETFOCUS = 2380, + SCI_GETFOCUS = 2381, + SC_STATUS_OK = 0, + SC_STATUS_FAILURE = 1, + SC_STATUS_BADALLOC = 2, + SCI_SETSTATUS = 2382, + SCI_GETSTATUS = 2383, + SCI_SETMOUSEDOWNCAPTURES = 2384, + SCI_GETMOUSEDOWNCAPTURES = 2385, + SC_CURSORNORMAL = 0xFFFFFFFF, + SC_CURSORWAIT = 4, + SCI_SETCURSOR = 2386, + SCI_GETCURSOR = 2387, + SCI_SETCONTROLCHARSYMBOL = 2388, + SCI_GETCONTROLCHARSYMBOL = 2389, + SCI_WORDPARTLEFT = 2390, + SCI_WORDPARTLEFTEXTEND = 2391, + SCI_WORDPARTRIGHT = 2392, + SCI_WORDPARTRIGHTEXTEND = 2393, + VISIBLE_SLOP = 0x01, + VISIBLE_STRICT = 0x04, + SCI_SETVISIBLEPOLICY = 2394, + SCI_DELLINELEFT = 2395, + SCI_DELLINERIGHT = 2396, + SCI_SETXOFFSET = 2397, + SCI_GETXOFFSET = 2398, + SCI_CHOOSECARETX = 2399, + SCI_GRABFOCUS = 2400, + CARET_SLOP = 0x01, + CARET_STRICT = 0x04, + CARET_JUMPS = 0x10, + CARET_EVEN = 0x08, + SCI_SETXCARETPOLICY = 2402, + SCI_SETYCARETPOLICY = 2403, + SCI_SETPRINTWRAPMODE = 2406, + SCI_GETPRINTWRAPMODE = 2407, + SCI_SETHOTSPOTACTIVEFORE = 2410, + SCI_GETHOTSPOTACTIVEFORE = 2494, + SCI_SETHOTSPOTACTIVEBACK = 2411, + SCI_GETHOTSPOTACTIVEBACK = 2495, + SCI_SETHOTSPOTACTIVEUNDERLINE = 2412, + SCI_GETHOTSPOTACTIVEUNDERLINE = 2496, + SCI_SETHOTSPOTSINGLELINE = 2421, + SCI_GETHOTSPOTSINGLELINE = 2497, + SCI_PARADOWN = 2413, + SCI_PARADOWNEXTEND = 2414, + SCI_PARAUP = 2415, + SCI_PARAUPEXTEND = 2416, + SCI_POSITIONBEFORE = 2417, + SCI_POSITIONAFTER = 2418, + SCI_COPYRANGE = 2419, + SCI_COPYTEXT = 2420, + SC_SEL_STREAM = 0, + SC_SEL_RECTANGLE = 1, + SC_SEL_LINES = 2, + SC_SEL_THIN = 3, + SCI_SETSELECTIONMODE = 2422, + SCI_GETSELECTIONMODE = 2423, + SCI_GETLINESELSTARTPOSITION = 2424, + SCI_GETLINESELENDPOSITION = 2425, + SCI_LINEDOWNRECTEXTEND = 2426, + SCI_LINEUPRECTEXTEND = 2427, + SCI_CHARLEFTRECTEXTEND = 2428, + SCI_CHARRIGHTRECTEXTEND = 2429, + SCI_HOMERECTEXTEND = 2430, + SCI_VCHOMERECTEXTEND = 2431, + SCI_LINEENDRECTEXTEND = 2432, + SCI_PAGEUPRECTEXTEND = 2433, + SCI_PAGEDOWNRECTEXTEND = 2434, + SCI_STUTTEREDPAGEUP = 2435, + SCI_STUTTEREDPAGEUPEXTEND = 2436, + SCI_STUTTEREDPAGEDOWN = 2437, + SCI_STUTTEREDPAGEDOWNEXTEND = 2438, + SCI_WORDLEFTEND = 2439, + SCI_WORDLEFTENDEXTEND = 2440, + SCI_WORDRIGHTEND = 2441, + SCI_WORDRIGHTENDEXTEND = 2442, + SCI_SETWHITESPACECHARS = 2443, + SCI_SETCHARSDEFAULT = 2444, + SCI_AUTOCGETCURRENT = 2445, + SCI_ALLOCATE = 2446, + SCI_TARGETASUTF8 = 2447, + SCI_SETLENGTHFORENCODE = 2448, + SCI_ENCODEDFROMUTF8 = 2449, + SCI_FINDCOLUMN = 2456, + SCI_GETCARETSTICKY = 2457, + SCI_SETCARETSTICKY = 2458, + SCI_TOGGLECARETSTICKY = 2459, + SCI_SETPASTECONVERTENDINGS = 2467, + SCI_GETPASTECONVERTENDINGS = 2468, + SCI_SELECTIONDUPLICATE = 2469, + SC_ALPHA_TRANSPARENT = 0, + SC_ALPHA_OPAQUE = 255, + SC_ALPHA_NOALPHA = 256, + SCI_SETCARETLINEBACKALPHA = 2470, + SCI_GETCARETLINEBACKALPHA = 2471, + CARETSTYLE_INVISIBLE = 0, + CARETSTYLE_LINE = 1, + CARETSTYLE_BLOCK = 2, + SCI_SETCARETSTYLE = 2512, + SCI_GETCARETSTYLE = 2513, + SCI_SETINDICATORCURRENT = 2500, + SCI_GETINDICATORCURRENT = 2501, + SCI_SETINDICATORVALUE = 2502, + SCI_GETINDICATORVALUE = 2503, + SCI_INDICATORFILLRANGE = 2504, + SCI_INDICATORCLEARRANGE = 2505, + SCI_INDICATORALLONFOR = 2506, + SCI_INDICATORVALUEAT = 2507, + SCI_INDICATORSTART = 2508, + SCI_INDICATOREND = 2509, + SCI_SETPOSITIONCACHE = 2514, + SCI_GETPOSITIONCACHE = 2515, + SCI_COPYALLOWLINE = 2519, + SCI_GETCHARACTERPOINTER = 2520, + SCI_SETKEYSUNICODE = 2521, + SCI_GETKEYSUNICODE = 2522, + SCI_INDICSETALPHA = 2523, + SCI_INDICGETALPHA = 2524, + SCI_SETEXTRAASCENT = 2525, + SCI_GETEXTRAASCENT = 2526, + SCI_SETEXTRADESCENT = 2527, + SCI_GETEXTRADESCENT = 2528, + SCI_MARKERSYMBOLDEFINED = 2529, + SCI_MARGINSETTEXT = 2530, + SCI_MARGINGETTEXT = 2531, + SCI_MARGINSETSTYLE = 2532, + SCI_MARGINGETSTYLE = 2533, + SCI_MARGINSETSTYLES = 2534, + SCI_MARGINGETSTYLES = 2535, + SCI_MARGINTEXTCLEARALL = 2536, + SCI_MARGINSETSTYLEOFFSET = 2537, + SCI_MARGINGETSTYLEOFFSET = 2538, + SCI_ANNOTATIONSETTEXT = 2540, + SCI_ANNOTATIONGETTEXT = 2541, + SCI_ANNOTATIONSETSTYLE = 2542, + SCI_ANNOTATIONGETSTYLE = 2543, + SCI_ANNOTATIONSETSTYLES = 2544, + SCI_ANNOTATIONGETSTYLES = 2545, + SCI_ANNOTATIONGETLINES = 2546, + SCI_ANNOTATIONCLEARALL = 2547, + ANNOTATION_HIDDEN = 0, + ANNOTATION_STANDARD = 1, + ANNOTATION_BOXED = 2, + SCI_ANNOTATIONSETVISIBLE = 2548, + SCI_ANNOTATIONGETVISIBLE = 2549, + SCI_ANNOTATIONSETSTYLEOFFSET = 2550, + SCI_ANNOTATIONGETSTYLEOFFSET = 2551, + UNDO_MAY_COALESCE = 1, + SCI_ADDUNDOACTION = 2560, + SCI_CHARPOSITIONFROMPOINT = 2561, + SCI_CHARPOSITIONFROMPOINTCLOSE = 2562, + SCI_SETMULTIPLESELECTION = 2563, + SCI_GETMULTIPLESELECTION = 2564, + SCI_SETADDITIONALSELECTIONTYPING = 2565, + SCI_GETADDITIONALSELECTIONTYPING = 2566, + SCI_SETADDITIONALCARETSBLINK = 2567, + SCI_GETADDITIONALCARETSBLINK = 2568, + SCI_GETSELECTIONS = 2570, + SCI_CLEARSELECTIONS = 2571, + SCI_SETSELECTION = 2572, + SCI_ADDSELECTION = 2573, + SCI_SETMAINSELECTION = 2574, + SCI_GETMAINSELECTION = 2575, + SCI_SETSELECTIONNCARET = 2576, + SCI_GETSELECTIONNCARET = 2577, + SCI_SETSELECTIONNANCHOR = 2578, + SCI_GETSELECTIONNANCHOR = 2579, + SCI_SETSELECTIONNCARETVIRTUALSPACE = 2580, + SCI_GETSELECTIONNCARETVIRTUALSPACE = 2581, + SCI_SETSELECTIONNANCHORVIRTUALSPACE = 2582, + SCI_GETSELECTIONNANCHORVIRTUALSPACE = 2583, + SCI_SETSELECTIONNSTART = 2584, + SCI_GETSELECTIONNSTART = 2585, + SCI_SETSELECTIONNEND = 2586, + SCI_GETSELECTIONNEND = 2587, + SCI_SETRECTANGULARSELECTIONCARET = 2588, + SCI_GETRECTANGULARSELECTIONCARET = 2589, + SCI_SETRECTANGULARSELECTIONANCHOR = 2590, + SCI_GETRECTANGULARSELECTIONANCHOR = 2591, + SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE = 2592, + SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE = 2593, + SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE = 2594, + SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE = 2595, + SCVS_NONE = 0, + SCVS_RECTANGULARSELECTION = 1, + SCVS_USERACCESSIBLE = 2, + SCI_SETVIRTUALSPACEOPTIONS = 2596, + SCI_GETVIRTUALSPACEOPTIONS = 2597, + SCI_SETRECTANGULARSELECTIONMODIFIER = 2598, + SCI_GETRECTANGULARSELECTIONMODIFIER = 2599, + SCI_SETADDITIONALSELFORE = 2600, + SCI_SETADDITIONALSELBACK = 2601, + SCI_SETADDITIONALSELALPHA = 2602, + SCI_GETADDITIONALSELALPHA = 2603, + SCI_SETADDITIONALCARETFORE = 2604, + SCI_GETADDITIONALCARETFORE = 2605, + SCI_ROTATESELECTION = 2606, + SCI_SWAPMAINANCHORCARET = 2607, + SCI_STARTRECORD = 3001, + SCI_STOPRECORD = 3002, + SCI_SETLEXER = 4001, + SCI_GETLEXER = 4002, + SCI_COLOURISE = 4003, + SCI_SETPROPERTY = 4004, + KEYWORDSET_MAX = 8, + SCI_SETKEYWORDS = 4005, + SCI_SETLEXERLANGUAGE = 4006, + SCI_LOADLEXERLIBRARY = 4007, + SCI_GETPROPERTY = 4008, + SCI_GETPROPERTYEXPANDED = 4009, + SCI_GETPROPERTYINT = 4010, + SCI_GETSTYLEBITSNEEDED = 4011, + SC_MOD_INSERTTEXT = 0x1, + SC_MOD_DELETETEXT = 0x2, + SC_MOD_CHANGESTYLE = 0x4, + SC_MOD_CHANGEFOLD = 0x8, + SC_PERFORMED_USER = 0x10, + SC_PERFORMED_UNDO = 0x20, + SC_PERFORMED_REDO = 0x40, + SC_MULTISTEPUNDOREDO = 0x80, + SC_LASTSTEPINUNDOREDO = 0x100, + SC_MOD_CHANGEMARKER = 0x200, + SC_MOD_BEFOREINSERT = 0x400, + SC_MOD_BEFOREDELETE = 0x800, + SC_MULTILINEUNDOREDO = 0x1000, + SC_STARTACTION = 0x2000, + SC_MOD_CHANGEINDICATOR = 0x4000, + SC_MOD_CHANGELINESTATE = 0x8000, + SC_MOD_CHANGEMARGIN = 0x10000, + SC_MOD_CHANGEANNOTATION = 0x20000, + SC_MOD_CONTAINER = 0x40000, + SC_MODEVENTMASKALL = 0x7FFFF, + SC_SEARCHRESULT_LINEBUFFERMAXLENGTH = 1024, + SCEN_CHANGE = 768, + SCEN_SETFOCUS = 512, + SCEN_KILLFOCUS = 256, + SCK_DOWN = 300, + SCK_UP = 301, + SCK_LEFT = 302, + SCK_RIGHT = 303, + SCK_HOME = 304, + SCK_END = 305, + SCK_PRIOR = 306, + SCK_NEXT = 307, + SCK_DELETE = 308, + SCK_INSERT = 309, + SCK_ESCAPE = 7, + SCK_BACK = 8, + SCK_TAB = 9, + SCK_RETURN = 13, + SCK_ADD = 310, + SCK_SUBTRACT = 311, + SCK_DIVIDE = 312, + SCK_WIN = 313, + SCK_RWIN = 314, + SCK_MENU = 315, + SCMOD_NORM = 0, + SCMOD_SHIFT = 1, + SCMOD_CTRL = 2, + SCMOD_ALT = 4, + SCMOD_SUPER = 8, + SCN_STYLENEEDED = 2000, + SCN_CHARADDED = 2001, + SCN_SAVEPOINTREACHED = 2002, + SCN_SAVEPOINTLEFT = 2003, + SCN_MODIFYATTEMPTRO = 2004, + SCN_KEY = 2005, + SCN_DOUBLECLICK = 2006, + SCN_UPDATEUI = 2007, + SCN_MODIFIED = 2008, + SCN_MACRORECORD = 2009, + SCN_MARGINCLICK = 2010, + SCN_NEEDSHOWN = 2011, + SCN_PAINTED = 2013, + SCN_USERLISTSELECTION = 2014, + SCN_URIDROPPED = 2015, + SCN_DWELLSTART = 2016, + SCN_DWELLEND = 2017, + SCN_ZOOM = 2018, + SCN_HOTSPOTCLICK = 2019, + SCN_HOTSPOTDOUBLECLICK = 2020, + SCN_CALLTIPCLICK = 2021, + SCN_AUTOCSELECTION = 2022, + SCN_INDICATORCLICK = 2023, + SCN_INDICATORRELEASE = 2024, + SCN_AUTOCCANCELLED = 2025, + SCN_AUTOCCHARDELETED = 2026, + SCN_SCROLLED = 2080 + } + + [StructLayout(LayoutKind.Sequential)] + public struct Sci_CharacterRange + { + public Sci_CharacterRange(int cpmin, int cpmax) { cpMin = cpmin; cpMax = cpmax; } + public int cpMin; + public int cpMax; + } + + public class Sci_TextRange : IDisposable + { + _Sci_TextRange _sciTextRange; + IntPtr _ptrSciTextRange; + bool _disposed = false; + + public Sci_TextRange(Sci_CharacterRange chrRange, int stringCapacity) + { + _sciTextRange.chrg = chrRange; + _sciTextRange.lpstrText = Marshal.AllocHGlobal(stringCapacity); + } + public Sci_TextRange(int cpmin, int cpmax, int stringCapacity) + { + _sciTextRange.chrg.cpMin = cpmin; + _sciTextRange.chrg.cpMax = cpmax; + _sciTextRange.lpstrText = Marshal.AllocHGlobal(stringCapacity); + } + + [StructLayout(LayoutKind.Sequential)] + struct _Sci_TextRange + { + public Sci_CharacterRange chrg; + public IntPtr lpstrText; + } + + public IntPtr NativePointer { get { _initNativeStruct(); return _ptrSciTextRange; } } + public string lpstrText { get { _readNativeStruct(); return Marshal.PtrToStringAnsi(_sciTextRange.lpstrText); } } + public Sci_CharacterRange chrg { get { _readNativeStruct(); return _sciTextRange.chrg; } set { _sciTextRange.chrg = value; _initNativeStruct(); } } + void _initNativeStruct() + { + if (_ptrSciTextRange == IntPtr.Zero) + _ptrSciTextRange = Marshal.AllocHGlobal(Marshal.SizeOf(_sciTextRange)); + Marshal.StructureToPtr(_sciTextRange, _ptrSciTextRange, false); + } + void _readNativeStruct() + { + if (_ptrSciTextRange != IntPtr.Zero) + _sciTextRange = (_Sci_TextRange)Marshal.PtrToStructure(_ptrSciTextRange, typeof(_Sci_TextRange)); + } + + public void Dispose() + { + if (!_disposed) + { + if (_sciTextRange.lpstrText != IntPtr.Zero) Marshal.FreeHGlobal(_sciTextRange.lpstrText); + if (_ptrSciTextRange != IntPtr.Zero) Marshal.FreeHGlobal(_ptrSciTextRange); + _disposed = true; + } + } + ~Sci_TextRange() + { + Dispose(); + } + } + + public class Sci_TextToFind : IDisposable + { + _Sci_TextToFind _sciTextToFind; + IntPtr _ptrSciTextToFind; + bool _disposed = false; + + public Sci_TextToFind(Sci_CharacterRange chrRange, string searchText) + { + _sciTextToFind.chrg = chrRange; + _sciTextToFind.lpstrText = Marshal.StringToHGlobalAnsi(searchText); + } + public Sci_TextToFind(int cpmin, int cpmax, string searchText) + { + _sciTextToFind.chrg.cpMin = cpmin; + _sciTextToFind.chrg.cpMax = cpmax; + _sciTextToFind.lpstrText = Marshal.StringToHGlobalAnsi(searchText); + } + + [StructLayout(LayoutKind.Sequential)] + struct _Sci_TextToFind + { + public Sci_CharacterRange chrg; + public IntPtr lpstrText; + public Sci_CharacterRange chrgText; + } + + public IntPtr NativePointer { get { _initNativeStruct(); return _ptrSciTextToFind; } } + public string lpstrText { set { _freeNativeString(); _sciTextToFind.lpstrText = Marshal.StringToHGlobalAnsi(value); } } + public Sci_CharacterRange chrg { get { _readNativeStruct(); return _sciTextToFind.chrg; } set { _sciTextToFind.chrg = value; _initNativeStruct(); } } + public Sci_CharacterRange chrgText { get { _readNativeStruct(); return _sciTextToFind.chrgText; } } + void _initNativeStruct() + { + if (_ptrSciTextToFind == IntPtr.Zero) + _ptrSciTextToFind = Marshal.AllocHGlobal(Marshal.SizeOf(_sciTextToFind)); + Marshal.StructureToPtr(_sciTextToFind, _ptrSciTextToFind, false); + } + void _readNativeStruct() + { + if (_ptrSciTextToFind != IntPtr.Zero) + _sciTextToFind = (_Sci_TextToFind)Marshal.PtrToStructure(_ptrSciTextToFind, typeof(_Sci_TextToFind)); + } + void _freeNativeString() + { + if (_sciTextToFind.lpstrText != IntPtr.Zero) Marshal.FreeHGlobal(_sciTextToFind.lpstrText); + } + + public void Dispose() + { + if (!_disposed) + { + _freeNativeString(); + if (_ptrSciTextToFind != IntPtr.Zero) Marshal.FreeHGlobal(_ptrSciTextToFind); + _disposed = true; + } + } + ~Sci_TextToFind() + { + Dispose(); + } + } + #endregion + + #region " Platform " + public class Win32 + { + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int wParam, NppMenuCmd lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int wParam, IntPtr lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int wParam, int lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int wParam, out int lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, IntPtr wParam, int lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int wParam, ref LangType lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)] StringBuilder lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam); + + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, SciMsg Msg, int wParam, IntPtr lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, SciMsg Msg, int wParam, string lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, SciMsg Msg, int wParam, [MarshalAs(UnmanagedType.LPStr)] StringBuilder lParam); + [DllImport("user32")] + public static extern IntPtr SendMessage(IntPtr hWnd, SciMsg Msg, int wParam, int lParam); + + public const int MAX_PATH = 260; + [DllImport("kernel32")] + public static extern int GetPrivateProfileInt(string lpAppName, string lpKeyName, int nDefault, string lpFileName); + [DllImport("kernel32")] + public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName); + + public const int MF_BYCOMMAND = 0; + public const int MF_CHECKED = 8; + public const int MF_UNCHECKED = 0; + [DllImport("user32")] + public static extern IntPtr GetMenu(IntPtr hWnd); + [DllImport("user32")] + public static extern int CheckMenuItem(IntPtr hmenu, int uIDCheckItem, int uCheck); + + public const int WM_CREATE = 1; + } + + public class ClikeStringArray : IDisposable + { + IntPtr _nativeArray; + List _nativeItems; + bool _disposed = false; + + public ClikeStringArray(int num, int stringCapacity) + { + _nativeArray = Marshal.AllocHGlobal((num + 1) * IntPtr.Size); + _nativeItems = new List(); + for (int i = 0; i < num; i++) + { + IntPtr item = Marshal.AllocHGlobal(stringCapacity); + Marshal.WriteIntPtr((IntPtr)((int)_nativeArray + (i * IntPtr.Size)), item); + _nativeItems.Add(item); + } + Marshal.WriteIntPtr((IntPtr)((int)_nativeArray + (num * IntPtr.Size)), IntPtr.Zero); + } + + public IntPtr NativePointer { get { return _nativeArray; } } + public List ManagedStringsAnsi { get { return _getManagedItems(false); } } + public List ManagedStringsUnicode { get { return _getManagedItems(true); } } + List _getManagedItems(bool unicode) + { + List _managedItems = new List(); + for (int i = 0; i < _nativeItems.Count; i++) + { + if (unicode) _managedItems.Add(Marshal.PtrToStringUni(_nativeItems[i])); + else _managedItems.Add(Marshal.PtrToStringAnsi(_nativeItems[i])); + } + return _managedItems; + } + + public void Dispose() + { + if (!_disposed) + { + for (int i = 0; i < _nativeItems.Count; i++) + if (_nativeItems[i] != IntPtr.Zero) Marshal.FreeHGlobal(_nativeItems[i]); + if (_nativeArray != IntPtr.Zero) Marshal.FreeHGlobal(_nativeArray); + _disposed = true; + } + } + ~ClikeStringArray() + { + Dispose(); + } + } + #endregion +} diff --git a/Remove dup lines/Remove dup lines/Properties/AssemblyInfo.cs b/Remove dup lines/Remove dup lines/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000000000000000000000000000000000..4fd6224dd61b763326ac5604d58428492308a962 GIT binary patch literal 2982 zcmb_e+iuf95S?cv{$bUZmO?{Qs37GD5)oCRfM}?M5D(6+ahsbQyCt8*PXg!6WV3eS zL0<(~<=%+!DJ~~X#29PD2=SfJx(~|) zn4)D)4$p0jW*Fh~SpR20M;_X+oMR-$y8~*nkZSy)=G4V#DgzzKz~W%>-ou@-xN0Kz zus4naI{IhC3Dz-gs(xccBoeYy!FU}WiRl_67Kt-_Ubk>ymYHU1&D9gE8{xl;_>s$nM5u(gs*}+Oi>cNN8Jm_H)PZh0?udpcccLs~sD`PEqPL;z0+0$wx(mO@h zKn_#Pu}&wtLYk56tcM+8p|L;**`{X#r-erhQkJd$u zylW1=lUNILp@;YI&wZJ~b5|bY+STVrty*Ty4qxZv|Ly`am;yU@fqh~T*GHZFK(#bc z{g+tD%4fZu$gxzVwsVdxWxflZ*z<|pYM#3?RR>2yAm%>yRy>5Bp&qe|eXrY|UE!S? zOC_-$W>@xsW{7c)5ZNuBs4%`iQ!q7MjM1OXm5OH*!Qjqvk0O;NU^?1MeVb=te8(T3;=#=IVS z2FlrE7g2wMPBJDLVR>ZI+aB`$nBC>oWN*np`>Lh-;~c_vVqvPW2Usm z4iVa%DZkIxGfCBJt0i}Wv*u%}?A;(kcB}W?lkd8ZWY5kba$&3zYq=IT!BmX(?D-C| zWOqe!iVi!KBfQlx7vbqS?p?ec;aA1=QlGf8hE>n-{sLI}olwnnX5i=wa|w3VbZ^tC zV<%+-+?!5c*6UdP@cV?dSLCj24>-ntEuM;J%i0SlS@(8b0KpCHXjQ~szM7p`wmM(o z-nWxC%K8wDI;eMsP9S&55>Z&`^gQ(4%-nr^e|Pdl^J6a?Yctggp4WELQ(ySiO+lZbLn +// This code was generated by a tool. +// Runtime Version:4.0.30319.36010 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Remove_dup_lines.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Remove_dup_lines.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Remove dup lines/Remove dup lines/Properties/Resources.resx b/Remove dup lines/Remove dup lines/Properties/Resources.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Remove dup lines/Remove dup lines/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/Properties/star.png b/Remove dup lines/Remove dup lines/Properties/star.png new file mode 100644 index 0000000000000000000000000000000000000000..164d16b0ad506b2cc1b511af11d52a56310c603e GIT binary patch literal 811 zcmV+`1JwM9P)QSNfkQsrihkPj%lEk?}jWqw%hHf;4Y7t{0ke3EbQ?dHW%A}gKSbJNh{ z5eU=Bl4J*@iYicVEx4Wz9v_*yU^B=>my3T4K3K^_mpt0XN&FAgTLlbN>JmtOu-ATDyNx!boYRXBe|?X4seu=bSo$&#zQQIAJ*kxLqyp}1A- zJ##)sKKpDOzk>ll+r*!*v)BqvfTlIDQdgtQId|_)Td6*Pnp^z^X`CJv&TG8@fZ6UY zXcpiEhsBtia%Sd;8^HkPySoYucJb~;7d|`>z}R_tZZc4A=y4)Da-_`b0HRL@3dD0m z16X<)z(EDrCj){IaAw4*nf$pRRaDu?<&Dh+1}=|^{c=_e00wnHGV}!srMQQBYi;Br zw+aB5>A#D)p==tbSB0MU>r+I6VeuZ?G&mOKdOAqGb-AJzn!v~@6*B{VMDAb5SgQ(c zJ(}x%TT&nx3wA8(VIqXU>_dOC@&3(YX0jwE7Wr>2cC1PtC zUVk;hGPY%!YCk;6x#*&|+@Iz$*ILdt|20i13M`1ZsNRB*6&4lLQ;!)$ zZ^7sxCbCBFQ zsJshM`xws$s9YK5HRl;IhZ4J zu=Om#+%*GhBm+m^XE@`_utg?e4Znc1{}WvCc?8eq5gJ)U=Y>^7N7oQdtRR*sp!ebm zPG4QcnQPy0F13#H*EcXSwuaH0MI^>In6F6QD&q2;Ov-#hc&HX~@$6u7b|55&#Bv+%=+;CvO61jQY zCOwg^wr-EI@!E-Ysfbis<6d6)T8K`xR%@CEc9W5x2oTYb=!=UTTB16s&Bi_`xCW|- zYWE$fVegkcUcHla^2Rg<~PK>k?okPyQ?F+b@Yhn;+YnuKu4 z(`1oC@}$9&YI(RNDR@v0e!tx99)7`2Wg%;eSNVWo$Y~&|u?2jJa_cx63AZ0o4EP6R C>V&EQ literal 0 HcmV?d00001 diff --git a/Remove dup lines/Remove dup lines/Remove dup lines.csproj b/Remove dup lines/Remove dup lines/Remove dup lines.csproj new file mode 100644 index 0000000..6e541ea --- /dev/null +++ b/Remove dup lines/Remove dup lines/Remove dup lines.csproj @@ -0,0 +1,130 @@ + + + + Debug + x86 + 2.0 + {5E85A5DB-FB70-405B-85FB-24A6A4AA3DFB} + Library + Properties + Remove_dup_lines + Remove_Duplicate_Lines + bin\Debug\ + v4.0 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + Form + + + frmMyDlg.cs + + + + + + + True + True + Resources.resx + + + + + + frmMyDlg.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + + + + + + + \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/Remove dup lines.csproj.user b/Remove dup lines/Remove dup lines/Remove dup lines.csproj.user new file mode 100644 index 0000000..e036b6c --- /dev/null +++ b/Remove dup lines/Remove dup lines/Remove dup lines.csproj.user @@ -0,0 +1,13 @@ + + + + + + + + + + en-US + false + + \ No newline at end of file diff --git a/Remove dup lines/Remove dup lines/Resources/Thumbs.db b/Remove dup lines/Remove dup lines/Resources/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..9889c0b01d1c7c2f9916cb9de487e68f933baa64 GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHWgNG&%$P+kdp=F@;O@xn_xZoQon5*4zR}?`i!V0+ z_Fg+PS0HgdYv#kh%);?sZe<=m8^m>R<+bOs6LrMrDXw_Mo^AEHN+Y(sb;pD2d-qQJ z^_zor9m|fwVu5LS?-lm0)rsI-7W(mRz?3cQ0qqXQS5=gi`>eaXaDk95r}y2U8Q~YW zI!%249PD>?a$J3#b3yvFV@(`qJD)vgdiSHyV~){j>&aK{Z1RwFj@%>6#xO&5#n#D- zzi?c8+mEeQVec<%aEv3{I0Xnlee`$g(#7wT%4|H3S~6NAj)Qu)xaQw!CzoA7$jYjQslkg$ABwx-uKQt%Q=0| zb3W%eKRUp_69J&s$Y%ksQqF!i@u0buEq4s;UwJtLG?6kz#4{rsdf3oi8L;}^NJS<| z-NAgTzwvUMj;6cjdUo=W@bw(Pc-iWuBBrWEIwbHM_Kd{ALSQQfl3NYnTGRr8 zkuWA9HEdj#g-j-ty=i!dR80gBt$m_0XL_^wF#Ub7(y9W0QQ332p86bqibNei-SEw4&E{<-*J($o{+8YV XzMOVnEO^#w00000NkvXXu0mjfLj$wg literal 0 HcmV?d00001 diff --git a/Remove dup lines/Remove dup lines/UnmanagedExports.cs b/Remove dup lines/Remove dup lines/UnmanagedExports.cs new file mode 100644 index 0000000..c9af6b6 --- /dev/null +++ b/Remove dup lines/Remove dup lines/UnmanagedExports.cs @@ -0,0 +1,61 @@ +using System; +using System.Runtime.InteropServices; +using NppPluginNET; +using NppPlugin.DllExport; + +namespace Remove_dup_lines +{ + class UnmanagedExports + { + [DllExport(CallingConvention=CallingConvention.Cdecl)] + static bool isUnicode() + { + return true; + } + + [DllExport(CallingConvention = CallingConvention.Cdecl)] + static void setInfo(NppData notepadPlusData) + { + PluginBase.nppData = notepadPlusData; + Main.CommandMenuInit(); + } + + [DllExport(CallingConvention = CallingConvention.Cdecl)] + static IntPtr getFuncsArray(ref int nbF) + { + nbF = PluginBase._funcItems.Items.Count; + return PluginBase._funcItems.NativePointer; + } + + [DllExport(CallingConvention = CallingConvention.Cdecl)] + static uint messageProc(uint Message, IntPtr wParam, IntPtr lParam) + { + return 1; + } + + static IntPtr _ptrPluginName = IntPtr.Zero; + [DllExport(CallingConvention = CallingConvention.Cdecl)] + static IntPtr getName() + { + if (_ptrPluginName == IntPtr.Zero) + _ptrPluginName = Marshal.StringToHGlobalUni(Main.PluginName); + return _ptrPluginName; + } + + [DllExport(CallingConvention = CallingConvention.Cdecl)] + static void beNotified(IntPtr notifyCode) + { + SCNotification nc = (SCNotification)Marshal.PtrToStructure(notifyCode, typeof(SCNotification)); + if (nc.nmhdr.code == (uint)NppMsg.NPPN_TBMODIFICATION) + { + PluginBase._funcItems.RefreshItems(); + Main.SetToolBarIcon(); + } + else if (nc.nmhdr.code == (uint)NppMsg.NPPN_SHUTDOWN) + { + Main.PluginCleanUp(); + Marshal.FreeHGlobal(_ptrPluginName); + } + } + } +}