EditorConfig - рд╕рднреА рд╕рдВрдкрд╛рджрдХреЛрдВ / IDE рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕

EditorConfig рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЛрдб рд╕рдВрдкрд╛рджрдХреЛрдВ рдФрд░ IDE рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ (рдЗрд╕рдХреЗ рдмрд╛рдж рдмрд╕ рдПрдХ IDE)ред

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

.editorconfig рдлрд╛рдЗрд▓реЗрдВ jQuery , рд░реВрдмреА , рд╡рд░реНрдбрдкреНрд░реЗрд╕ , рдФрд░ рдХрдИ рдЕрдиреНрдп рдЬреИрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ ред

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ IDE рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ




рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


EditorConfig?


рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг .editorconfig рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 ##            . ##  "ini"       ,    . ##   ,    -    . # #   EditorConfig root = true #     unix-   [*] end_of_line = lf insert_final_newline = true #   4  [*.py] indent_style = space indent_size = 4 #     (  ) [*.js] indent_style = tab #     js    lib [lib/**.js] indent_style = space indent_size = 2 #    package.json or .travis.yml [{package.json,.travis.yml}] indent_style = space indent_size = 2 



EditorConfig рдлрд╛рдЗрд▓реЗрдВ рдереЛрдбрд╝реЗ рд╕рдВрд╢реЛрдзрд┐рдд INI рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ .editorconfig UTF-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
CRLF рдпрд╛ LF ред

рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдирд╛рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореБрдЦреМрдЯрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП [*.js] рдпрд╛ [index.html] ред

рд╕рд╛рдорд╛рдиреНрдп .ini рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк рдЕрдиреБрднрд╛рдЧ рдирд╛рдо рдореЗрдВ [ рдФрд░ ] рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВ: [file[123].js] ред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдиреАрдЪреЗ рдкрдврд╝реЗрдВред

рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдкреНрдкрдгреА рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП ; рдпрд╛ # ред



* - (/)

рдЙрджрд╛рд╣рд░рдг: [* .js]
hello.js // рдорд┐рд▓рд╛рди
hellojs // рдХреЛрдИ рдореБрдХрд╛рдмрд▓рд╛ рдирд╣реАрдВ
index.html // рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ
lib/source.js // рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ


** -

рдЙрджрд╛рд╣рд░рдг: [**ред Js]
hello.js // рдорд┐рд▓рд╛рди
hellojs // рдХреЛрдИ рдореБрдХрд╛рдмрд▓рд╛ рдирд╣реАрдВ
index.html // рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ
lib/source.js // рдорд┐рд▓рд╛рди


? -

рдЙрджрд╛рд╣рд░рдг: [рдирд░реНрдХред
hello.js // рдорд┐рд▓рд╛рди
hell.js // рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ


[name] - тАЬnameтАЭ

рдЙрджрд╛рд╣рд░рдг: [[abc] .js]
a.js // рдореИрдЪ
b.js // рдореИрдЪ
abc.js // рдХреЛрдИ рдореБрдХрд╛рдмрд▓рд╛ рдирд╣реАрдВ


[!name] - тАЬnameтАЭ

рдЙрджрд╛рд╣рд░рдг: [рдлрд╝рд╛рдЗрд▓ [2468] .js]
file1.js // рдорд┐рд▓рд╛рди
file2.js // рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ


{s1,s2,s3} -

рдЙрджрд╛рд╣рд░рдг: [рд╕реВрдЪрдХрд╛рдВрдХред {рдЬреЗрдПрд╕, рдПрдЪрдЯреАрдПрдордПрд▓}]
index.js // рдорд┐рд▓рд╛рди
index.html // рдорд┐рд▓рд╛рди
package.json // рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ


\ -

рдЙрджрд╛рд╣рд░рдг: [\ [abc \]ред Js]
a.js // рдХреЛрдИ рдореИрдЪ рдирд╣реАрдВ
[abc] .js // рдореИрдЪ


?


рд╕рдВрдкрд╛рджрдХ рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рд▓рдХреНрд╖реНрдп рднрд╛рд╖рд╛ рдХрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдирд╛ рдФрд░ рд╕рднреА IDE рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг github рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рдкреГрд╖реНрда рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗрд╕ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИрдВред

indent_style
рдорд╛рди: рдЯреИрдм, рд╕реНрдерд╛рди
рдЖрдкрдХреЛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдб рдпрд╛ рд╕реЙрдлреНрдЯ рдЯреИрдм рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

indent_size
рдорд╛рди: рд╕рдВрдЦреНрдпрд╛
рдЖрдкрдХреЛ рдирд░рдо рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдбреЗрдВрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

tab_width
рдорд╛рди: рд╕рдВрдЦреНрдпрд╛
рдЖрдкрдХреЛ рд╣рд╛рд░реНрдб рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдбреЗрдВрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрдВрдбреЗрдВрдЯ_рд╕рд╛рдЗрдЬрд╝ рд╕реЗ рдорд╛рди рд▓реЗрдЧрд╛ред

end_of_line
рдорд╛рди: lf, cr, crlf
рдЖрдкрдХреЛ рдпрд╣ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд┐рд░реЛрдВ рдкрд░ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред

charset
рдорд╛рди: latin1, utf-8, utf-8-bomb, utf-16be, utf-16le
рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
Utf-8-bomb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ

trim_trailing_whitespace
рдорд╛рди: рд╕рддреНрдп, рдЕрд╕рддреНрдп
рдЖрдкрдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд┐рд░реЛрдВ рд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

insert_final_newline
рдорд╛рди: рд╕рддреНрдп, рдЕрд╕рддреНрдп
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рд╣реЛрдЧреАред

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

Ignore
рдХреБрдЫ рдлрд╛рдЗрд▓реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдорд┐рдирд┐рдлрд╛рдЗрдЬреНрдб рдлрд╛рдЗрд▓реЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдЫреВрддреА рд░рд╣рддреА рд╣реИрдВред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрд┐рд╕реА рднреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ ignore рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 #    JS  CSS [*.{js,css}] indent_style = space indent_size = 2 #     JS  CSS . [*.min.*] indent_style = ignore trim_trailing_whitespace = false insert_final_newline = ignore 


?


EditorConfig рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рд╕рднреА рдкреНрд░рдореБрдЦ рдЖрдИрдбреАрдИ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХрд╛рд░реНрдп рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рд▓рд╛рдЗрди рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдЧрд╛: max_line_length
рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдИ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, max_line_length рдЧреБрдг рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ vim рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


EditorConfig


рдпрджрд┐ рдпрд╛ рддреЛ EditorConfig рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рд╕реА рдЕрдкрд░рд┐рдЪрд┐рдд рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред

рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреЛ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ:

/IDE
рдХреБрдЫ рд╕рдВрдкрд╛рджрдХреЛрдВ / IDE рдХреА рдЕрдкрдиреА рдЦрд╝рд╛рд╕рд┐рдпрддреЗрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jEdit рдореЗрдВ рдЕрдзрд┐рдХ рдПрдирдХреЛрдбрд┐рдВрдЧ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ jedit_charset рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ jedit рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИред

/
рддреГрддреАрдп-рдкрдХреНрд╖ рдХрд╛рд░реНрдпрдХреНрд░рдо рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ EditorConfig рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рднрд╛рд╖рд╛рдУрдВ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, npm CodePainter рдореЙрдбреНрдпреВрд▓, рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ EditorConfig рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ (рдПрдХрд▓ рдпрд╛ рджреЛрд╣рд░реЗ) рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (qoute_type) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╛ рдХреЛрд╖реНрдардХ (рд░рд┐рдХреНрдд рд╕реНрдерд╛рди_in_brackets) рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

curly_bracket_next_line
рдмреНрд░реЗрд╕ рдХреЛ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдпрд╣ рд╣реИ

java_class_path
рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

language
рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЬрдм Jinja2 рдЬреИрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди .html рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдкреВрд░реА рд╕реВрдЪреА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ (рд╕рдВрд▓рдЧреНрди)

?


рдЬрдм рдкреНрд▓рдЧрдЗрди рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рдкрд░ рдЪрдврд╝рд╛рдИ рдХрд░реЗрдЧрд╛, рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд░реВрдЯ рддрдХ, рдФрд░ рдкрде рдкрд░ рдкреНрд░рддреНрдпреЗрдХ .editorconfig рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред
рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХрд░реАрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдЕрдзрд┐рдХ рд╣реИред

рдЗрд╕ рдкрде рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП: /Users/username/code/project/main.js , рдкреНрд▓рдЧрдЗрди .editorconfig рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ .editorconfig рдлрд╝рд╛рдЗрд▓ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛:

 /Users/username/code/project/.editorconfig /Users/username/code/.editorconfig /Users/username/.editorconfig /Users/.editorconfig /.editorconfig 

рдЖрдк рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдПрдХ config рдлрд╛рдЗрд▓ рдореЗрдВ root=true рд╕реЗрдЯ рдХрд░рдХреЗ рдЦреЛрдЬ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред

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


?


рдЬрдм Parser .editorconfig рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИред
рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдореЛ рдмрдирд╛рдпрд╛ [рдЬреЛ рдлрд┐рд▓рд╣рд╛рд▓ рдХрд┐рдВрдбрд░рдбреНрд░реИрдЧрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЦреНрдпрд╛рдд рд╣реИ, рдкрдереЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрдЧреНрдЧреА рд╣реИ], рдЬрд╣рд╛рдВ рдЖрдк рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ



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

editorconfig-tools [ editorconfig-tools ]

рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИред


ECLint [ ECLint ]

рдпрд╣ Editorconfig-tools рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ .editorconfig рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ .editorconfig рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рднреАред


CodePainter [ CodePainter , рдПрдирдкреАрдПрдо ]

.editorconfig рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдореЗрдВ рдЬреЗрдПрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред


, ?


рдкреНрд▓рдЧ-рдЗрди рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ (рдЧреБрдард▓реА) рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд▓рдЧ-рдЗрди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рд╕реА , рдЬрд╛рд╡рд╛ , рдкрд╛рдпрдерди рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реНрд╡рдпрдВ рд╕реНрд╡рд░реВрдкрдг рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреБрдХреНрдд IDE рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

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

рдЕрдЧрд░ рдкрд╛рдардХреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рд╣реИ рдЬреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдП (рд╕рдВрд▓рдЧреНрди рд╣реИред)


Windows


рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдПрдХ .editorconfig рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ .editorconfig. рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ .editorconfig. рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ .editorconfig рдХрд░ .editorconfig ред



EditorConfig рдЯреАрдо рдиреЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдмрд╣реБрдд рд╕реА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ, рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:


рдпрджрд┐ рдкрд╛рдардХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╣реИрдВ (рд╕рднреА рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ):


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

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


All Articles