์ ์์ ๋ํด ์ผ๋ถ ์ฝ๋๋ฅผ ์คํํ๊ณ ํญ๊ณผ ๊ณต๋ฐฑ ์ด ๊ฒฝ์ฐ .
์ฐ๋ฆฌ๋ ํญ ๋ ๊ณต๊ฐ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ์ ํฌ๋ฅผ ์กฐ์งํ ์ ์์ง๋ง ์๋ฌด๋ ๊ฑฐ๊ธฐ์์ ์น๋ฆฌํ์ง ๋ชปํฉ๋๋ค.
์๋์ ์คํ์ผ์ ๊ทธ๋๋ก ์ ์งํ๊ณ ์ ์ฉํด์ผ ํฉ๋๊น?
(#1314๊ฐ ์๋ ๊ฒฝ์ฐ) ํ ์คํฐ์์ detect-indent ์ TSLint๋ฅผ ๊ฒฐํฉ
์ ํฌ๊ฐ ์์ต๋๋ค. ํญ์ ์ฌ์ฉํฉ๋๋ค.
๋๋ ๋น์นธ์ ํฌํํ๋ค!
๋ด๋ถ ๊ฐ๋ฑ์ ์์ํ์! :์๋ค:
ใ . ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํ์๋กํ์ง ์์ต๋๋ค. ํ์ง๋ง ์๋ค์ํผ... ์ฐ๋ฆฌ๊ฐ ํญ์ ์ฌ์ฉํ๊ณ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋ฐฉ์(2์นธ ๋๋ 4์นธ)์ผ๋ก ์๋ฒฝํ๊ฒ ์ ๋ ฌ๋ ์ฝ๋๋ฅผ ๊ฐ๊ณ ์๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ด ๋ํ๋ฅผ ํ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฅ.
๋๋ ํญ์ ์ข์ํ๋ค.
ํ์ง๋ง VisualStudio์ ๊ธฐ๋ณธ ์ค์ ์ ๋ฐ๋ผ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ค์ฌ์ฐ๊ธฐ ํฌ๊ธฐ๊ฐ 4์ธ ๊ณต๋ฐฑ(VS ๊ธฐ๋ณธ๊ฐ).
๊ทํ์ ๋ชจ๋๊ฐ ๋ง์กฑํ ์ ์๋๋ก ๊ฐ์ ํญ์ ์ํํ๋๋ก IDE๋ฅผ ์ค์ ํ์ญ์์ค.
์ ์ค์ ๋จ์ด์ ์ ๋ ฌํ๋ ค๋ ์ฝ๋์ ๋ํด [ํญ] [ํญ] [๊ณต๋ฐฑ] [๊ณต๋ฐฑ] [๊ณต๋ฐฑ]์ ๋ณด๊ณ ์ถ์ง ์์ต๋๋ค.
์ผ๊ด๋ ์คํ์ผ์ ์ ์ฉํ๊ธฐ ์ํด TSLint ๊ท์น์ ์์ฑํ๊ณ ์ถ์ ์ฌ๋์ด ์์ผ๋ฉด(์: ํญ ๋๋ ๊ณต๋ฐฑ 4๊ฐ, ๋ ๋ค ์๋) ์ ํ ์คํฐ์์ ์คํํฉ๋๋ค(TSLint ์ง์ ์์).
์คํ์ด์ค! FWIW JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ณต๋ฐฑ์ ์ฌ์ฉํฉ๋๋ค(๊ฐ๋/jquery)
์ด๊ฒ์ ์๋ง๋ Crockford ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค : http://javascript.crockford.com/code.html
๋ค์ฌ์ฐ๊ธฐ์ ๋จ์๋ 4์นธ์ ๋๋ค. (21์ธ๊ธฐ์ ์ด ๊ธ์ ์ฐ๋ ํ์ฌ) ์ฌ์ ํ ํญ ์คํฑ ๋ฐฐ์น์ ๋ํ ํ์ค์ด ์๊ธฐ ๋๋ฌธ์ ํญ ์ฌ์ฉ์ ํผํด์ผ ํฉ๋๋ค. ๊ณต๋ฐฑ์ ์ฌ์ฉํ๋ฉด ๋ ํฐ ํ์ผ ํฌ๊ธฐ๋ฅผ ์์ฑํ ์ ์์ง๋ง ํฌ๊ธฐ๋ ๋ก์ปฌ ๋คํธ์ํฌ์์ ์ค์ํ์ง ์์ผ๋ฉฐ ๊ทธ ์ฐจ์ด๋ ์ถ์๋ฅผ ํตํด ์ ๊ฑฐ๋ฉ๋๋ค.
TS๋ JS์ด๊ธฐ ๋๋ฌธ์ ์ ๋ง ์ค์ํด์ผ ํฉ๋๋ค.
๊ธ์, Crockford๋ ์ฝ๊ฐ ์ฌ์ ๊ถ์ ๋์์ด์ด๋ฏ๋ก ๊ทธ๋ฅผ ์๊ธ ํ ์๊ณผ ํจ๊ป ๋ฐ๋ ค๊ฐ๋๋ค.
์ผ๋ง ์ Reddit์ ๋๊ตฐ๊ฐ๊ฐ Github์ ์๋นํ ๋ฉ์ด๋ฆฌ๋ฅผ ๋ถ์ํ ํต๊ณ๊ฐ ์์๋๋ฐ ๊ณต๋ฐฑ์ ์ฐฌ์ฑํ์ฌ 60% / 40%์์ต๋๋ค. ์ ์ ์ ๊ฐ ์ง๊ธ๊น์ง ์ผํ๋ ๋ชจ๋ ๊ณณ์ ํญ์ด์์ต๋๋ค(๊ทธ ์ค ํฐ ๋ถ๋ถ์ AS3์ด์์ง๋ง). ๊ทธ๊ฒ์ ์์ ํ ์ ์๋ํฉ๋๋ค. ์ฝ๋ ์ ๋ ฌ์ ์๊ฐ ๋ญ๋น์ด์ง๋ง ํ์ํ ๊ฒฝ์ฐ ์ค๋งํธ ํญ๋ ์ ์๋ํฉ๋๋ค.
๋ด๊ฐ ์์ ๊ณ ์ถ์ ์ง์ง ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ _indents_ ํผํฉ๋์ด ์์ต๋๋ค. ์ ์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํด ์ดํต์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ ์ด๋ _ํ์ผ๋น_ ์ผ๊ด์ฑ์ด ์์ด์ผ ํฉ๋๋ค.
์ด๋ ์์ ์์ ์ฐ๋ฆฌ๋ #2228์ ํ ๊ฒ์ด์ง๋ง ๊ทธ๊ฒ์ ๊ฝค ํฐ ๋จ๊ณ์ ๋๋ค.
๊ธ์, Crockford๋ ์ฝ๊ฐ ์ฌ์ ๊ถ์ ๋์์ด์ด๋ฏ๋ก ๊ทธ๋ฅผ ์๊ธ ํ ์๊ณผ ํจ๊ป ๋ฐ๋ ค๊ฐ๋๋ค.
๋์
์ง๋ฃจํ๋ค๋ฉด JSON.js์ ๋ํ pull ์์ฒญ์ ์ฝ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ณํจ์์ด ๊ทธ๋ค์ Doug์ ์ฝ๊ฐ ์กฐ์กํ ๋ฐฉ์์ ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ ์ํด ์ ์ถ๋์์ต๋๋ค. ๋ชจ๋ ๊ฑฐ๋ถ๋ ๊ณต๋ฐฑ์ ๋๋ค :-)
๋ฐฉ๊ธ ์ด๊ฒ์ ๋ณด์์ต๋๋ค : https://github.com/iplabs/typescript/blob/languageService-v2/src/services/languageService.ts#L199 -L213 ๊ธฐ๋ณธ๊ฐ์ ํญ์ด ๊ณต๋ฐฑ์ผ๋ก ๋ณํ๋ 4๊ฐ์ ๊ณต๋ฐฑ์ ๋๋ค.
export class EditorOptions {
public IndentSize: number = 4;
public TabSize: number = 4;
public NewLineCharacter: string = "\r\n";
public ConvertTabsToSpaces: boolean = true;
public static clone(objectToClone: EditorOptions): EditorOptions {
var editorOptions = new EditorOptions();
editorOptions.IndentSize = objectToClone.IndentSize;
editorOptions.TabSize = objectToClone.TabSize;
editorOptions.NewLineCharacter = objectToClone.NewLineCharacter;
editorOptions.ConvertTabsToSpaces = objectToClone.ConvertTabsToSpaces;
return editorOptions;
}
}
@basarat ์ผ๋ง๋ ๋ง์กฑ์ค๋ฝ์ต๋๊น!
CRLF๋ ์ฝ๊ฐ ๋ฐ๋ณด ๊ฐ์ง๋ง ์ด์จ๋ .
์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ํด ๊ฐ์ผํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ typescript-formatter๋ฅผ ์คํํ๊ณ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฃผ์ธ๋, ๋์ด์ฅ์ด๋ผ๋.. ์ด .d.ts ํ์ผ 562๊ฐ, ํ์ผ 446๊ฐ๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค..
https://github.com/Bartvds/DefinitelyTyped/tree/34907936bfc22562f30bb09ee82282ca0515b8b3
https://github.com/Bartvds/DefinitelyTyped/commit/34907936bfc22562f30bb09ee82282ca0515b8b3
์ฃ์กํฉ๋๋ค. ๋๋ฌด ๋ง์ ํ์ผ(446๊ฐ)์ด ๋ณ๊ฒฝ๋์ด ์ ์ฒด diff๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
ํค.
ํ ์คํธ๋ ์ํํ์ต๋๋ค.
https://github.com/Bartvds/DefinitelyTyped/tree/46f9d17b2b074c887bff35b06112070b28924248
https://github.com/Bartvds/DefinitelyTyped/commit/46f9d17b2b074c887bff35b06112070b28924248
์ฃ์กํฉ๋๋ค. ๋๋ฌด ๋ง์ ํ์ผ(442๊ฐ)์ด ๋ณ๊ฒฝ๋์ด ์ ์ฒด diff๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
๋ฉ์ง. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๊ธฐ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ด ๋ถ๋ถ์ด์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ธ์ง ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ฌ๊ฐํ ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ ์ค ์์ฑ์ ์ง์ฅ์ ๊ฐ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ฐ์๋ค์ธ๋ค๋ฉด ์๋ง๋ ํ ์คํฐ์์ ํ์์ ์ ์ฉํด์ผ ํ ๊ฒ์ ๋๋ค. ํ ์คํฐ์ TSLint ์ค์ ์ด ์์ผ๋ฏ๋ก(๋นํ์ฑํ๋จ) ๋ง์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์๋ง๋ ์ฐ๋ฆฌ๋ ํ ์คํฐ๋ฅผ ํ๋ฅญํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ์์ผ๋ก ํฌ๋งทํฐ๋ฅผ ์คํํ๊ณ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ CLI ์ ํธ๋ฆฌํฐ๋ก ๊ฐ์ ํด์ผ ํฉ๋๋ค(์ง๊ธ์ ๋ก์ปฌ์์ ์๋ํ์ง๋ง ๊นจ๋ํ CLI API ๋ฑ์ผ๋ก ๊ฐ์ ๋์ด์ผ ํจ).
๋น ๋ฅผ์๋ก ์ข๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ข์ ์์์ ๋น๋์ ์ญ์ฌ๋ฅผ ์์ง ์์ ๊ฒ ์ ๋๋ค. GitHub๊ฐ diff ๋ณด๊ธฐ์์๋ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ์ผ๋ฉด ํ์ต๋๋ค.
์, ํ์ง๋ง git blame -w -M
๊ฐ ์จ๋ผ์ธ์์ ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ์ง์ฆ๋๋ ์ผ์
๋๋ค. ๋ฐฉ๊ธ Github ์ง์ํ์ ์ด๋ฉ์ผ์ ๋ณด๋์ต๋๋ค.
@Bartvds , GitHub์์ ์๋ต์ด
GitHub ๋น๋ ๋ณด๊ธฐ์์ ๊ณต๋ฐฑ์ ๋ฌด์ํ๋ ๊ฒ์ ํ์ฌ ๋ถ๊ฐ๋ฅํ์ง๋ง ๋์ค์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ ์ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ์์ ๋ณผ ์ ์๋๋ก ๊ธฐ๋ฅ ์์ฒญ ๋ชฉ๋ก์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
๋ฐ๋ผ์ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๋๋ ๋ชจ๋ ๊ฒ์ ์๊ณ ์๋ค๊ณ ๊ฐ์ ํ๋ ์คํ์ผ ๊ฐ์ด๋๊ฐ ๋ญ๋ผ๊ณ ๋งํ๋ ์๊ดํ์ง ์์ต๋๋ค. ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ํญ์ ์ ๋ ฌ์ด ํฌํจ๋ ๋ ๊ฐ๋ฐ์์ ์๋๋ฅผ ๋ณด์กดํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ํ ๋ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฐธ์กฐํ์ญ์์ค.
์ฝ๋ ์ ๋ ฌ(๊ทํ์ ๊ฒฝ์ฐ var
๋ฐ =
์ ์ ๋ ฌ) ๊ฐ๋
์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฆฌํฉํ ๋ง์์ ์ ์งํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋์ ๊ทธ๋ฅ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋ํ ์๋ ์์ ๋๊ตฌ๋
๋ํ
public string FirstName { get; set; } => public string FirstName { get; set; }
public string Surname { get; set; } => public string Surname { get; set; }
public int Age { get; private set; } => public int Age { get; private set; }
private Address Address { get; set; } => private Address Address { get; set; }
์ ์์ฑ์ ์ถ๊ฐํ๋ฉด ์ด ๋ชจ๋ ์ค์ _reformat_ํด์ผ ํฉ๋๋ค. ๊ฒํ ํ๊ธฐ์ ์ข์ ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋๋๋ค.
์ํฌํ๋ก๊ฐ ๋ค๋ฅผ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ํจ์ฌ ๋ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ง๋ง(์ํธ๋ก์์ ์ฝ๋), ๋๋ ๊ทธ๊ฒ์ ์ฎ๊ธฐ๋ ํ์ ๊ฒฝํํด ๋ณด์ง ๋ชปํ์ต๋๋ค.
๊ฐ์ฅ ์ด์ํ ์ผ์ ๋๋ค. ํญ๊ณผ ๊ณต๋ฐฑ์ ์๋ ์์ด๋์ด์ ๋ํ ๋์ ๋ณธ๋ฅ์ ์ธ ๋ฐ์์ ๋ชธ์ ๋จ๋ฉฐ "๊ทธ๋ฅ ๋๋ฝ๋ค!"๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ ๋๋ค.
๋๋ ์์ ํ ๋นํฉ๋ฆฌ์ ์ด๋ผ๋ ๊ฒ์ ์๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ์ผ๋ก ์ง์งํฉ๋๋ค. ์ธ๊ฐ์ด ์ด์ํด...
@johnnyreilly ๋น์ ์ ์ผ๋ฐ์ ์ธ ์คํด์ ํฌ์์์ ๋๋ค. ๋ค์ฌ์ฐ๊ธฐ์ ํญ์ ์ฌ์ฉํ๊ณ ์ ๋ ฌ์ ๊ณต๋ฐฑ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณต๋ฐฑ์ด ์๋ ํญ์ _ํผํฉ_ํ๋ ๊ฒ๊ณผ ๋ค๋ฆ ๋๋ค. ๋น์ ์ ๋ถ๋ช ํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฝ์ง ์์์ต๋๋ค.
์ ๋ ฌ์ ์ํด ํญ์ ์ฌ์ฉํ๋ ๊ฒ์ ์ฌ๋๋ค์ด ์๋ชปํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ํญ์์ ๋๋ฌด ๋ง์ ์ฌ๋๋ค์ด ์ ํ ๊บผ์ง ์ด์ ์ ๋๋ค. ์ฒ์๋ถํฐ ์ ๋๋ก ํ๋ค๋ฉด ์๋ฌด๋ ํญ ๋๋น๋ฅผ ๋ค๋ฅธ ํฌ๊ธฐ๋ก ํ์ํ๋๋ก ํธ์ง์์ ๊ธฐ๋ณธ ์ค์ ์ ๋ณ๊ฒฝํ์ ๋ ๋์น์ฑ์ง ๋ชปํ์ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์์ ์ ๋๋ฉ์ด์ GIF๊ฐ ์ฌ๋๋ค์ด ์ด๋ป๊ฒ ์๋ชปํ๊ณ ์๋์ง ๋ณด์ฌ์ฃผ๋ ค๋ ๊ฒ์ ๋๋ค.
@basarat , ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ฝ๋ ์ ๋ ฌ์ด ์๋ ํ๋ก์ ํธ์์๋ ๊ฑฐ์ ์์ ํ์ง ์์ง๋ง ๊ฐ๋ ๋ด ๋๋ค. ํ๋ก์ ํธ์ ๊ฐ๋ฐ์๊ฐ ์ ๋ ฌ์ ์ ํ ์ฌ์ฉํ์ง ์๋๋ก ๊ฐ์ ํ ์ ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ๊ณต๋ฐฑ์ด ์๋ ๋ฆฐํธ ๋๊ตฌ๊ฐ ์ฝ๋๋ฅผ CST๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ฒ ์ธ์๋ ๋ค์ฌ์ฐ๊ธฐ์ ์ ๋ ฌ์ ์ํด ์๋๋ ๊ฒ์ ๊ตฌ๋ณํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค(๊ณผ๋ํ ๋ฐฉ๋ฒ).
๋ฌผ๋ก , ์ด ํ๋ ์๋์ ๋ค์ฌ์ฐ๊ธฐ์ ๊ณต๋ฐฑ์ ์ฌ์ฉํ์ง ์๋ ๋ค๋ฅธ ๋ง์ ์ด์ ๊ฐ ์์ต๋๋ค. ํธ์ง์๋ ํญ์ ์ ๋ค๋ฃจ์ง๋ง ๊ณต๋ฐฑ์ ์ ํ ๋ค๋ฃจ์ง ์์ต๋๋ค. ํ์ดํ ํค ํ์, ์ญ์ , ๋ฐฑ์คํ์ด์ค - ๊ณต๋ฐฑ์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํ๋์ ๋จ์๋ก ์ทจ๊ธํ์ง ์์ต๋๋ค. Visual Studio, Sublime, PHPStorm ๋ฐ Notepad++๋ฅผ ์ฌ์ฉํด ๋ณด์์ง๋ง ๋ชจ๋ ๋ค์ฌ์ฐ๊ธฐ ๊ณต๋ฐฑ์ ๋ํ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ์ดํ ํค ํ์, ์ญ์ , ๋ฐฑ์คํ์ด์ค - ๊ณต๋ฐฑ์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํ๋์ ๋จ์๋ก ์ทจ๊ธํ์ง ์์ต๋๋ค.
ํ์: Ctrl + ํ์ดํ ํค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ณต๋ฐฑ(์ค์ ๋ก๋ ๋ชจ๋ ๊ณต๋ฐฑ) + ๋จ์ด๋ฅผ ํํํฉ๋๋ค.
์ญ์ /๋ฐฑ์คํ์ด์ค์ ๊ฒฝ์ฐ: ๋จ์ด ์ ํ์ ๊ฒฝ์ฐ ๋จ์ด ํ์ฅ(reshaper ๊ธฐ๋ณธ๊ฐ์์ ctrl+w)๊ณผ ์ ํ ํด์ (ctrl+shift+w)๋ฅผ ์ฌ์ฉํฉ๋๋ค. _inside_ ๊ณต๋ฐฑ์ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ง๋ง ํญ(๋ค์ฌ์ฐ๊ธฐ ์ฆ๊ฐ)๊ณผ ํญ ์ด๋(๋ค์ฌ์ฐ๊ธฐ ๊ฐ์)์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
@jedmao ์ฌ์ค ๋๋ ๋น์ ์ ์์ ์ ์ดํดํ์ต๋๋ค. ๋๋ ๋ณธ๋ฅ์ ์ธ(๊ทธ๋ฆฌ๊ณ ๋น์ด์ฑ์ ์ธ) ๋ฐ์์ ๊ณต์ ํ๊ณ ์์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ๋งํ์ง ์์๋ค : ์ค๋ง์ผ :
@johnnyreilly ์ก์๋ค.
@basarat ์ผ๋ถ ๊ณต๋ฐฑ ์๋๋ฆฌ์ค์์ Home
๋ฐ End
ํค๋ฅผ ์ฌ์ฉํฉ๋๋ค. Ctrl + arrow key
ํ์์ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ์ง๋ง ํญ์ ์๋ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ ์ ์ ์ ์ธ ์ผ๊ด์ฑ ๋๋ฌธ์ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ์
๋๋ค. ๋ค์ ์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
for (var i = 0; i < 10; i++) {
if (i > 5) {
console.log('I am greater than 5');
}
}
๋ด ์ปค์๊ฐ 3ํ์ ์์ ๋ถ๋ถ์ ์๊ณ 2ํ์ ์์ ๋ถ๋ถ๊น์ง ํ์ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
Sublime์์ ๊ทํ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ก ํ ์ ์์ต๋๋ค.
Up
, Hold Ctrl
, Left
, Release Ctrl
(4 ๋
ผ๋ฆฌ์ ๋จ๊ณ)Hold Ctrl
, Left
, Release Ctrl
, Up
, Hold Ctrl
, Right
, Left
, Release Ctrl
(8 ๋
ผ๋ฆฌ์ ๋จ๊ณ)Visual Studio์์ ๋ ๋ฒ์งธ ์๋๋ฆฌ์ค๋ 7๊ฐ์ ๋ ผ๋ฆฌ์ ๋จ๊ณ๋ก ์ค์ผ ์ ์์ต๋๋ค.
Hold Ctrl
, Left
, Release Ctrl
, Up
, Hold Ctrl
, Right
, Release Ctrl
(7 ๋
ผ๋ฆฌ์ ๋จ๊ณ)์ค์ ํญ ๋ฌธ์์ ๊ฒฝ์ฐ ์ต๋จ ๊ฒฝ๋ก๋ ์์ ์ ํค๊ฐ ์๋ ๋จ 2๊ฐ์ ๋ ผ๋ฆฌ์ ๋จ๊ณ์ ๋๋ค. ๋ ๊ฐ๋จํ ์ ์์ต๋๋ค.
Left
, Up
๋จ์ด ์ ํ์ด ๊ณต๋ฐฑ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ฐฑ์คํ์ด์คํ๋ ๋ฐ ์ด๋ป๊ฒ ๋์์ด ๋๋์ง ์ ์ ์์ต๋๋ค. ๋๋ ์ฑ๊ณตํ์ง ์๊ณ Visual Studio์์ ๊ทธ๊ฒ์ ์๋ํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ Visual Studio์ฉ TabSanity ํ๋ฌ๊ทธ์ธ์ ๋ง๋ ์ด์ ์ ๋๋ค. ๋ถํํ๋, ๋ค๋ฅธ ํธ์ง์๋ค์ ์ํ ๊ทธ๋ฌํ ํ๋ฌ๊ทธ์ธ์ ์์ง ๋ชปํฉ๋๋ค.
์ค์ ํญ ๋ฌธ์์ ๊ฒฝ์ฐ ์์ ์ ํค๊ฐ ์๋ ํญ์ 2๊ฐ์ ๋ ผ๋ฆฌ์ ๋จ๊ณ์ ๋๋ค. ๋ ๊ฐ๋จํ ์ ์๋ค
:+1: ๋น์ ์ ์ฅ์ ์ด ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋์ด ์ฃผ์์ ํธ์งํ๋ฉด ctrl ๋ฑ์ด ๋ด VS์ ๋์ผํ๊ฒ ์๋ํ๋ฏ๋ก ๋ด ์ต๊ด์ด ์ด์ด์ง๋๋ค.)
๋จ์ด ์ ํ์ด ๊ณต๋ฐฑ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ฐฑ์คํ์ด์คํ๋ ๋ฐ ์ด๋ป๊ฒ ๋์์ด ๋๋์ง ์ ์ ์์ต๋๋ค.
๋ด ๋์, ๋ด ์ค๋ช
์ด ํผ๋ ์ค๋ฌ์ ์ต๋๋ค. "๋จ์ด" ์ ํ ๋นํธ๋ฅผ ๋ฌด์ํ์ญ์์ค. I rarely need to select inside whitespace though, just use tab (increase indent) and shift tab (decrease indent).
์ ์ง์คํ์ธ์. ๊ฐ๊ฒฉ ๋ค์ฌ์ฐ๊ธฐ๊ฐ ์ ์๋ํฉ๋๋ค.
์ค์ ํญ ๋ฌธ์์ ๊ฒฝ์ฐ ์์ ์ ํค๊ฐ ์๋ ํญ์ 2๊ฐ์ ๋ ผ๋ฆฌ์ ๋จ๊ณ์ ๋๋ค.
์ด๊ฑด ์ด๋ค๊ฐ์ :
public string FirstName { get; set; }
public string Surname { get; set; }
public int Age { get; private set; }
private Address Address { get; set; }
์ ์ฒ์๋ถํฐํ์ง ์์ ๊ฒ์
๋๋ค Age
์ ์ ํ ๋ณํ์ Surname
IE์ string
์ด์ ๋ผ์ธ์์ด ๊ฐ์ ์ผ Ctrl
์๋๋ฆฌ์ค?
@basarat ์ ๋ Tab
์ Shift+Tab
์ข
๊ต์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ์ค์ ์ฝ๋์ ์ฌ์ฉ๋ฉ๋๋ค. Shift+Tab
ํญ์ backspace
ํค ๋๋ฆ์ ๋ํ ์ข์ ๋ณ์นญ์ด๋ผ๊ณ ๋งํ ์ ์์ง๋ง backspace
๋งํผ ๊ฐ๋จํ๊ฑฐ๋ ์ง๊ด์ ์ด์ง ์์ต๋๋ค.
Ctrl+Delete
๋ Delete
ํค์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ณ์นญ์ด์ง๋ง ๋ ์ด์์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ญ์ ํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๋ฐ๋ฉด์ ํญ์ ๊ฐ๋จํ Delete
ํค๋ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํ๋๋ง ์ ๊ฑฐํฉ๋๋ค. ๋๋๋ก ์ผํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ผํ์ง ์๊ธฐ ๋๋ฌธ์ ์ ํ ์ฌ์ฉํ์ง ์์ต๋๋ค(์ ์ ์ ์ผ๊ด์ฑ).
๋๋ ๋น์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ด๋ถ ๊ณต๋ฐฑ์ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ต๋๋ค. ํ๊ฒ ๋ค๊ณ ์ ์ํ ์ ์ด ์์ต๋๋ค. ๋๋ ๊ณต๋ฐฑ์ ์ ํํ์ง ์๊ณ ์ด๋๊ฐ๋ก ์ด๋ํ๊ธฐ ์ํด ๊ทธ๊ฒ์ ํ์ํฉ๋๋ค. ์์ ์ ๋ ฌ ์๋ ํ์คํ Ctrl + arrow key
ํ์์ ์ฌ์ฉํ ๋์
๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ ์ด์ ์ ๋งํ๋ฏ์ด Ctrl + arrow key
ํ์์ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ์
๋๋ค. ์๋ํ๋ฉด ๋น์ ์ด ์ง์ ํ ์๋๋ฆฌ์ค๊ฐ ์๋ง๋ ์ ๊ฐ ์ฌ์ฉํ ์ ์ผํ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ฒฐ๊ตญ, ๋๋ฅผ ๊ฐ์ฅ ๊ดด๋กญํ๋ ๊ฒ์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ํญ์ด ์๋ ํ์ผ๊ณผ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ๊ณต๋ฐฑ ์ฌ์ด๋ฅผ ์ ํํ ๋ ๊ทผ์ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ ํ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ํญ์ด ์๋ ํ์ผ์์ ํจ์จ์ ์ธ(๊ฐ์ฅ ์ ์ ๋ ผ๋ฆฌ์ ๋จ๊ณ) ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ๊ณต๋ฐฑ์ด ์๋ ํ์ผ์์๋ ์๋ํ์ง ์์ต๋๋ค. ์ํํ ๊ฒฝํ์ ์ ๊ณตํ์ง ์๋ ํธ์ง์๋ฅผ ๋น๋ํ ์ ์์ง๋ง, ํธ์ง์๊ฐ ๋ค์ฌ์ฐ๊ธฐ์ ์ ๋ ฌ์ ๋ํด ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ๊ณต๋ฐฑ์ด ์๋ ํ์ผ์์ ๊ฐ์ ์ ํ๋ ๊ฒ์ ๋ฌธ์ ๊ทธ๋๋ก(CST ์์ด) ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ณต์ ํ์ง ์์ต๋๋ค.
๋์ฑ ์ํ๊น์ด ๊ฒ์ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ์์์ฐจ๋ฆฌ๊ธฐ ์ด๋ ต๋ค๋ ์ ์ด๋ค. ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ๊ณต๊ฐ์ ์์ํ ์ ์ ๋๋ค... ๋ฟ์ด ์์ต๋๋ค.
์ต์ข ๊ฒฐ๋ก ์? ๋๋ ๋จ์ง ๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค, ๋น์ ์ ๋๋์ฒด ๋ฌด์์ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
์ต์ข ๊ฒฐ๋ก ์? ๋๋ ๋จ์ง ๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค, ๋น์ ์ ๋ฌด์์ ์ฌ์ฉํ๋
ํ์ผ๋ณ๋ก ์ผ๊ด์ฑ์ด ์์ต๋๋ค. ํ์ผ์ ํผํฉํ์ง ๋ง์ญ์์ค.
@basarat ๋งํ๊ฐ ์๋ชป๋์์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ Apple ์ง์์ด ๊ณต๋ฐฑ์ ์ฌ์ฉํ๊ณ Microsoft ์ง์์ด ํญ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@jedmao ์ ๋ ms ์ฌ๋์ด๊ณ ๊ณต๋ฐฑ์ ์ฌ์ฉํฉ๋๋ค :)
๋๋ #4211์ด ์ข์ ์ ์์ด๋ผ๊ณ ์๊ฐํ๋ค.
airbnb /javascript styleguide์์ ์ํํ ๋๋ก 2๊ฐ์ ๊ณต๋ฐฑ์ ์ฌ์ฉํ ๊ฒ์ ์ ์ํฉ๋๋ค.
์ ์: ์ ๋ ฅ ์ค์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค์ ํ ์ฝ๋ฉ ํ์ค์ ์ฌ์ฉํ์ญ์์ค. ์ ๋ ฅ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ณต๋ฐฑ, ์์๋ฐ์ดํ ๋ฐ LF๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ํ ์ ์์์ ๋์ผํ ์์ ์ ์ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ณต๋ฐฑ ๋ ํญ ์ธ์๋ฅผ ํผํ ์ ์์ต๋๋ค.
์ ์ผํ ๋ฌธ์ ๋ ์ด ๊ท์น์ ์ ์ฉํ๊ธฐ๊ฐ ์ฝ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํํ๊ณ ์ผ๊ด์ฑ์ ์ ์งํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ท์น์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ์น ์ฌ์ดํธ์ ๋ฐ๋ฅด๋ฉด ๊ณต๋ฐฑ๊ณผ ์์ ๋ฐ์ดํ์ ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ํธํ๋ ๊ฒ์ ๊ณต๋ฐฑ(4)๊ณผ _ํฐ ๋ฐ์ดํ์ด์ง๋ง ๋ชจ๋ ๊ฒ์ด ์ผ๊ด์ฑ์ด ์๋ค๋ ์๋ฏธ๋ผ๋ฉด ์์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ต๋๋ค.
ํญ์ ์ฐฌ์ฑํ๋ ์ฌ์ฉ์์ ํญ ๊ณต๊ฐ์ ์ ํธํ๋ ์ฌ์ฉ์๊ฐ ๋น์ทํ ํํ์ ๋ฐ์๋ค์ผ ์ ์์ต๋๊น?
์ ๊ฐ์ธ์ ์ธ ์ทจํฅ์ ๊ณต๋ฐฑ(4)๊ณผ ํฐ๋ฐ์ดํ์ด์ง๋ง ๋ชจ๋ ๊ฒ์ด ์ผ๊ด์ฑ์ด ์๋ค๋ ์๋ฏธ๋ผ๋ฉด ์์๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ต๋๋ค.
@glen-84๋ ์์ ํ ๋น์ ์ ์ฆ๊ฑฐ์์ ์ํ ๊ฒ์ ๋๋ค ... ์ปดํ์ผ๋ฌ ํ์ด ํฐ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://github.com/Microsoft/TypeScript/issues/5811#issuecomment -160187924
๋๋ ์ ์ ๋ ๋ง์ TypeScript๋ฅผ ๋ ์ ์ ์ผ๋ก ์ํํ๋ ์์ ์ ๋ฐ๊ฒฌํจ์ ๋ฐ๋ผ ๊ฐ์ธ์ ์ผ๋ก ์์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ ๋ ์ข ๊ฐ๋ ์ฑ์ด ์ข์ ๊ฒ ๊ฐ์๋ฐ, 57% vs 43%(ํฐ ์ฐจ์ด๋ ์๋)์๋๋ฐ, ์ด๋๊ฐ์ ์ ์ ๊ทธ์ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. =)
๋๋ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ํญ๊ณผ ์ ๋ ฌ์ ์ํ ๊ณต๋ฐฑ์ ๋ํ @jedmao ์ ํฌ์ธํธ๋ฅผ ์ข์ํฉ๋๋ค.
์ ์ฒด ๊ณต๊ฐ: ์ ๋ go fmt
์๊ณ ํญ์ด๋ ๊ณต๋ฐฑ์ ๋ํด ๋
ผ์ํ ์ ์ด ์๋ Go-land์์ ์์ต๋๋ค. ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ํ ํญ๊ณผ ์ ๋ ฌ์ ์ํ ๊ณต๋ฐฑ์ด๋ฉฐ ๋งค์ฐ ์ ์๋ํฉ๋๋ค.+1:
๋ฌผ๋ก ๊ณต๊ฐ. ํญ์ด ๋ค๋ฅธ ๊ณณ์์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ํธ์ง๊ธฐ์์ ํญ์ด ์ ํํ ์ด๋ป๊ฒ ๋ ๋๋ง๋๋์ง ์๋ฌด๋ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค.
@hinell ๋ค๋ฅธ ํธ์ง๊ธฐ์์ ํญ์ด ๋ค๋ฅด๊ฒ ๋ ๋๋ง๋๋ ๊ฒ์ด ์ค์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ํญ์ด ๋ค์ฌ์ฐ๊ธฐ์ "์ ์ฉ" ์ฌ์ฉ๋๋ ํ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋๋ ํนํ ์ด๊ฒ ๋๋ฌธ์ ํญ์ ์ ํธํฉ๋๋ค: http://nickgravgaard.com/elastic-tabstops/
ํญ์ ์ฌ์ฉํด์ผ ํ๋ ๋ ํฐ ์ด์ ๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ๊ฐ๋ฐ์ ์ ๊ทผ์ฑ ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ํฌ๊ฐ ์์ต๋๋ค. ํญ์ ์ฌ์ฉํฉ๋๋ค.