์ด๋ด,
Ember.JS ES6 ๋ชจ๋ ๋ชจ์์์ jsbeautifier๋ฅผ ์คํ ์ค์ด๋ฉฐ ๋ด๋ณด๋ด๊ธฐ ๋ฌธ์์ ์์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
์๋์ ๊ฐ์ด ๋ด๋ณด๋ด๋ ๋ชจ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
export default DS.FixtureAdapter.extend();
jsbeautifier๋ ๋ด๋ณด๋ด๊ธฐ ํ์ ์ค ๋ฐ๊ฟ์ ์ถ๊ฐํฉ๋๋ค.
export
default DS.FixtureAdapter.extend();
์ปค๋ฐ์ด ์๋ฝ๋๊ธฐ ์ ์ jsbeautifier ์คํ์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์๊ฒ๋ง ๋ฌธ์ ๊ฐ ๋๋ ์ฌ์ํ ๋ฌธ์ ์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๊ฐ ์ค ๋ฐ๊ฟ์ ์ ๊ฑฐํ๋ฉด ์ปค๋ฐ๋๋ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์๋ฌด ๊ด๋ จ์ด ์๋๋ผ๋ ๋ฌธ์ ์ ํ์ผ์ด ์ปค๋ฐ์ ํฌํจ๋ฉ๋๋ค.
๊ด๋ จ #388.
์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์์ฝ์ด๋ก ์ฒ๋ฆฌํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
Hey @bitwiseman ๊ทธ๊ฒ ์ ํํ ๋ฌธ์ ์ง๋ง ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์์ฑํ๋ฉด
export default moduleName;
๋ค์๊ณผ ๊ฐ์ด ์๋ฆ๋ต๊ฒ ๋ ๊ฒ์ ๋๋ค.
default moduleName;
์ ์๋ณด์ด๋ค์ :)
๋ํ ์ค๊ดํธ ์คํ์ผ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ํ๋ฉด
import { mod1, mod2 } from 'filePath';
๋ค์๊ณผ ๊ฐ์ด ์๋ฆ๋ต๊ฒ ๋ ๊ฒ์ ๋๋ค.
import {
mod1,
mod2
} from 'filePath';
๊ทธ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
์ด ๋ชจ๋ ๊ฒ์ด ์ ๋ค๋ฆฝ๋๋ค. module
, export
๋ฐ import
ํค์๋๋ฅผ ์ถ๊ฐํ๊ณ ์ฝ๋๋ฅผ ์ฌ๋ฐ๋ฅธ ํ์์ผ๋ก ์์ฑํด์ผ ํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ์์ ์ด๋ผ๋ ์์์ด ์์ต๋๊น?
๋ค์ ๋ฆด๋ฆฌ์ค์ ์์ ์์ ์ ๋๋ค. ๊ธฐ๋ฐ ์์ค์ ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. ์ฝ๊ฐ์ ๋ณ๊ฒฝ์ด ์์ด์ผ ํฉ๋๋ค.
๋ด๋ณด๋ด๊ธฐ ๋ฌธ์ ํ์ ์์ ์ +1!
+1
+1
+1
+1
+1
+n. ์์ฝ์ด ๋ชฉ๋ก์ ์ด ํค์๋๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ ๋ง์ต๋๊น?
ํธ์ง: ์๋์. ์ ๊ท์น์ด ์ด๋์ ์๋์ง ์ฐพ์ผ๋ ค๊ณ ํ์ง๋ง ๋ณ๊ฒฝ์ ๊ฐ์ํ๊ธฐ์๋ ์ฝ๋๊ฐ ๋๋ฌด ๋ง์ต๋๋ค =/
:+1:
์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๊ธฐ ์ํ ์ค์ํ ์์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๋๋ค์๊ฒ ๋ฏธ์ํ์ง๋ง ๋ค์ ๋ฆด๋ฆฌ์ค์ ์ด๊ฒ์ ํํธํด์ผํฉ๋๋ค.
์ฐธ๊ณ ๋ก:
http://people.mozilla.org/~jorendorff/es6-draft.html#sec -modules
http://people.mozilla.org/~jorendorff/es6-draft.html#sec -imports
http://people.mozilla.org/~jorendorff/es6-draft.html#sec -exports
์ด๊ฒ์ ์ฐ๋ฆฌ ๋ชจ๋๋ฅผ ๋ง๋ญ๋๋ค:
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ ๋ชจ๋๋ ๋ค์์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.
๊ทธ๊ฒ์ ์ ํํ ๋ง์ต๋๋ค. : ์ค๋ง์ผ :
์ด๋ฅผ ์ํด ๋ค์ ์์ ์ฌํญ์ ์ป์ ์ ์์ต๋๋ค. ์๋์ ๋ฌด์๋ฏธํ ์ ๋ ฅ์ ๋ฏธํ ์ฅ์น์์ ๋์ผํ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค๋ ์ฌ์ ํ ๋์ฐํด ๋ณด์ด์ง๋ง ์ต์ํ์ ๊ณ ํต์ผ๋ก ํดํนํ ์ ์๋ค๊ณ ๋๊ผ์ต๋๋ค.
module "a" {
import odd from "Odd";
export default function div(x, y) {}
export function sum(x, y) {
return x + y;
}
export var pi = 3.141593;
export default moduleName;
export *
}
:+1:
์์ ์ฌํญ์ด ์์ต๋๊น?
๋ด ํ๋ถํ ์์ ์๊ฐ์... :์ค๋ง์ผ:
:+1:
+1
+1
์๋ ๋ฌธ์ ๋ 1.5.2์์ ์์ ๋์์ต๋๋ค.
@redking , @dred9e , @Aluxian , @simplyianm , @pgilad , @webbushka , @fpauser , @Volox , @naomifeehanmoran , @darlanalves , @thaume -
๋น์ ์ ๋์์ด ํ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ์ ๋ ฅ, ์ค์ ์ถ๋ ฅ ๋ฐ ์ํ๋ ์ถ๋ ฅ์ ์๋ฅผ ์ ๊ณตํ์ญ์์ค. ๋ํ ์ค์ ์ถ๋ ฅ์ด ๋ฐ๋์งํ์ง ์๊ฑฐ๋ ๊ตฌ๋ฌธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ์ฌ๋ถ๋ ํ์ํฉ๋๋ค. ๊ตฌ๋ฌธ ์ค๋ฅ๊ฐ ์ฐ์ ํฉ๋๋ค. ๋๋ ์ง๊ธ๊น์ง @thaume ์์ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค -
//input
import { mod1, mod2 } from 'filePath';
// actual output - non-breaking
import {
mod1,
mod2
} from 'filePath';
// desired output (unchanged)
import { mod1, mod2 } from 'filePath';
๋ฉ๋ชจ:
@bitwiseman ์์ ์ํ๋ ์ ํํ ์ ๊ฐ ์์ํ ๊ฒ์ ๋๋ค. ์ต๊ทผ์ Atom ํธ์ง๊ธฐ์์ ES6์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ์ฅ ์ ์๋ ํ์ ์ง์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์๋ง์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์/์ ๋ ฅ:
import { Bar } from 'lib/Bar';
class Foo {
constructor() {
this.bar = new Bar();
}
}
export { Foo };
ํ์ฌ ์ํ:
import {
Bar
}
from 'lib/Bar';
class Foo {
constructor() {
this.bar = new Bar();
}
}
export {
Foo
};
๋๋ ์์ง ํฌ๋งทํ ๋ ์ฝ๋๋ฅผ ๊นจ๋จ๋ฆด ์๋ฅผ ๋ชจ๋ฅธ๋ค.
๋๋ ์ด๊ฒ์ด ๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ๊ฐ ์๋๋ผ jsx์ ๊ด๋ จ์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฏ๋ก ์๋ง๋ ์์ ํ ๋ค๋ฅธ ์ง์น์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ ์ฌํญ์ด ๊ด๋ จ๋ ๊ฒ์ด๋ผ๊ณ ์์ํ ์ ์์ต๋๋ค.
return <div {...props}></div>;
๋๋ค
return <div {...props
} > < /div>;
e4x = true
์ ์ค์ ํ์
จ์ต๋๊น?
์, ์ ๋ ๋ฆฌํฐ๋ด ์์ด ์ผ๋ฐ jsx์์ ๊ทธ๊ฒ์ด ์กด์ค๋๊ณ ์์์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ ํ๊ทธ์ {...props}์ ๊ฐ์ ๋ฆฌํฐ๋ด์ด ์์ผ๋ฉด ์์์ด ์ฆ์ ์ค๋จ๋ฉ๋๋ค. ๋ฆฌํฐ๋ด์ด ์ค์ฒฉ ์์ ๋ด๋ถ์ ์์ผ๋ฉด ์ฝ๊ฐ ๋ ์ ์๋ํ์ง๋ง ์ฌ์ ํ ๋ซ๋ ํ๊ทธ์์ ์ค๋จ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ฅ์/๋ฌธ์ ๋ผ๋ฉด ๋ ๋ง์ ์๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
@loopmode - ์์ ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค.
+1
:+1: ์ด๊ฒ์ ๋ํ ๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐํํ๋ ๋ฐ ์ํฅ์ ์ค๋๋ค.
var { type, size } = someObject;
๋ก ๋ณํ๋ฉ๋๋ค
var {
type, size
} = someObject;
:+1: ์์๋ฅผ ์ฌ์ฉํ ๋๋ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ jsx ํ์์ด ์์๋์์ต๋๋ค.
+1
+1
+1
+1
js-beautify 1.5.10์ ์ฌ์ฉํ๋ฉด ๋ค์์ด ํ์๋ฉ๋๋ค.
์ ๋ ฅ:
import { x, y, z } from './other';
์ฐ์ถ:
import {
x, y, z
}
from './other';
๋๋ ์ข ๊ฒฐ ์ค๊ดํธ ๋ค์์ ๊ฐํ์ ์ํ์ง ์์ต๋๋ค.
+1
์ด๋ฅผ ์ง์ํ ๊ณํ์ด ์์ต๋๊น?
์ด๊ฑฐ ์์ง๋ ์ ๊ณ ์ณ์ก๋์?
์์ง ์ด๋ ค ์์ต๋๋ค. ํ ๋ฆฌํ์คํธ๋ฅผ ํ์ํฉ๋๋ค.
+1
๋ค์์ ์ฌ์ฉํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ง๋ง:
/* ๋ณด์กด์ ์๋ฆ๋ต๊ฒ ํ๊ธฐ:์์ _/
// ์๋ฆ๋ต๊ฒ ๋ณด์กด:์ข
๋ฃ */
์ด๊ฒ์ ๋ณด๊ธฐ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค.
+1
+1
+1
๊ด์ฌ ์๋ ์ฌ๋์ ์ํด ๋๋จธ์ง ๋ฌธ์ ๋ import {x, y} from './other'
์
๋๋ค. ์ด๊ฒ์ ๊ตฌ์กฐํ๋์ง ์์ ๊ฐ์ฒด์ ํ์ ์ฌ๋ก์ธ ๊ฒ ๊ฐ์ต๋๋ค. #511 ์ฐธ์กฐ.
์ฌ์ ํ ์์ ํ์ ๋ํ ๋์์ด ํ์๋์ง๋ง ๋ชจ๋ ํฐ์ผ์ด ๋ซํ๋๋ค. Atom์์ ๋ฏธํํ ํ ๊ฐ์ ธ์ค๊ธฐ์์ ํ ์ค์ ์ ์งํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ๊ฐ์ฌ ํด์!
์๊ฒ ์ต๋๋ค. .jsbeautifyrc์ ๋ค์ ๊ตฌ์ฑ์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
{
"preserve_newlines": true,
"max_preserve_newlines": 2
}
import
์์ ์ด ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ๊ณ ์์ต๋๋ค. 1.6.3
๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
import { mod1, mod2 } from 'filePath';
๋๋ค
import {
mod1,
mod2
} from 'filePath';
์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ์ฌ๋๋ค์ ์ํด ์ฌ๋ฐ๋ฅธ ์์ฑ์ด ์ง์ ๋ .rc ํ์ผ json์ ๊ฒ์ํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด ์ ์ ํ ์๋ํ์ง ์๋์ง ์ ํ ๋ชจ๋ฅธ๋ค.
{
"preserve_newlines": true,
"max_preserve_newlines": 2
}
๊ทธ๊ฒ์ ๊ทธ๊ฒ์ ์์ ํ์ง ์์์ต๋๋ค (์์ ๊ฒ์ ๋๋๋ก)
@the-simian Atom ํ๊ฒฝ ์ค์ ์ ํตํด ์ด๋ํ๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅธ ์ต์
์ "Brace style" ์น์
์ "brace_style": "collapse-preserve-inline"
์
๋๋ค. "preserve_newlines" ์ต์
์ ์ ์ฒด ํ์ผ์์ ์ค ๋ฐ๊ฟ์ ๋ณด์กดํ๊ธฐ ์ํ ๊ฒ์
๋๋ค. ํ์ง๋ง ๋น์ ์ ๋ถ๋ช
ํ ๊ทธ๊ฒ์ด ์ฌ์ค์ด๊ธฐ๋ฅผ ์ํฉ๋๋ค. :)
@eloquence ์
๋ฐ์ดํธ ๊ฐ์ฌํฉ๋๋ค. ์ต๋ํ ๋นจ๋ฆฌ ์๋ํด ๋ณด๊ฒ ์ต๋๋ค.
ํธ์ง: _๊ทธ๋ฌ์ด์_
๋ค์์ .jsbeautifyrc ํ์ผ์ ์ปจํ ์คํธ ์ ์ฒด ์์ json์ ๋๋ค.
{
"brace_style": "collapse-preserve-inline", //<----that
"break_chained_methods": false,
"end_with_newline": false,
"eol": "\n",
"eval_code": false,
"indent_char": " ",
"indent_level": 0,
"indent_size": 1,
"indent_with_tabs": true,
"jslint_happy": false,
"keep_array_indentation": false,
"keep_function_indentation": false,
"max_preserve_newlines": 4, //<---this
"preserve_newlines": true, // <---this too
"space_after_anon_function": false,
"space_before_conditional": true,
"unescape_strings": false,
"wrap_attributes": "auto",
"wrap_attributes_indent_size": 2,
"wrap_line_length": 0
}
@loopmode collapse-preserve-inline
์ ๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
"brace_style": "collapse-preserve-inline",
์ ๋ ฅ:
const _state = { ...state }
์ฐ์ถ:
const _state = {...state }
collapse-preserve-inline
๊ฐ ์๋ํ๋ ๋์ $ end-expand
๋๋ expand
๋ก ๋์ผํ ๋์์ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ต์
์ ๋ํด end-expand-preserve-inline
๋ฐ ์ ์ฌํ๊ฑฐ๋ true ๋๋ false๊ฐ ์๋ preserve-inline-braces
์ต์
์ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@Coburn37 - ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ๊ฑฐ๋ #1052๋ฅผ ์ฐธ์กฐํ์ฌ ์ํ๋ ๋ด์ฉ์ ์ค๋ช ํ๋์ง ํ์ธํ์ธ์.
+1. ๋๋ ๋ถ๊ดด, ๋ณด์กด ์ธ๋ผ์ธ์ ํฌ์ด ์๋๋๋ค. ํนํ ์์ ์ ๋ํ ๊ท์น์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค...
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@the-simian Atom ํ๊ฒฝ ์ค์ ์ ํตํด ์ด๋ํ๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅธ ์ต์ ์ "Brace style" ์น์ ์
"brace_style": "collapse-preserve-inline"
์ ๋๋ค. "preserve_newlines" ์ต์ ์ ์ ์ฒด ํ์ผ์์ ์ค ๋ฐ๊ฟ์ ๋ณด์กดํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋น์ ์ ๋ถ๋ช ํ ๊ทธ๊ฒ์ด ์ฌ์ค์ด๊ธฐ๋ฅผ ์ํฉ๋๋ค. :)