рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдиреЛрдЯ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ Voximplant рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдЕрдкрдбреЗрдЯреЗрдб IDE рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓реЗред рдЖрдЬ рд╣рдо рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ
рд▓реЙрдиреНрдЧрдбреНрд░рд╛рдЗрд╡ рд╕рдорд░реНрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА
рдЧреЗрд▓реЛрд╕рд╛ рдиреЗ рдзреНрдпрд╛рди рд╕реЗ рдПрдХ рддрдХрдиреАрдХ рдЪреБрдирдиреЗ рдФрд░ рдЯреИрдм, рдСрдЯреЛ-рдкреВрд░реНрдг рдФрд░ рдХрд╕реНрдЯрдо рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╕реЗ рдмреИрдареЗрдВ, рдЕрдкрдиреЗ рдмрд╛рдХреА рдорд╛рдорд▓реЛрдВ рдХреЛ рдЕрд▓рдЧ рд░рдЦреЗрдВ рдФрд░ рдЯреИрдХрд▓ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдореЛрдирд╛рдХреЛ рд╣рд┐рдореНрдордд рдЙрддреНрд╕реБрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдкрд░реНрдЪреА рди рдХрд░реЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ :) рдкрдврд╝рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред
рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЪреБрдиреЗрдВ?
Npm рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП 400+ рдкрд░рд┐рдгрд╛рдо рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдпреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдврд╛рдВрдЪреЗ рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдХреЗ рдпреВрдЖрдИ-рд░реИрдкрд░ рд╣реИрдВ, рд╕рдорд╛рди рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдпрд╛ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдХрд╛рдВрдЯреЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреЛрдб рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд╡реЗ рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЖ рдЧрдПред рдЗрд╕рд▓рд┐рдП, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рд╕рдВрдХреАрд░реНрдг рд╣реИред рдХреБрдЫ рдФрд░ рдХрд╛рдо - рдПрдХ рд▓рд╛
рдХреЛрдбрдлреНрд▓реИрд╕реНрдХ , рд╣рд▓реНрдХрд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирд╣реАрдВ, рдЫреЛрдЯреЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдФрд░ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкреВрд░реНрдг рд╡реЗрдм рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╣рдо рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП 3 рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ:
рдРрд╕ ,
рдХреЛрдбрдорд┐рд░рд░ рдФрд░
рдореЛрдирд╛рдХреЛ рд╕рдВрдкрд╛рджрдХ ред рдЗрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдкрд╣рд▓рд╛,
рдХреЛрдбрдорд┐рд░рд░ , рдмрд░реНрд▓рд┐рдирд░
рдореЗрд░реАрдЬрди рд╣рд╛рд╡реЗрд░реНрдмрдХреЗ рдХреА рдПрдХ рдирд┐рдЬреА рдкрд╣рд▓ рдереА, рдЬрд┐рд╕реЗ рдЕрдкрдиреЗ рдСрдирд▓рд╛рдЗрди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓,
рдПрд▓рдХреНрд╡реЗрдВрдЯреЗрдВрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рдпрд╛рдо рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 2007 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 2010 рдореЗрдВ, рдРрд╕ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг JSConf.eu рдореЗрдВ рдЙрд╕реА рдмрд░реНрд▓рд┐рди рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рддрдм Ajax.org рдиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб IDE Cloud9 рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдерд╛ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Ace рдХрд╛ рдЕрд░реНрде Ajax.org Cloud9 Editor рд╣реИ)ред 2016 рдореЗрдВ, Cloud9 рдХреЛ рдЕрдореЗрдЬрд╝рди рджреНрд╡рд╛рд░рд╛ рдЦрд░реАрджрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдпрд╣ AWS рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдирд╡реАрдирддрдо, рдореЛрдирд╛рдХреЛ рд╕рдВрдкрд╛рджрдХ, рд╡реАрдПрд╕ рдХреЛрдб рдХрд╛ рдПрдХ рдШрдЯрдХ рд╣реИ рдФрд░ 2015 рдХреЗ рдЕрдВрдд рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрд╛рджрдХ рдХреА рдЕрдкрдиреА рддрд╛рдХрдд рдФрд░ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдбрдорд┐рд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд┐рдЯрдХрдмреЗрдЯ рдореЗрдВ рдПрдХ рдЖрдИрдбреАрдИ, рдПрдирдкреАрдПрдо рдореЗрдВ рд░рдирдХрд┐рдЯ рдореЗрдВ; рдРрд╕ - рдХреЛрдбреЗрдХ рдЕрдХрд╛рджрдореА, рдЦрд╛рди рдЕрдХрд╛рджрдореА, MODX рдореЗрдВ; рдореЛрдирд╛рдХреЛ - GitLab IDE рдФрд░ CodeSandbox рдореЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рддреБрд▓рдирд╛ рдЪрд╛рд░реНрдЯ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЙрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЪреБрдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред
| рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ |
| рдРрд╕ | CodeMirror | рдореЛрдирд╛рдХреЛ |
рдбреЗрд╡рд▓рдкрд░ | Cloud9 IDE (Ajax.org), рдЕрдм AmazonMozilla рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ | рдорд░рд┐рдЬрди рд╣реИрд╡рд░рдмреЗрдХреЗ | рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ |
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди | рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ ^ 3.5 рдХреНрд░реЛрдо рд╕рдлрд╛рд░реА ^ 4.0 IE ^ 8.0 рдУрдкреЗрд░рд╛ ^ 11.5 | рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ ^ 3.0 рдХреНрд░реЛрдо рд╕рдлрд╛рд░реА ^ 5.2 IE ^ 8.0 рдУрдкреЗрд░рд╛ ^ 9.2 | рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ ^ 4.0 рдХреНрд░реЛрдо рд╕рдлрд╝рд╛рд░реА (v -?) IE ^ 11.0 рдУрдкреЗрд░рд╛ ^ 15.0 |
рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди (рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ) | > 120 | > 100 рд░реБ | > реиреж |
рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг cndjs.com | 366 608 (v1.4.3) | 394,269 (v5.44.0) | 2,064,949 (v0.16.2) |
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╡рдЬрди, gzip | реи.резрек 2. рдХреЗрдмреА | рез.рекрезрез рдХреЗрдмреА | 10.898 рдХреЗрдмреА |
рдкреНрд░рддрд┐рдкрд╛рджрди | рдбреЛрдо | рдбреЛрдо | рдбреЛрдо рдФрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ <рдХреИрдирд╡рд╛рд╕> (рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдФрд░ рдорд┐рдирд┐рдореИрдк рдХреЗ рд▓рд┐рдП) |
рдкреНрд░рд▓реЗрдЦрди | 10 рдореЗрдВ рд╕реЗ 7: рдХреЛрдИ рдЦреЛрдЬ рдирд╣реАрдВ, рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╡рд╣ рд╡рд┐рдзрд┐рдпрд╛рдВ рд▓реМрдЯрддреА рд╣реИрдВ, рд╕рдВрджреЗрд╣ рд╣реЛрддреЗ рд╣реИрдВ рдкреВрд░реНрдгрддрд╛ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдореЗрдВ (рдбреЙрдХ рдореЗрдВ рд╕рднреА рд▓рд┐рдВрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ) | 10 рдореЗрдВ рд╕реЗ 6: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрд╛рдЗрдб рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп, Ctrl + F, рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ рдкреВрд░реНрдгрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИрдВ | 10 рдореЗрдВ рд╕реЗ 9: рд╕реБрдВрджрд░, рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдФрд░ рдкрд╛рд░ рд╕рдВрджрд░реНрдн -1 рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рдмрд┐рдВрджреБ рдХреБрдЫ рдЭрдВрдбреЗ рдЬрд┐рдирдХреЗ рдЖрд╡реЗрджрди рдирд╛рдо рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ |
рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдбреЗрдореЛ | рдХреИрд╕реЗ, рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдкрд╛рда рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдЕрд▓рдЧ рд╕реЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдбреЗрдореЛ рд╣реИрдВ (рд╕рдЪ рд╣реИ, рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рдкреГрд╖реНрдареЛрдВ рдкрд░ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВ, рд╣рд░ рдХреЛрдИ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ Google рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдмрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдПрдХ рдбреЗрдореЛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди UI рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ рддреЛ рдлрд┐рд░, рд╣рдореЗрдВ рдЕрднреА рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП | рдХреИрд╕реЗ-рдХреИрд╕реЗ рдЧрд░реАрдм рд╣реИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдЧреАрдердм рдкрд░ рдмрд┐рдЦрд░рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ stackoverflow, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдбреЗрдореЛ рд╣реИрдВ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреЛрдб | рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдпреБрдХреНрдд: рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдФрд░ рдХрдИ рдбреЗрдореЛ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреБрд░рдВрдд рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ рдХрдИ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ |
рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЧрддрд┐рд╡рд┐рдзрд┐ | рдХреЗрдВрджреНрд░реАрдп | рдЙрдЪреНрдЪ | рдХреЗрдВрджреНрд░реАрдп |
рдбреЗрд╡рд▓рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ | рдХреЗрдВрджреНрд░реАрдп | рдХреЗрдВрджреНрд░реАрдп | рдЙрдЪреНрдЪ |
рдпрд╣ рдЖрдХрд╛рд░ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП: рддреИрдпрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд┐рд▓реНрдб (рдЬреЛ рднреА рднрд┐рдиреНрди рд╣реЛ) рдпрд╛ npm рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░реЗрдВред рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдХрд┐рддрдирд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЪрд╛рд╣реЗ рд╕рднреА рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдХрд┐рддрдиреЗ рдФрд░ рдХреМрди рд╕реЗ рдРрдб-рдСрди рдФрд░ рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CodeMirror рдореЗрдВ, рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдореЛрдирд╛рдХреЛ рдФрд░ рдРрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗрд╡рд▓ рдРрдб-рдСрди рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИред рддрд╛рд▓рд┐рдХрд╛ CDN рдкрд░ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рд╕рдВрдкреАрдбрд╝рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рдЬрди рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИред
рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ: рдХреЛрдб рдСрдЯреЛрдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдлреЛрд▓реНрдбрд┐рдВрдЧ рд▓рд╛рдЗрдиреНрд╕, рдХрдЯ / рдХреЙрдкреА / рдкреЗрд╕реНрдЯ, рд╣реЙрдЯ рдХреАрдЬрд╝, рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдФрд░ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЪреЗрдХрд┐рдВрдЧ (рдХреЛрдбрдорд┐рд░рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдРрдб-рдСрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдРрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдм рддрдХред / CoffeeScript / CSS / XQuery), рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдФрд░ рдСрдЯреЛ-рдХрдореНрдкреНрд▓реАрдЯ (рдХреЛрдбрдорд┐рд░рд░ рдореЗрдВ - рдПрдб-рдСрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдПрдбрд╡рд╛рдВрд╕реНрдб рд╕рд░реНрдЪ (рдХреЛрдбрдорд┐рд░рд░ рдореЗрдВ - рдРрдб-рдСрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдЯреИрдм рдФрд░ рд╕реНрдкреНрд▓рд┐рдЯ-рдореЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ, рдЕрдВрддрд░ рдореЛрдб рдФрд░ рдПрдХ рдорд░реНрдЬ рдЯреВрд▓ (CodeMirror рдореЗрдВ) - рдпрд╛ рддреЛ рдПрдХ рдЦрд┐рдбрд╝рдХреА рдореЗрдВ pluses рдФрд░ minuses рдХреЗ рд╕рд╛рде, рдпрд╛ рдПрдХ addon рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛ-рдкреИрдирд▓, рдРрд╕ - рдЕрд▓рдЧ Lieb)ред рдЗрд╕рдХреА рдЖрдпреБ рдХреЗ рдХрд╛рд░рдг, рдХреЛрдбрдорд┐рд░рд░ рдХреЗ рд▓рд┐рдП рдХрдИ рдРрдб-рдСрди рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╡рдЬрди рдФрд░ рдЧрддрд┐ рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧреАред рдореЛрдирд╛рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдРрд╕ рдФрд░ рдХреЛрдбрдорд┐рд░рд░ рд╕реЗ рдмреЗрд╣рддрд░ рдФрд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВред
рд╣рдо рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореЛрдирд╛рдХреЛ рдореЗрдВ рд░рд╣реЗ:
- рд╕рдмрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдЙрдкрдХрд░рдг рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдирд╛:
- IntelliSense - рдпреБрдХреНрддрд┐рдпрд╛рдВ рдФрд░ рдСрдЯреЛ-рдкреВрд░реНрдг;
- рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдФрд░ рдиреНрдпреВрдирддрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдорд╛рд░реНрдЯ рдХреЛрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди;
- рджреЛ-рдкреИрдирд▓ рдЕрдВрддрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдореЛрдбред
- рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ Vue + Typescript рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП TS рд╕рдорд░реНрдерди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ред рд╡реИрд╕реЗ, рдРрд╕ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЯреАрдПрд╕ рдХрд╛ рд╕рдорд░реНрдерди рднреА рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред CodeMirror рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╣реИрдВред
- рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рд╕рдВрднрд╡рддрдГ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдмрдЧреНрд╕ рдХреЛ рддреЗрдЬреА рд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреВрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд▓рдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдХреЛрдбрдорд┐рд░рд░ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдПрдХ рджреБрдЦрдж рдЕрдиреБрднрд╡ рд╣реБрдЖ, рдЬрдм рдмрдЧреНрд╕ рдиреЗ рд╡рд░реНрд╖реЛрдВ рддрдХ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рд╣рдордиреЗ рдПрдХ рдмреИрд╕рд╛рдЦреА рдкрд░ рдмреИрд╕рд╛рдЦреА рд▓рдЧрд╛рдИ рдФрд░ рдПрдХ рдмреИрд╕рд╛рдЦреА рдирд┐рдХрд╛рд▓реАред
- рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЗ рдмреАрдЪ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕ рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдСрдЯреЛ-рдЬрдирд░реЗрдЯ (рдЬреЛ рдЗрд╕рдХреА рдкреВрд░реНрдгрддрд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ) рдкреНрд░рд▓реЗрдЦрдиред
- рд╣рдорд╛рд░реЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рдпреВрдЖрдИ (рд╢рд╛рдпрдж рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд) рдФрд░ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдПрдкреАрдЖрдИред
- рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рджреЛрд╕реНрддреЛрдВ рд╕реЗ рдкреВрдЫрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ рд╕реЗ рдХреМрди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рд┐рд░рджрд░реНрдж рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдРрд╕ рдФрд░ рдХреЛрдбрдорд┐рд░рд░ рдиреЗрддрд╛ рдереЗред
рдЕрд▓рдЧ рд╕реЗ, рдпрд╣ рдХрд╛рдо рдХреА рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХ рдзрд╛рдЧреЗ рдореЗрдВ рдорд╣рдВрдЧрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд╕рднреА рдЧрдгрдирд╛ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рдЖрдХрд╛рд░ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВ (рд╕рднреА рдкреНрд░рдХрд╛рд░, рд░рдВрдЧ, рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗрд╡рд▓ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ)ред рдпрд╣ рддрднреА рдмреНрд░реЗрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреЛрдб рдореЗрдВ 100,000 рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВ - рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдХрдИ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдРрд╕, рдЬреЛ рднрд╛рд░реА рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЗрдЬреА рд╕реЗ рдирд┐рдХрд▓рд╛: рд╕рдорд╛рди рд▓рдВрдмрд╛рдИ рдХреЗ рдХреЛрдб рдореЗрдВ, рд╕рдВрдХреЗрдд рд▓рдЧрднрдЧ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ 200,000 рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рддрд╛ рд╣реИ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ 4 рдорд┐рд▓рд┐рдпрди рд▓рд╛рдЗрдиреЗрдВ рднреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд┐рдХрдВрдЬрд╛ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЗрдирдкреБрдЯ рдзреАрдорд╛ рд╣реЛрдиреЗ рд▓рдЧрд╛ рдФрд░ рд╕рдВрдХреЗрдд 1 рдорд┐рд▓рд┐рдпрди рдХреЗ рдмрд╛рдж рдЧрд╛рдпрдм рд╣реЛ рдЧрдП)ред рдХреЛрдбрдорд┐рд░рд░, рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдЧрдгрдирд╛ рдирд╣реАрдВ рд╣реИ, рд╢рд╛рдпрдж рд╣реА рдРрд╕реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ: рдпрд╣ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рджреЛрдиреЛрдВ рдХреЛ рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 100,000 рд▓рд╛рдЗрдиреЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рджреБрд░реНрд▓рдн рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕ рдкрд░ рдЖрдВрдЦреЗрдВ рдореВрдВрдж рд▓реАрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ 40-50 рд╣рдЬрд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдореЛрдирд╛рдХреЛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореЛрдирд╛рдХреЛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдореВрд▓рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Vue рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг)
рд╕рдВрдмрдВрдз
рдпрд╣рд╛рдВ рдореИрдВ рд╡рд╛рдЙ рдШрдЯрдХреЛрдВ рд╕реЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдФрд░ рдЙрдкрдпреБрдХреНрдд рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдврд╛рдВрдЪреЗ рдпрд╛ рд╢реБрджреНрдз рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЛрдирд╛рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд╕реАрдбреАрдПрди рд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдПрдирдкреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рддреАрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░реВрдВрдЧрд╛ред
рд╣рдордиреЗ рдореЛрдирд╛рдХреЛ-рдПрдбрд┐рдЯрд░ рдФрд░ рдПрдХ рдкреНрд▓рдЧ-рдЗрди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛:
npm i -S monaco-editor npm i -D monaco-editor-webpack-plugin
рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдЬреЛрдбрд╝реЗрдВ:
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); module.exports = {
рдпрджрд┐ рдЖрдк рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Vue рдФрд░ vue-cli-service рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ vue.config.js рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); module.exports = {
рдпрджрд┐ рдЖрдкрдХреЛ рдмрдВрдбрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдирд╛рдХреЛ рдХреА рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ
MonacoWebpackPlugin
рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
new MonacoWebpackPlugin({ output: '',
рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рднрд╛рд╖рд╛рдУрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА
рдпрд╣рд╛рдВ рд╣реИ ред
рдПрдХ рд╕рдВрдкрд╛рджрдХ рдмрдирд╛рдПрдВ рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ
рд╣рдо
editor
рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░
editor.create(el: HTMLElement, config?: IEditorConstructionOptions)
, рдЙрд╕ DOM рдПрд▓рд┐рдореЗрдВрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдПрдбрд┐рдЯрд░ рдХреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕рдВрдкрд╛рджрдХ рдШрдЯрдХ рдореЗрдВ:
<template> <div ref='editor' class='editor'></div> </template> <script> import {editor} from 'monaco-editor'; import {Component, Prop, Vue} from 'vue-property-decorator'; @Component() export default class Monaco extends Vue { private editor = null; mounted() { this.editor = editor.create(this.$refs.editor); } } </script> <style> .editor { margin: auto; width: 60vw; height: 200px; } </style>
рд╕рдВрдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рд╢реВрдиреНрдп рди рд╣реЛред рдпрджрд┐ рдЖрдк рдПрдХ рдЦрд╛рд▓реА рдбрд┐рд╡ рдореЗрдВ рд╕рдВрдкрд╛рджрдХ рдмрдирд╛рддреЗ рд╣реИрдВ (рд╢реВрдиреНрдп рдКрдВрдЪрд╛рдИ рдХреЗ рд╕рд╛рде - рдЖрдкрдХрд╛ K.O.), рддреЛ рдореЛрдирд╛рдХреЛ рд╕рдВрдкрд╛рджрдХ рд╡рд┐рдВрдбреЛ рдкрд░ рдЗрдирд▓рд╛рдЗрди рд╢реИрд▓реА рдореЗрдВ рд╕рдорд╛рди рдКрдВрдЪрд╛рдИ рд▓рд┐рдЦреЗрдЧрд╛ред
editor.create
рд▓рд┐рдП рджреВрд╕рд░рд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рд╕рдВрдкрд╛рджрдХ
editor.create
рд╣реИред рдЗрд╕рдореЗрдВ рд╕реМ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ
IEditorConstructionOptions рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рднрд╛рд╖рд╛, рд╡рд┐рд╖рдп рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╛рда рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд▓рд╛рдЗрди рд░реИрдкрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВрдЧреЗ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реЗ рд▓рд┐рдкрдЯреЗ рдирд╣реАрдВ рд╣реИрдВ):
const config = { value: `function hello() { alert('Hello world!'); }`, language: 'javascript', theme: 'vs-dark', wordWrap: 'on' }; this.editor = editor.create(this.$refs.editor, config);
Editor.create рдлрд╝рдВрдХреНрд╢рди
IStandaloneCodeEditor рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдЕрдм рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ:
рдЕрдм рджрд░реНрдж рдХреЗ рд▓рд┐рдП:
updateOptions
рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ
IEditorOptions рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ IEditorConstructionOptions рдкрд░ред рд╡реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИрдВ: IEditorConstructionOptions рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рдЗрд╕ рд╕рдВрдкрд╛рджрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рдЧреБрдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
updateOptions
рдЧреБрдг
updateOptions
рдорд╛рдзреНрдпрдо рд╕реЗ рдмрджрд▓реЗ
updateOptions
, рд╡реИрд╢реНрд╡рд┐рдХ - рд╡реИрд╢реНрд╡рд┐рдХ
editor
рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдЬреЛ рд▓реЛрдЧ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдмрджрд▓рддреЗ рд╣реИрдВ рд╡реЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрджрд▓рддреЗ рд╣реИрдВред рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ
theme
ред рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд╕рд╛рде 2 рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ; рджреЛрдиреЛрдВ рдХрд╛ y рдЖрдЦрд┐рд░реА рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ (рдпрд╣рд╛рдБ рдЕрдВрдзреЗрд░рд╛) рд╣реЛрдЧрд╛ред рд╡реИрд╢реНрд╡рд┐рдХ
editor.setTheme('vs')
рд╡рд┐рдзрд┐ рднреА рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рдХреЛ рдмрджрд▓ рджреЗрдЧреАред рдпрд╣ рдЙрди рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЗ рдПрд╕рдкреАрдП рдХреЗ рджреВрд╕рд░реЗ рдкреГрд╖реНрда рдкрд░ рд╣реИрдВред рдРрд╕реЗ рдХреБрдЫ рд╕реНрдерд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрдирдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
<template> <div ref='editor1' class='editor'></div> <div ref='editor2' class='editor'></div> </template> <script> </script>
рд╕рдВрдкрд╛рджрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
рдЬрдм рдЖрдк рдореЛрдирд╛рдХреЛ рд╡рд┐рдВрдбреЛ рдХреЛ рдирд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ
dispose
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рд╕рднреА рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдордВрдЬреВрд░реА рдирд╣реАрдВ рджреА рдЬрд╛рдПрдЧреА рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдмрдирд╛рдИ рдЧрдИ рд╡рд┐рдВрдбреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рдмрд╛рд░:
beforeDestroy() { this.editor && this.editor.dispose(); }
рдЯреИрдм
рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЦреБрд▓реЗ рдЯреИрдм рдПрдХ рд╣реА рдореЛрдирд╛рдХреЛ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, IStandaloneCodeEditor рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдмрдЪрдд рдХреЗ рд▓рд┐рдП
setModel
рдФрд░ рд╕рдВрдкрд╛рджрдХ рдореЙрдбрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПModelред рдореЙрдбрд▓ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рда, рдХрд░реНрд╕рд░ рд╕реНрдерд┐рддрд┐, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЗрддрд┐рд╣рд╛рд╕ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
editor.createModel(text: string, language: string)
рд╡реИрд╢реНрд╡рд┐рдХ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдореЙрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
null
рдХреЛ
setModel
рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдХреЛрдб рджреЗрдЦреЗрдВ <template> <div class='tabs'> <div class='tab' v-for="tab in tabs" :key'tab.id' @click='() => switchTab(tab.id)'> {{tab.name}} </div> </div> <div ref='editor' class='editor'></div> </template> <script> import {editor} from 'monaco-editor'; import {Component, Prop, Vue} from 'vue-property-decorator'; @Component() export default class Monaco extends Vue { private editor = null; private tabs: [ {id: 1, name: 'tab 1', text: 'const tab = 1;', model: null, active: true}, {id: 2, name: 'tab 2', text: 'const tab = 2;', model: null, active: false} ]; mounted() { this.editor = editor.create(this.$refs.editor); } private switchTab(id) { const activeTab = this.tabs.find(tab => tab.id === id); if (!activeTab.active) { </script>
рдбрд┐рдл рдореЛрдб
рд╡рд┐рдзрд╛ рдореЛрдб рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрдкрд╛рджрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рддреЗ рд╕рдордп рдХрд┐рд╕реА рдЕрдиреНрдп
editor
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ -
createDiffEditor
:
<template> <div ref='diffEditor' class='editor'></div> </template> // ... mounted() { this.diffEditor = editor.createDiffEditor(this.$refs.diffEditor, config); } // ...
рдпрд╣
Editor.create рдХреЗ рд╕рдорд╛рди рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ
IDiffEditorConstructionOptions рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдирд┐рдпрдорд┐рдд рд╕рдВрдкрд╛рджрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛
value
рдирд╣реАрдВ рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдЧреНрд░рдВрдереЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП
IStandaloneDiffEditor рджреНрд╡рд╛рд░рд╛
setModel рдХреЗ рдмрд╛рдж рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
this.diffEditor.setModel({ original: editor.createModel('const a = 1;', 'javascript'), modified: editor.createModel('const a = 2;', 'javascript') });
рдкреНрд░рд╕рдВрдЧ рдореЗрдиреВ, рдХрдорд╛рдВрдб рдкреИрд▓реЗрдЯ рдФрд░ рд╣реЙрдЯ рдХреА
рдореЛрдирд╛рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ, рдЧреИрд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░, рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реНрдорд╛рд░реНрдЯ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╣реИ, рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд▓реНрдЯреА-рдХрд░реНрд╕рд░ рд╣реИ, рдФрд░ рдПрдХ рдХрдорд╛рдВрдб рдкреИрд▓реЗрдЯ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╡реАрдПрд╕ рдХреЛрдб (рдХрдорд╛рдВрдб рдкреИрд▓реЗрдЯ) рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рдХреЛрдб рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реЙрдЯ рдХреАрдЬрд╝ рд╣реИрдВред
рдореЛрдирд╛рдХреЛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ
рдореЛрдирд╛рдХреЛ рдХрдорд╛рдВрдб рдкреИрд▓реЗрдЯ
рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдХреЛ
addAction
рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╣
IStandaloneCodeEditor
рдФрд░
IStandaloneDiffEditor
рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ), рдЬреЛ
IActionDescriptor рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
рдХреЛрдб рджреЗрдЦреЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рдореЗрдиреВ рдореЗрдВ рджрд┐рдЦрд╛рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╢реЙрд░реНрдЯрдХрдЯ рдХреЛ рдХрд┐рд╕реА рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрд╛рдБрдзрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓
contextMenuGroupId
рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ
contextMenuGroupId
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдХреЛрдб рджреЗрдЦреЗрдВ рдХрдорд╛рдВрдб рдкреИрд▓реЗрдЯ рдореЗрдВ рд╕рднреА рдЬреЛрдбрд╝реЗ рдЧрдП рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
рдЯрд┐рдкреНрд╕ рдФрд░ рдСрдЯреЛ-рдкреВрд░реНрдг
рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореЛрдирд╛рдХреЛ
IntelliSense рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╢рд╛рдВрдд рд╣реИред рдЖрдк рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкрд░ рд▓рд┐рдВрдХ рдХреЛ рдкрдврд╝ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХрд┐рддрдиреА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреА рднрд╛рд╖рд╛ рдЕрднреА рддрдХ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ
registerCompletionItemProvider рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ JS рдФрд░ TS рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ
addExtraLib
рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдФрд░ рдСрдЯреЛ-рдкреВрд░реНрдг рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:
рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ, рд▓рд╛рдЗрди рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ, рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓рд┐рдм рдХрд╛ рдирд╛рдоред
рдХрд╕реНрдЯрдо рднрд╛рд╖рд╛ рдФрд░ рд╡рд┐рд╖рдп-рд╡рд╕реНрддреБ
рдореЛрдирд╛рдХреЛ рдореЗрдВ рдЕрдкрдиреА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рдореЛрдирд╛рд░реНрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдХрд╛рдлреА рдорд╛рдирдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдФрд░ рдЯреЛрдХрди рдХреЗ рдмреАрдЪ рдкрддреНрд░рд╛рдЪрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдб рджреЗрдЦреЗрдВ рдЖрдк рдЕрдкрдиреЗ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ рдереАрдо рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ -
IStandaloneThemeData рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ - рдФрд░ рдЗрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ
editor
рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
рдЕрдм рд╡рд░реНрдгрд┐рдд рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╛рда рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

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

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