рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдИрдкреАрдЖрдИрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдореЛрдбреЛ рдЖрдИрдбреАрдИ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рд╣рд▓реНрдХреЗ "рд░реЛрдЬрд╝" рд╕рдВрдкрд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ
mededit рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдШреБрдорд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд░рдВрдЧ рдпреЛрдЬрдирд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рд╡реЗ рд╕рднреА Gtk-shnyh рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП
рдпрд╣рд╛рдВ рдЬрд╛рдПрдВ рдФрд░ рдЪреБрдиреЗрдВред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВ рд╕рдлреЗрдж рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдкрдЪрд╛ рдирд╣реАрдВ рдкрд╛рдпрд╛, рдореИрдВ рдиреАрд▓реЗ рд░рдВрдЧ рдкрд░ рд░реБрдХ рдЧрдпрд╛ред рдФрд░ рд╣рдо рдЗрд╕реЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЦрддреНрдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреБрдЫ рдФрд╕рдд рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдПрдХ рд▓рд╛ рдорд┐рдбрдирд╛рдЗрдЯ рдХрдорд╛рдВрдбрд░, рдПрдлрдПрдЖрд░-рдУрд╡реНрд╕реНрдХреА рдХрд▓рд░рд░ рдФрд░, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдмреЛрд░рд▓реИрдВрдб рдХреЗ рд╕рдордп рд╕реЗ рдЯрд░реНрдмреЛ рд╡рд┐рдЬрдиред рддреБрд░рдВрдд рд╣рдбрд╝рддрд╛рд▓реА рдХреЛрд╖реНрдардХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд░рдВрдЧ рдХреА рдХрдореА рд╣реИред рд╣рдо рдЗрд╕реЗ
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ
: perl.lang рдореЗрдВ
рд╡рд┐рд╢реЗрд╖-рд╕реНрдерд┐рд░рд╛рдВрдХ (рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╕рдВрднрд╡рддрдГ, рдЗрд╕реА рддрд░рд╣,
рдбреАрдлрд╝ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП
: рд╡рд┐рд╢реЗрд╖-рд╕реНрдерд┐рд░ )ред рдлрд╝рд╛рдЗрд▓ рдХреЛ
~ / .local / share / medit-1 / language-specs / рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЬреЛрдбрд╝реЗрдВ:
<styles> <style id="special-constant" _name="Brackets" map-to="def:special-constant"/>
<definitions> <context id="perl" class="no-spell-check"> <include> <context ref="special-constant"/>
<define-regex id="special-constant" extended="true"> \( | \) | \[ | \] | \{ | \} </define-regex> <context id="special-constant" style-ref="special-constant"> <match>\%{special-constant}</match> </context>
рддрджрдиреБрд╕рд╛рд░, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
~ / .рд▓реЛрдХрд▓ / рд╢реЗрдпрд░ / рдзреНрдпрд╛рди -рез / рднрд╛рд╖рд╛-рдЪрд╢реНрдорд╛ / рд╣рдорд╛рд░реА-рд╢реИрд▓реАред xml :
<style name="perl:special-constant" foreground="#66FFFF"/>
рдкрд░рд┐рдгрд╛рдо:

рдЕрдм рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЪреЗрдХ рдЬреЛрдбрд╝реЗрдВ:

рдХреБрдЫ рдЧрд▓рдд рд╣реИ ... рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд▓рд╛рдЗрди рдХреВрдж рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ
рдлрд╝рд╛рдЗрд▓_рдирд╛рдо: рд▓рд╛рдЗрди_рдирдВрдмрд░ [: рдкреЛрдЬрд┐рд╢рди] рдХреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╕реНрдерд┐рддрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрди рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрди рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде
~ / рдмрд┐рди / рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд░рдЦрд╛ рд╣реИ:
рд╣рдо рдЗрд╕реЗ
рдкрд░реНрд▓-рд╕реА рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЕрдм рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рд╣рдо рд╕рдВрдкрд╛рджрдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

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

filename = doc.get_filename() codefile = os.tmpname() rc = os.execute(string.format("/usr/bin/perl -c \"%s\" > \"%s\" 2>&1",filename,codefile)) if rc == 0 then tidyfile = os.tmpname() os.execute(string.format("/usr/bin/perltidy -nsak=\"if elsif unless for while\" -pt=0 -i=4 -bl -vt=2 -vtc=2 -boc -st \"%s\" > \"%s\"",filename,tidyfile)) out = io.open(tidyfile,"r") doc.select_all() doc.replace_selected_text(out:read("*a")) doc.save() os.remove(tidyfile) else out = io.open(codefile,"r") moo.error_dialog(string.format("Run syntax check!\n\n%s",out:read("*a"))) end os.remove(codefile)
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рдПрдХ рдЦрд╛рдореА рд╣реИ: рд╣рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдВрдбреЛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рдбрд╛рдпрд▓реЙрдЧ рджрд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ред рд▓реБрдЖ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рдорд╛рди рдкрд╛рдпрдерди рд▓рд┐рдкрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ: рдЗрд╕рд╕реЗ рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред Mededit рдХреЗ рд▓реЗрдЦрдХ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реЛрдЪрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ :)
рдЦреИрд░, рд╣рдо рдЗрди рд╕рднреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдЯрди рдкрд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ:


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