Js-beautify: switch-case๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด์ƒํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ

์— ๋งŒ๋“  2010๋…„ 08์›” 02์ผ  ยท  11์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: beautify-web/js-beautify

switch (v) { case 1: break; case 2: break; case 3: break; default: break; }

โ€ฆ๋œ๋‹คโ€ฆ

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

์ด๊ฒƒ์€ ์˜๋„์ ์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ case ๋Š” ์„ค์ •์— ๋”ฐ๋ผ 1๋‹จ๊ณ„ ๋“ค์—ฌ์“ฐ๊ธฐ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

IMHO, ๊ทธ๊ฑด ์ •๋ง ๋ง์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์ƒ๋žตํ•œ Crockford์˜ ๋…ผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. โ€œ๊ฐ ์ผ€์ด์Šค๋Š” ์Šค์œ„์น˜์™€ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณผ๋„ํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.โ€ ์˜ค๋ฅผ๋ฆฌ?

๊ทธ๋ž˜๋„ ๋‹น์‹ ์˜ ์š”์ ์€ ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ด๊ณ  ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋งˆ์Œ์— ๋“ค๋ฉด ๊ทธ๋Œ€๋กœ ๋‘์‹ญ์‹œ์˜ค!

๋ชจ๋“  11 ๋Œ“๊ธ€

Crockford ๊ทœ์•ฝ, http://javascript.crockford.com/code.html ์— ๋”ฐ๋ผ ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ด๋ฏ€๋กœ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

IMHO, ๊ทธ๊ฑด ์ •๋ง ๋ง์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์ƒ๋žตํ•œ Crockford์˜ ๋…ผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. โ€œ๊ฐ ์ผ€์ด์Šค๋Š” ์Šค์œ„์น˜์™€ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณผ๋„ํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.โ€ ์˜ค๋ฅผ๋ฆฌ?

๊ทธ๋ž˜๋„ ๋‹น์‹ ์˜ ์š”์ ์€ ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ด๊ณ  ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋งˆ์Œ์— ๋“ค๋ฉด ๊ทธ๋Œ€๋กœ ๋‘์‹ญ์‹œ์˜ค!

switch (foo) {
    case something:
        break;
}
 ^^^^^^^ huge ugly empty space

...๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ์ฝ”๋“œ๋Š” ๊ฐ‘์ž๊ธฐ 2๊ฐœ์˜ ๋“ค์—ฌ์“ฐ๊ธฐ๋กœ ๋ฐ€๋ ค๋‚˜๋Š”๋ฐ, ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์Šค์œ„์น˜/์ผ€์ด์Šค๋ฅผ ๋“ค์—ฌ์“ฐ๊ธฐ๋˜์ง€ ์•Š์€ ํŠน์ˆ˜ ์ผ€์ด์Šค๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์ถ”ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ, ๊ทธ๊ฒƒ์€ ๋ณด๋Š” ์‚ฌ๋žŒ์˜ ๋ˆˆ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” switch ๋ฌธ์˜ ์‹ค์ œ ๋์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์–ด๋ ต๋‹ค๋Š” ๊ทธ์˜ ์ƒ๊ฐ์— Crockford์— ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ์ถ”๋ก ์— ๋”ฐ๋ฅด๋ฉด ์™œ ์ œ์–ด ๊ตฌ์กฐ๋ฅผ ๋“ค์—ฌ์“ฐ๊ธฐํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋“ค์€ ๋ชจ๋‘ ๋“ค์—ฌ ์“ฐ๊ธฐ ํŒจ๋„ํ‹ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด 800x600 ํ•ด์ƒ๋„์—์„œ ์ž‘๋™ํ•œ๋‹ค๋ฉด ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

switch (v) {
    case 1:
    // code goes here
    break;

    default:
    // code goes here
    break;
}

์ด์— ๋Œ€ํ•œ ์˜ต์…˜์ด ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. "์ •์ƒ์ ์ธ" ๋ฐฉ์‹(๋‚ด ํ‰์ƒ ์ž‘์„ฑ๋œ switch ๋ฌธ์„ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ) ๋˜๋Š” ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ์ด์™ธ์˜ ๋ชจ๋“  ๊ฒƒ. ๊ฐœ์ธ์ ์œผ๋กœ ๋™์˜ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํŒจ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํŒจ์น˜์— ๋งˆ์Œ์„ ์—ฌ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ƒฅ jslint happy์— ์ถ”๊ฐ€ํ• ๊นŒ์š”?

switch ๋ฌธ์— ์—‰์„ฑํ•œ ๊ณต๋ฐฑ์„ ๋˜์ง€๋Š” ๊ฒƒ์„ ์‹ซ์–ดํ•˜์‹ญ์‹œ์˜ค.

@drewhjava ์ด ์˜ต์…˜์„ ์š”์ฒญํ•˜๋Š” ์ด ๋ฒ„๊ทธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฒ„๊ทธ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์—ฌ์‹ญ์‹œ์˜ค.

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋ชป์ƒ๊ธด ์Šค์œ„์น˜ ๋ฏธํ™”๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ์ด๊ฑฐ ๊ณ ์ณ์ง€์ง€ ์•Š์•˜๋‚˜์š”?

์˜ˆ

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

์—ํœด. jsbeautifier.org์— "jslint-happy" ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค :) ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋“ค์—ฌ์“ฐ๊ธฐ ๋ฌธ์ œ๋Š” Windows์™€ OSX์˜ ๋™์ผํ•œ ์ฝ”๋“œ์—์„œ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์˜ˆ๋Š” https://github.com/gpujs/gpu.js ์ž…๋‹ˆ๋‹ค. yarn make ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ./src ํด๋”๋ฅผ ์•„๋ฆ„๋‹ต๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. https://github.com/ gpujs/gpu.js/blob/012cfff566691a8fa360e0af650a45c616ceff4a/gulpfile.js#L85

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰