
рдирдорд╕реНрдХрд╛рд░ рд╕рдЬреНрдЬрдиреЛрдВ!
рдореБрдЭреЗ рд╕реБрдЦрдж рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдЬрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐
Ajax.org рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕реЗ
рдРрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
, рд▓рдЧрднрдЧ рд╣рдм рдкрд░ рдХрднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛ ред рдРрд╕ рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХрд╛ рд╡реЗрдм рд╕реЛрд░реНрд╕ рдПрдбрд┐рдЯрд░ рд╣реИред рдпрд╣ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: 60 рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдореЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рд╡рд┐рднрд┐рдиреНрди рд▓реЛрдХрдкреНрд░рд┐рдп рдЖрдИрдбреАрдИ, рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд░рдВрдЧ рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдкрд╛рдЧрд▓ рд░рд╛рд╢рд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдХрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрдХреВрд▓рди, рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рд╕рд╣рд┐рддред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдмрд╣реБрдореБрдЦреА рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд╣реЛрддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ Qt рдХреЗ рд▓рд┐рдП рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЕрднрд┐рдпрд╛рди рдХрд░рддрд╛ рд╣реВрдВред рддреЛ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреНрдпрд╛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ?
- рдРрд╕ рдХреЗ рд╕рд╛рде рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрддред рдореИрдВ рдРрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдБ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рдХреНрдпреЛрдВ?
- рдРрд╕ рдХреЛ рдХреНрдпреВрдЯреА рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдФрд░ рдЙрд╕рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рд▓рдкреЗрдЯрдирд╛: Qt5- рдЖрдзрд╛рд░рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ-рдХреИрд╕реЗ (рдЬреИрд╕реЗ рдореЗрд░реЗ рдРрд╕ рдкреЛрд░реНрдЯ - рдиреЛрд╡рд┐рд▓реЗ
рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреБрдЫ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрд░реА рдиреЙрд╡реЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:


рдРрд╕ рдХреНрдпрд╛ рд╣реИ?
Ace (Ajax.org Cloud9 Editor) рдПрдХ рдСрдирд▓рд╛рдЗрди рд╕реНрд░реЛрдд рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рд╣реИ, рдЬреЛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдереАрдо рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ MPL / LGPL / GPL рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рднреА рд╡реЗрдм рдкреЗрдЬ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕ рдХреЛ Cloud9 IDE рдХреЗ рдореБрдЦреНрдп рд╕рдВрдкрд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕реНрдХрд╛рдИрдЯрд╛рдЗрдЯрд░ (рдмреЗрд╕реНрдкрд┐рди) рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИред рдЕрдм рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ GitHub рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдРрд╕ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╕реБрдВрджрд░ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрд░реЛрдд рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдпрд╛ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдореНрдмреЗрдбред рд╕рдВрдкрд╛рджрдХ рдХреЗ рдлрд╛рдпрджреЛрдВ рдХреЗ рдмреАрдЪ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- 60 рд╕реЗ рдЕрдзрд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреИрдХрд▓рд╛рдЗрдЯ (.tmlanguage рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрдпрд╛рдд рд╣реЛрддрд╛ рд╣реИ)
- 20 рд╕реЗ рдЕрдзрд┐рдХ рдереАрдо рд╣реИрдВ (.tmtheme рднреА рдЖрдпрд╛рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ)
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЬрд╛рдБрдЪ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдкреАрдПрдЪрдкреА / рд╕реАрдПрд╕рдПрд╕ / рдЖрджрд┐)
- рдмрдбрд╝реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдХреЛрдб рдХреА 4,000,000 рд▓рд╛рдЗрдиреЗрдВ рдЦреАрдВрдЪрддреА рд╣реИрдВ)
- рдХреЛрдб рддрд╣, рдЗрд╕рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ
- рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ рдФрд░ рд╢реЙрд░реНрдЯрдХрдЯ
- рдПрдХрд╛рдзрд┐рдХ рдХрд░реНрд╕рд░ рдФрд░ рдЪрдпрди
- рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ (рдЬреЛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)
- рдСрдЯреЛ рдХреЛрдб рд╕рдВрд░реЗрдЦрдг
- рдирд┐рдпрдорд┐рдд рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди
- рдирд░рдо рдФрд░ рдХрдареЛрд░ рдЯреИрдм
рдпрд╣ рдРрд╕ рдХреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рдВрдкрд╛рджрдХ рдмрдирд╛рддрд╛ рд╣реИ!

рдПрдкреАрдЖрдИ рдФрд░ рдкреНрд░рд▓реЗрдЦрди
рдкреНрд░рд▓реЗрдЦрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдРрд╕ рдХрд╛ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИред рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рдХрд╣рддреЗ рд╣реБрдП рдмрд╣реБрдд рдЬреЛрд░ рд╕реЗ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЕрдм, рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рд╕рдВрдкрд╛рджрдХ рдХреЛ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдХрджрдо-рдХрджрдо, рддреЛ рдмреЛрд▓рдирд╛ рд╣реИред
рдЪрд░рдг 1. рдореВрд▓ рд╕реЗрдЯрдЕрдк
рдЖрдЗрдП рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рдЗрдЪреНрдЫрд┐рдд рдкреГрд╖реНрда рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВред рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдБ:
<!DOCTYPE html> <html lang="en"> <head> <title>Ace Editor Demo</title> <style type="text/css"> #editor { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } </style> </head> <body> <div id="editor"></div> <script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script> <script> var editor = ace.edit("editor"); </script> </body> </html>
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд░рд▓ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░рд▓ рдкреГрд╖реНрда рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣реИред рд╡реИрд╕реЗ, рдЖрдк рдЕрдиреНрдп рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ a.js. рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕реЗ рд╕реНрд╡рдпрдВ (рдиреЛрдб) рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЯреБрдХрдбрд╝рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЪрд░рдг 2. рдЕрдзрд┐рдХ рд░рдВрдЧ!
рдЕрдм рд╣рдорд╛рд░реЗ рдЗрдЪреНрдЫрд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рд░рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдпрд╣ рдХреБрдЫ рд╕рд░рд▓ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЦреИрд░, рдЖрдЗрдП рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
editor.setTheme("ace/theme/monokai"); editor.getSession().setMode("ace/mode/javascript");
рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ? рд╕рдВрдкрд╛рджрдХ рдХреА рдереАрдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╛рд░реВрдк рдкрде рдЗрдХреНрдХрд╛ / рдереАрдо / <theme_name> рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐
рд╡рд┐рд╖рдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдкрд╛рджрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ ред рдЕрдЧрд▓рд╛, рд╣рдо рдмреИрдХрд▓рд╛рдЗрдЯ рдореЛрдб рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ,
рдмреИрдХрд▓рд╛рдЗрдЯ рдПрдбрд┐рдЯрд╕реЗрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ ред рдпрд╣ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕реЗрдЯ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рд╕реАрдзреЗ рд╕рдВрдкрд╛рджрдХ рдХреЛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕рдХреЗ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм, рдереЛрдбрд╝рд╛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдкрд░рд┐рд╖реНрдХреГрдд jquery- рдЖрдзрд╛рд░рд┐рдд AJAX рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)
рдЪрд░рдг 3. рдПрдкреАрдЖрдИ рд╕реНрддрд░ рдкрд░ рдкрд╛рда рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ
рд▓реЗрдЦрди рдХреЛрдб рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрддрд░ рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЗрд╕ рдХрджрдо рдкрд░, рдореИрдВ рд╕рдВрдкрд╛рджрдХ рдФрд░ рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЧрд╛рдЧрд░рд┐рди рдиреЗ рдХрд╣рд╛, рдЪрд▓реЛ!
рд╣рдо рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
editor.setValue("<source code>");
рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рд╛ рдХрд╛рдо:
var selectionRange = editor.getSelectionRange();
рдФрд░ рдЕрдм рд╣рдо рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рддреЗ рд╣реИрдВ:
var pos = editor.getCursorPosition();
рдЙрдиреНрдирдд рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
var lines = editor.session.getLength();
рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ div # рдПрдбрд┐рдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
editor.resize()
рдЪрд░рдг 4. рдЦреЛрдЬ рдФрд░ рдШрдЯрдирд╛рдУрдВ
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдХреЗрд╡рд▓ рдЦреЛрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдХрд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЕрднреА рдЙрдирдХреЗ рдХрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рдФрд░ рдХрдИ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдПрдкреАрдЖрдИ рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ
editor.find('needle', {
рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВ:
рдФрд░ рдЕрдм рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ - рдЧрд░реНрдо рдХреБрдВрдЬреА рдФрд░ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ:
editor.commands.addCommand({ name: 'myCommand',
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕ рдЬреНрдЮрд╛рди (рдкреВрд░реНрдг рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ) рдХреЗ рд╕рд╛рде, рдЖрдк Cloud9 IDE рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╕рдВрдкрд╛рджрдХ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрд╣реБрдд рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
рдХреНрдпреВрдЯреА рдХреЗ рд▓рд┐рдП рдиреЛрд╡реЗрд▓ рдХрдВрдкреЛрдиреЗрдВрдЯ
рдЕрдм рд╣рдо
рдиреЛрд╡реЗрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреЛ рдореИрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмреЛрд▓реНрдб рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛, рдФрд░ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрд╣ рдирд╣реАрдВ рд░рд╣реЗ рд╣реИрдВ рд╡реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рддрдХ рдлреНрд▓рд┐рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдореИрдВ рдЬреЗрдбреА рдХреЛ рд░реБрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдиреЛрд╡реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ
рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдХрд┐рд╕реЗ рд╣реИ?
рдЬрдм рдореИрдВрдиреЗ рдиреЛрд╡реЗрд▓ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд░рд┐рдЪрд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдбреЗрд╕реНрдХрдЯреЙрдк (рдФрд░ рди рдХреЗрд╡рд▓) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдиреЛрд╡реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдХреЛрдб рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ, рдФрд░ рдиреЛрд╡реЗрд▓ рдХреЗ рд╕рд╛рде рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
Novile, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Qt рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛, Qt рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдХреМрди рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдХреНрдпреВрдЯреА рд╕реА ++ рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИ (рдпрд╣ рдЕрднреА рднреА рдкрд╛рдпрдерди, рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ)ред Googling, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Qt рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ Qt рд▓рд┐рдирдХреНрд╕ рдореИрдХ рд╡рд┐рдВрдбреЛ рд╕рд┐рдореНрдмрд┐рдпрди Android iOS рдПрдВрдмреЗрдбреЗрдб рд╣реИред Novile QtWebKit рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдкрд╛рджрдХ рдПрдкреАрдЖрдИ рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп C ++ рдХреЛрдб рдХреЗ рдмреАрдЪ рдХрд╛ рдкреБрд▓ рд╣реИред
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдгрд╛рд▓реА
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХреНрдпреВрдЯреА рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХреНрдпреВрдХреЗрдХ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдХреНрдпреВрдмреАрдПрд╕ рдЙрдиреНрдорд╛рдж рдЬрд▓реНрдж рд╣реА рд╢реБрд░реВ рд╣реЛрдЧрд╛, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реАрдПрдордХреЗ рд╣реИред рдпрд╣ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд╕реНрддрд░ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЕрдм рдкреНрд░рд▓реЗрдЦрди, рдбрд┐рдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдиреЛрд╡реЗрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ (рд▓рд┐рдирдХреНрд╕) рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
cd path/to/novile mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=path -DVERBOSE_OUTPUT=Yes -DBUILD_DOCS=Yes -DBUILD_EXAMPLE=Yes .. make
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╣реИ рдирд╛? рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдХреНрдпреВрдЯреА 5 рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ) рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕рд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рд╡реИрд╕реЗ,
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕реАрдПрдордХреЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рд╣рдм рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рдХрд╛
рдПрдХ рд▓реЗрдЦ рд╣реИ рдпрд╣ рдЖрдкрдХреЛ рд╕рд┐рд░реНрдл рдХреБрдЫ рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдФрд░ рдЕрдм, рдпрджрд┐ рдЖрдк CMake рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Qt 5 CMake рдореЗрдВ 2.8.8+
CMake Qt 5 рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ? рд╣рд╛рдБ, рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╣рдо рдХреЛрдб рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ (рд╡реИрд╕реЗ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╣рдм рдкрд░ CMake рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рд╣реИ):
рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рд╕реЗ рдмрдЪ рдирд╣реАрдВ рд╕рдХрддреЗред рдЖрдкрдХреЛ .ui рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореИрдХреНрд░реЛ рд╣реИ:
рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рд╕реНрд╡рд┐рдЪрд░
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдХреБрдЫ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд┐рд░, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ, рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:
#ifndef NOVILE_EXPORT # if defined(NOVILE_MAKEDLL) # define NOVILE_EXPORT Q_DECL_EXPORT
рддреЛ, рдЕрдм, рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ -DNOVILE_MAKEDLL рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ, рд╣рдордиреЗ рдЗрд╕реЗ рдКрдкрд░ рдХреЗ рд╕реАрдореЗрдХ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ)ред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХреЛрдИ рдореИрдХреНрд░реЛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
Novile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?
Novile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдз рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреБрдВрдЬреА -DBUILD_EXAMPLE = рд╣рд╛рдБ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░реЗрдЧрд╛ред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдХрд┐ рдкреЗрд╢реЗрд╡рд░реЛрдВ рд╕реЗ рдпрд╣ рдХрд┐рддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ (C ++ 11 + Qt 5)
#include <Novile/Editor> using namespace std; // somewhere in the code... Editor *editor = new Editor; editor->setHighlightMode(Editor::ModePython); editor->setTheme(Editor::ThemeMonokai); editor->setFontSize(13); editor->setPrintMarginShown(false); connect(editor, &Editor::textChanged, [=]() { // const QString &text = editor->text(); doSmth(text); }); editor->show(); //
рд╕реА ++ 11, рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрдпреВрдЯреА рдФрд░ рдкреВрд░рд╛ рдиреЛрд╡реЗрд▓ рдЖрдкрдХреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддреЗрдЬ рдФрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЖрдИрдбреАрдИ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреЛрдиреЛрдВ рдХреА рдорджрдж рдХреА рд╣реИред рдореИрдВ рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВрдиреЗ Qt рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдХрд┐рддрдирд╛ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреАред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗред рдореИрдВ рдиреЛрд╡реЗрд▓ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдЕрднреА Novile рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддрд╛ред рдЕрдм рдпрд╣ рдРрд╕ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ 50% рдХреА рддрд╛рдХрдд рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛
GitHub рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреА рдХрд╛рдо рдЖрдПрдЧрд╛ред
ssylochki
- ace.ajax.org
- github.com/tucnak/novile
- qt-project.org
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдирд╛рдо рд╕реНрдерд╛рди