рд╣рдо рдЕрдкрдиреЗ рдХреНрд╖рд┐рддрд┐рдЬ рдХреЛ рд╡реНрдпрд╛рдкрдХ рдмрдирд╛рддреЗ рд╣реИрдВред рд╢рд╛рд░реНрдкрд╡реЗрджрдХ AddIns

рдореИрдВ рдЕрдм рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рд╢рд╛рд░реНрдкрдбреЗрд╡рд▓рдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВред рдХрдо рд╕реЗ рдХрдо рдЯреЙрдк-рдПрдВрдб рд▓реИрдкрдЯреЙрдк рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдХреА рддрд░рд╣, рдпрд╣ рд╕рд░реНрд╡рд╢рдХреНрддрд┐рдорд╛рди рдирд╣реАрдВ рд╣реИред рд╕рдордп-рд╕рдордп рдкрд░ рдЖрдкрдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдЕрдиреНрдп рдЯреВрд▓ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХрднреА-рдХрднреА рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА - рдЙрдкрдХрд░рдг рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рдЪрд╛рд╣рд┐рдПред

SharpDevelop рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдУрдкрди рд╕реЛрд░реНрд╕ред рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХрд╛ рдХреЛрдб рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред SharpDevelop рдХреЗ рдкрд╛рд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдпрд╛ AddIns рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦрдХ рдЙрдиреНрд╣реЗрдВ рдХрд╣рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЖрдЬ рд╣рдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдореЛрд▓реНрд╕ рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдкреНрд▓рдЧ-рдЗрди рд▓рд┐рдЦреЗрдВрдЧреЗред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдХреБрдЫ рдкреНрд▓рдЧрдЗрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЖрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдПрдХ-рджреЛ рдмрд╛рд░ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдиреАрд▓реЗ рд░рдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рд╢рд╛рд░реНрдкрдбреЗрд╡рд▓рдк рдореЗрдВ рджреЗрдЦрд╛ рдерд╛ред рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ, рд╕рд╛рдЗрдбрдмрд╛рд░, рд╕рдВрд╡рд╛рдж, рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЯреВрд▓рдмрд╛рд░ рддрддреНрд╡, рдореЗрдиреВ рдмрд╛рд░ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡ рдФрд░ рд╕рдВрджрд░реНрдн рдореЗрдиреВред рдпрджрд┐ рдЖрдк рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рд╣реИред

рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕


рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ред рд╢рд╛рд░реНрдкрдбреЗрд╡рд▓рдк рдХреЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг 2000 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП - рдкрд╣рд▓рд╛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рджред рдореБрдЦреНрдп рд╡рд╛рд╕реНрддреБрдХрд╛рд░, рдорд╛рдЗрдХ рдХреНрд░реВрдЧрд░, рдиреЗ рдкрд╣рд▓реЗ рдХрднреА рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рдеред рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ C # рджреЗрдЦрд╛, рддреЛ рдпрд╣ рднрд╛рд╖рд╛ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рд╡рд╛ рд╕реЗ рдмреЗрд╣рддрд░ рд▓рдЧреАред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдИрдбреАрдИ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕рдордп .NET рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ред

рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг .NET RichTextBox рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рд╡рд┐рдВрдбреЛ рдереАред рд╡рд╣ рдХреЛрдб рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ csc.exe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЬрд╛рдирддреА рдереАред рдЕрдЧрд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдФрд░ рдЙрдкрдХрд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж, SharpDevelop рдЗрд╕ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рд░ рдерд╛ред

2001 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдкрд╣рд▓рд╛ AddIn рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рдерд╛ - рдЖрдк рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдореЗрдиреВ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрдЗрдЯрдо рдореЗрдВ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ 2002 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, AddIn рдкреНрд░рдгрд╛рд▓реА рдиреЗ рдЕрдкрдирд╛ рдЕрдВрддрд┐рдо рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЖрдЬ рддрдХ рдмрдЪ рдЧрдпрд╛ред

рдПрдбрд┐рди рдХрд╛ рдкреЗрдбрд╝


рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЦреБрдж рдХреЛ рдПрдХ рдЧрдВрднреАрд░ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ - рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рддрд╛рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рд╕реЗ рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗред рддреЛ AddIn рдЯреНрд░реА рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред AddIn рдЯреНрд░реА рдЖрдкрдХреЛ XML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд▓рдЧрднрдЧ рдХрд╣реАрдВ рднреА рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╕рднреА рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЙрд╕ рдкрде рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрд╕реЗ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкрде рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рдПрдХ рдкрде рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдбрд╝ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рддрдХред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/ SharpDevelop / Workbench / MainMenu"ред рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЙрди рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдПрдХ * .addin (XML) рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рддрд░реНрдХ рд╡рд╛рд▓реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ .NET рдЕрд╕реЗрдВрдмрд▓реА рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд░рди рдХреЗ рд╕рдордп рдореЗрдВ, рдПрдбрд┐рди рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рд╣реА рдкреЗрдбрд╝ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдЕрднреА рд▓реЛрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрде "/ SharpDevelop / Workbench / MainMenu" рдореЗрдВ рд╕рднреА рдореБрдЦреНрдп рдореЗрдиреВ рдЖрдЗрдЯрдо рд╣реИрдВред рдЗрд╕ рдореЗрдиреВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рддреЗ рд╕рдордп рдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рдХреЛ рдХреЗрд╡рд▓ рддрдм рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрд╕рдХрд╛ рдХреЛрдИ рдЖрдЗрдЯрдо рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреИрдирд▓реЛрдВ рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реИ - рдЬрдмрдХрд┐ рдкреИрдирд▓ рдмрдВрдж рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╣реИ, рдЗрд╕рдХрд╛ рдХреЛрдб рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ SharpDevelop рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

< AddIn >
<!-- some stuff -->

< Path name ="/SharpDevelop/Workbench/MainMenu" >
<!-- node with id="View" -->
<!-- node with id="Edit" -->
</ Path >
</ AddIn >

рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣рдорд╛рд░реЗ рдиреЛрдб рдЗрд╕ рдореЗрдиреВ рдореЗрдВ рдЖрдЗрдЯрдо рджреЗрдЦреЗрдВ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдмрди рдЬрд╛рдПрдВрдЧреЗред рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╕реНрдерд┐рдд рдиреЛрдбреНрд╕ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдбреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рд╕реНрд╡рдпрдВ рдкрде рдХрд╛ рдПрдХ рддрддреНрд╡ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/ SharpDevelop / Workbench / MainMenu / Edit"ред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЗрд╕ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдирдП рдиреЛрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

< Path name ="/SharpDevelop/Workbench/MainMenu/Edit" >
<!-- node with id="Copy" -->
<!-- node with id="Paste" -->
</ Path >

рд╕рдВрдкрд╛рджрди рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдПрдХ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдЖрдЗрдЯрдоред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреЗрдбрд╝ рдореЗрдВ рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рди рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ "рд╡рд┐рд╕реНрддрд╛рд░" рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Doozer


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдПрдВред AddIn рд░реВрдЯ рддрддреНрд╡ рдХреЗ рд╕рд╛рде XML рдлрд╝рд╛рдЗрд▓ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдпрд╣ "рд╡рд┐рд╕реНрддрд╛рд░" рдХрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рд╣реИред рдХреЛрдб рд╣реА рдПрдХ рдЕрд▓рдЧ .NET рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рддреЛ рдЕрдм рд╣рдореЗрдВ рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SharpDevelop рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдЕрдореВрд░реНрдд рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдЖрдП - рдбреВрдЬрд╝рд░ (рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдбрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛)ред рдбреВрдорд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ - рдПрдХреНрд╕рдПрдордПрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MenuItemDoozer рдПрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ PadDoozer рдкреИрдирд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХреНрд▓рд╛рд╕ рд╡реНрдпреВ рдпрд╛ рдЯреВрд▓рдмреЙрдХреНрд╕)ред рдЕрдм рд╣рдо рдбреЛрдЬрд░ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╣рдорд╛рд░реЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

< AddIn >
<!-- some stuff -->

< Path name ="/SharpDevelop/Workbench/MainMenu" >
< MenuItem id ="Edit"
label ="Edit"
class ="Namespace.EditCommandImplementation" />
</ Path >
</ AddIn >

рд▓реЗрдмрд▓ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрд▓рд╛рд╕ рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд╣реИ рдЬреЛ IMenuCommand рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (ICommand рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдПрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд░рди рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдбреЛрдЬрд░реНрд╕ рд╣реИрдВред рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ (рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рднреА рд▓рд┐рдВрдХ)ред рд╡реЗ рд╕рднреА IDoozer рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХрд╛ рдирд╛рдо рдбреВрдЬрд╝рд░ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред XML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдбреЛрдЬрд╝рд░ рдкреНрд░рддреНрдпрдп рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

рд╕рднреА рдбреЛрдЬрд░реНрд╕ рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ClassDoozer рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЯреНрд░реА рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ CustomPropertyDoozer рдПрдХ рдЧреБрдг рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИрдВред

рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ


рдЕрдм рдЬрдм рдЖрдкрдХреЛ AddIns рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХрд╛ рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдореЛрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧ-рдЗрди рдмрдирд╛рдПрдВрдЧреЗред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ SharpDevelop рд╡рд┐рдВрдбреЛ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рд╕реЛрдЪреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдкрдирд╛ рдкреНрд▓рдЧрдЗрди рдХрд╣рд╛рдБ рд░рдЦрд╛ рдЬрд╛рдП, рдЗрд╕реЗ рдХреИрд╕реЗ рд▓реЙрдиреНрдЪ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рдореВрд▓ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рддреЛ рдореЛрд▓реНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреИрдирд▓ рдореЗрдВ, рд░реЗрдлрд░реЗрдВрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрди рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рд╣реИ "рдореЛрд▓реНрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдЬреЛрдбрд╝реЗрдВ"ред

рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЕрдм рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХреЛрдВ, рдордВрдЪреЛрдВ, рдкреБрд╕реНрддрд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦреБрдж рдХреЛ рджрдлрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред SharpDevelop рдореЗрдВ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрдкрдХрд░рдг рд╣реИ - AddIn рд╕реНрдХрд╛рдЙрдЯ (рдореБрдЦреНрдп рдореЗрдиреВ - рдЯреВрд▓ - AddIn рд╕реНрдХрд╛рдЙрдЯ), рдЬреЛ AddIn рдЯреНрд░реА рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдЯреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП:



"" SharpDevelop / Pads / ProjectBrowser / ContextMenu / ReferenceNode "рдареАрдХ рд╡реИрд╕реЗ рд╣реА рд╣реИ рдЬреИрд╕реЗ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЙрд╕ рдкрд░, рдореМрдЬреВрджрд╛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд╣рд▓реЗ рд╣реА рдЬреЛрдбрд╝ рджрд┐рдП рдЧрдП рд╣реИрдВ: рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ, рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдЧреБрдгред

FileName рд▓рд┐рдВрдХ .addin рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЪрдпрдирд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ ICSharpCode.SharpDevelop.addin рд╣реИ - рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдореБрдЦреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реИ, 2171 рд▓рд╛рдЗрдиреЗрдВред рдпрджрд┐ рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд XML рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЦреБрд▓реЗрдЧреАред

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдВрдкрд╛рджрди рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рдо рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреИрд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред

< Path name ="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ReferenceNode" >
< MenuItem id ="RefreshReference"
icon ="Icons.16x16.BrowserRefresh"
label ="${res:AddIns.HtmlHelp2.Refresh}"
class ="ICSharpCode.SharpDevelop.Project.Commands.RefreshReference" />
< MenuItem id ="Remove"
label ="${res:Global.RemoveButtonText}"
icon ="Icons.16x16.DeleteIcon"
class ="ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode" />
< MenuItem id ="RemoveSeparator" type ="Separator" />
< MenuItem id ="Properties"
icon ="Icons.16x16.PropertiesIcon"
label ="${res:XML.MainMenu.FormatMenu.ShowProperties}"
class ="ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode" />
</ Path >

рдЕрдВрдд рдореЗрдВ, рдЖрдк рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк - рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ SharpDevelop рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ рд╕рдм рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг) рдпрд╛ рдпрд╣рд╛рдВ (рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░)ред рдореИрдВ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд▓рд┐рдпрд╛ред

рд╕реВрддреНрд░реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реА debugbuild.bat рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред "рд╣рдореЗрдВ рд╢рд╛рд░реНрдкрдбреЗрд╡рд▓рдк рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?" рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдВрд╕реЛрд▓ рднреА рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд▓реЙрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреЛрдИ рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдм рдФрд░ рдХреМрди рд╕реА рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдХреА рдЧрдИ рд╣реИрдВред

рдЕрдм рдЖрдк рдореБрдЦреНрдп SharpDevelop рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ "SharpDevelop addin" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ "C # / SharpDevelop" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдЪрд▓реЛ рдЗрд╕реЗ MolesAddIn рдХрд╣рддреЗ рд╣реИрдВред рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рджреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ: AddInWritingHelp.txt рдФрд░ MolesAddIn.addinред рдкрд╣рд▓реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдиреЗ рдФрд░ рдХреБрдЫ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдпреБрдХреНрддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрдЧрд╛ред

< AddIn name ="MolesAddIn"
author ="OpenMinded"
copyright ="GNU Lesser General Public License Version 2.1"
url =""
description ="Adds support for Microsoft Moles to the projects browser" >

< Runtime >
< Import assembly ="MolesAddIn.dll" />
</ Runtime >

< Manifest >
< Identity name ="OpenMinded.MolesAddIn" version ="@MolesAddIn.dll" />
< Dependency addin ="SharpDevelop" version ="4.0" />
</ Manifest >

< Path name ="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ReferenceNode" >
< MenuItem id ="AddMolesAssembly"
label ="Add Moles Assembly"
class ="OpenMinded.MolesAddIn.AddMolesCommand" />
</ Path >

</ AddIn >

рд░рдирдЯрд╛рдЗрдо рдЯреИрдЧ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдЕрд╕реЗрдВрдмрд▓реАрдЬрд╝ рдХреЛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИред рдкрд╣рдЪрд╛рди рдЙрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕реЗ AddIn Manager рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдореБрдЦреНрдп рдореЗрдиреВ рдЙрдкрдХрд░рдг рд╣реИ - AddIn Manager)ред рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдПрдХ рдкрд╣рдЪрд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдпрд╛ рддреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1.0.0, рдпрд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдирд┐рд░реНрднрд░рддрд╛ рд╡реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ AddIn рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдХрдИ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред SharpDevelop рд╡рд╣ рдореБрдЦреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рд╣рд┐рдд рд╣рд░ рд╡рд╣ рдЪреАрдЬрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рд╕рднреА AddIns рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред

рдкрде - рд╡рд╣ рдкрде рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдордиреЗ рдореЗрдиреВ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рд╛ред рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдкрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ ICSharpCode.SharpDevelop.addin рдореЗрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдореЗрдиреВ рдЖрдЗрдЯрдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИред MenuItem рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ IMenuCommand рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдпрд╛ AbstractMenuCommand рд╕рд╛рд░ рдХреНрд▓рд╛рд╕ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рджреЛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ: ICSharpCode.Core.dll рдФрд░ ICSharpCode.SharpDevelop.dllред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡реЗ / рдкрде / / рд╕реЗ / рд╢рд╛рд░реНрдкрд╡рд╛рд░реНрдб-рд╕реНрд░реЛрдд / рдмрд┐рди рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЙрдкреА рдЯреВ рд▓реЛрдХрд▓ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдлрд╛рд▓реНрд╕ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢рд╛рд░реНрдкрдбреЗрд╡рд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред рдЕрдм рдЖрдк AddMolesCommand рд╡рд░реНрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;

namespace OpenMinded.MolesAddIn
{
public class AddMolesCommand : AbstractMenuCommand
{
public override void Run()
{
// References
ReferenceNode node = Owner as ReferenceNode;
if (node != null )
{
// ,
ReferenceProjectItem item = node.ReferenceProjectItem;
if (item != null ) {
string fileName = item.FileName;

MessageBox.Show(fileName);
}
}
}
}
}

рдЕрднреА рддрдХ рдЯреАрдо рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИред рд╣рдореЗрдВ рдмрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдорд┐рд▓рд╛, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдордиреЗ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реАрдЦрд╛ред

рд╡рд┐рд╕реНрддрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореЛрд▓реНрд╕рдПрдбрдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкрде рдХреЛ рдмрджрд▓ рджреЗрдВ рдЬрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рддрд╛рдХрд┐ рд╢рд╛рд░реНрдкрдбреЗрд╡рд▓ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░реЗред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ AddIns рдлрд╝реЛрд▓реНрдбрд░ рд╣реИред рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВред

рдЗрд╕рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рдкрд╛рде рдХреЛ "/ path / to / sharpdevelop-source / AddIns / MolesAddIn" рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЬрдм рдЖрдк F5 рджрдмрд╛рддреЗ рд╣реИрдВ рддреЛ SharpDevelop рдХрд╛ рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдореЗрдВ рд▓реЙрдиреНрдЪ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рдЕрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред Ctrl + F5 - рдФрд░ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рджреВрд╕рд░рд╛ SharpDevelop рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдореЗрдВ MolesAddIn рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рд▓рд┐рдВрдХ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред



рдореЗрдиреВ рдЧреБрдг "рдПрдб рдореЛрд▓реНрд╕ рдЕрд╕реЗрдВрдмрд▓реА" рдХреЛ "рдЧреБрдг" рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, MolesAddIn.dll рдЕрд╕реЗрдВрдмрд▓реА рдЕрднреА рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЙрдЧ рджреЗрдЦрдХрд░ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪрдпрдирд┐рдд рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдореИрд╕реЗрдЬ рдмреЙрдХреНрд╕ рдЦреБрд▓реЗрдЧрд╛, рдФрд░ рд▓реЙрдЧ рдореЗрдВ "Add Add MolesAddIn.dll" рд▓рд╛рдЗрди рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред

AddIn Manager (рдЙрдкрдХрд░рдг - AddIn Manager) рдореЗрдВ рдЖрдк рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдирд╛рдо, рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╡рд┐рд╡рд░рдгред рдЗрд╕реЗ AddIn Scout рдореЗрдВ рднреА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдлрд┐рд░ рдХреНрдпрд╛?


рд╢рд╛рд░реНрдкрдбреЗрд╡ рд▓реБрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдХрд╛рд╕ рд╣реИред рдПрдХ рдмрд╛рд░ AddIn рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЖрдкрдХреЗ IDE рдХреЗ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЕрд╕реЗрдВрдмрд▓реА (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ - MolesAddIn.dll) рдХреЗ рд╕рд╛рде * .addin рдлрд╝рд╛рдЗрд▓ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреИрдХ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ * .sadaddin рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдм рдХреБрдЫ, рд╕реНрдерд╛рдкрдирд╛ рдкреИрдХреЗрдЬ рддреИрдпрд╛рд░ рд╣реИред AddIn Manager рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк SharpDevelop рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреЗрд╢рдХ, AddIns рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдпрд╣ рд╡рд░реНрдгрди рдкреВрд░реНрдг рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓реЗрдЦрди рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, C # рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдирд╛ рджреЗрдЦреЗрдВ: рд╢рд╛рд░реНрдкрдбреЗрд╡реНрдпреВрдЕрд░ рдХреЗ рдЕрдВрджрд░ ред рдбрд┐рдЬрд┐рдЯрд▓ рд░реВрдк рдореЗрдВ, рдЗрд╕реЗ рдореБрдлреНрдд рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рд╕реЗ рдпрд╣ рд╕рд╛рдордиреЗ рдЖрдпрд╛, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдХреЛрдИ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХ рдореЗрдВ рдкрд╛рде рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдФрд░ рдбреВрдЬрд╝рд░ - рдХреЛрдбрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рд░реНрдкрд╡реНрдпреВрдб рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдореЗрдВ рдЕрдзрд┐рдХ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рдбреЙрдХ / рдЯреЗрдХреНрдиреЛрдЯреНрд╕ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

PS рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╕реНрд░реЛрдд рдЯреИрдЧ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In103640/


All Articles