Ace: ์ž˜๋ชป๋œ ์ปค์„œ ์œ„์น˜

์— ๋งŒ๋“  2015๋…„ 06์›” 15์ผ  ยท  34์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ajaxorg/ace

json ํ˜•์‹ํ™”์— ace ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ณ ์ •ํญ ๊ธ€๊ผด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "Consolas"๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค์„œ๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์—ฌ๋ฐฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํ™”๋ฉด ๋ณด๊ธฐ
bug

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ ์ด CSS ์ถ”๊ฐ€๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋  ์ˆ˜๋„...

.ace_editor, .ace_editor div{
    font-family:monospace
}

(์ด์œ  : @nightwing ์ด ๋งํ–ˆ๋“ฏ์ด CSS๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ณ ์ • ํญ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)

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

๋‹ฌ๋ ค๋ด

fm = editor.renderer.$textLayer.$fontMetrics;
"xiXbm".split("").map(fm.$measureCharWidth, fm)

๋‹ค๋ฅธ ์ˆซ์ž๊ฐ€ ์ธ์‡„๋˜๋ฉด ํŽธ์ง‘๊ธฐ์—์„œ ์‚ฌ์šฉ๋œ ๊ธ€๊ผด์€ ๊ณ ์ • ํญ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋˜ํ•œ consolas !important ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ Linux ๋ฐ Mac์—์„œ ์ค‘๋‹จ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์œ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ ์ด CSS ์ถ”๊ฐ€๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋  ์ˆ˜๋„...

.ace_editor, .ace_editor div{
    font-family:monospace
}

(์ด์œ  : @nightwing ์ด ๋งํ–ˆ๋“ฏ์ด CSS๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ณ ์ • ํญ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)

Windows 10/Chrome 41.0.2272.76์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@nightwing ๋‚ด๊ฐ€ ๊ทธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ด๊ฒƒ์ด ์ถœ๋ ฅ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

screen shot 2015-09-14 at 12 05 26 pm

์ด๊ฒƒ์€ Windows์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๋ฌธ์ž ๊ฐ„๊ฒฉ์„ ์กฐ์ •ํ•  ๋•Œ๊นŒ์ง€ Windows 8+์—์„œ ์ปค์„œ ์œ„์น˜๊ฐ€ _ํ•ญ์ƒ_ ์ž˜๋ชป๋œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. https://github.com/ajaxorg/ace-builds/issues/58

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ์‚ฌ์šฉ์ž๋Š” ์—ฌ์ „ํžˆ ๊ฐ€๋” ์ด๊ฒƒ์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์Šคํฌ๋ฆฐ์ƒท์„ ๋ณด์‹ญ์‹œ์˜ค:
https://github.com/Crunch/Crunch-2/issues/39

์—์ด์Šค๋Š” ์ธก์ •์‹œ ํ‘œ์‹œ๋œ ๋ผ์ธ์˜ _all_ CSS ์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ๋ฌธ์ž ๊ฐ„๊ฒฉ, ํ…์ŠคํŠธ ๊ทธ๋ฆผ์ž, ํ…์ŠคํŠธ ๋ Œ๋”๋ง, -webkit-text-size-adjust ๋ฐ -webkit-font-smoothing๊ณผ ๊ฐ™์€? (์ฆ‰, ๋ณด์ด๋Š” ํŽธ์ง‘๊ธฐ์— ์ ์šฉ๋œ ํ˜„์žฌ ๊ธ€๊ผด์˜ ๊ณ„์‚ฐ๋œ ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?) ์•„๋‹ˆ๋ฉด ํŠน์ • ๊ธ€๊ผด๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

@matthew-dean ํŽธ์ง‘๊ธฐ ๋ฃจํŠธ ์š”์†Œ์—์„œ ์ด ๋ชจ๋“  ์†์„ฑ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์—์ด์Šค ๋ผ์ธ์— ์ƒ์†๋œ ์Šคํƒ€์ผ์€ ์ธก์ • div์—๋„ ์ƒ์†๋ฉ๋‹ˆ๋‹ค.
ํ…์ŠคํŠธ ๋ Œ๋”๋ง:optimizeLegibility ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@nightwing text-rendering: optimizeLegibility ๊ฐ€ ์‹ค์ œ๋กœ ๋ฒ”์ธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์ • ๊ณต๊ฐ„์„ ๋‹ค๋ฅด๊ฒŒ ์ƒ์‡„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ Chrome, _ํŠนํžˆ Windows์šฉ Chrome_์—์„œ Windows 7 ์ดํ›„๋กœ ๋ถ„๋ช…ํžˆ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ: https://github.com/zurb/foundation/issues/ 1827 (๋ฐ ๊ธฐํƒ€ ๋‹ค์–‘ํ•œ ๋ฒ„๊ทธ๊ฐ€ ์ œ์ถœ๋จ).

์ ์–ด๋„ ํŽธ์ง‘์ž๋Š” ํ•ด๋‹น ์„ค์ •์„ ์ œ๊ฑฐํ•˜์—ฌ ๋ณ€๊ฒฝ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. @vdzundza ์ด๊ฒƒ์€ ๊ฐ„ํ—์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์ด ๊ทธ ์†Œํ’ˆ/๊ฐ’์„ ์ ์šฉํ–ˆ๋‹ค๋ฉด).

๋‚˜๋Š” ๊ทธ ์„ค์ •์„ text-rendering: geometricPrecision์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋Š”๋ฐ, ์ด๊ฒƒ์€ ํ…์ŠคํŠธ ๋ฌธ์ž ๋ Œ๋”๋ง์—์„œ ํ›จ์”ฌ ๋” ์ •ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Windows์—์„œ๋Š” ์—ฌ์ „ํžˆ ์ปค์„œ ์œ„์น˜๋ฅผ ๋ถ€์ •ํ™•ํ•˜๊ฒŒ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. https://github.com/Crunch/Crunch-2/issues/39์—์„œ ๋” ๋งŽ์€ ์Šคํฌ๋ฆฐ์ƒท ๋ณด๊ธฐ

์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐ๋ชจ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ๋””๋ฒ„๊ทธํ•  ์ˆ˜ ์žˆ๋„๋ก crunch-2๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@nightwing ์—ฌ๊ธฐ์—์„œ ํฌ๋Ÿฐ์น˜ 2์˜ ์‚ฌ๋ณธ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/Crunch/Crunch-2/releases

๊ทธ๋Ÿฐ ๋‹ค์Œ Twitter์—์„œ ์ €์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค. https://twitter.com/matthewdeaners. NWJS์—์„œ๋Š” Chrome ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Crunch์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

@nightwing ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? Windows 10์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows 10์—์„œ๋Š” ์ด๊ฒƒ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋‚ด์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@nightwing ์ด ์Šค๋ ˆ๋“œ์—๋Š” ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ ์šฉ๋œ ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/Crunch/Crunch-2/issues/39

@nightwing ์ด์ œ ์ด๊ฒƒ์ด Hasklig ๊ธ€๊ผด(https://github.com/i-tu/Hasklig) + Chromium 41 + text-rendering ์ด๋ฉฐ optimizeLegibility ๋˜๋Š” geometricPrecision์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ฉ์ž๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ชจ๋“  ์„ค์ •์€ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ผ๊ด€๋˜์ง€ ์•Š์€ ๋ฌธ์ž ๋„ˆ๋น„๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ๊ธด ์ค„์˜ ํ•ฉ์ž๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ํ…์ŠคํŠธ ๋ Œ๋”๋ง์„ ์ผœ๊ณ  ๋„๋ฉด ์„ ์˜ ๊ธธ์ด๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ œ ๊ฒฝ์šฐ์—๋Š” Hasklig๊ฐ€ ํ•ด๋‹น ํ™˜๊ฒฝ์—์„œ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ณ ์ • ํญ ๊ธ€๊ผด๋กœ ๋ณด์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Ace ๋ฌธ์ œ๊ฐ€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Ÿฌ๊ธฐ ์ถ”๊ฒฉ์ „ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ธ€๊ผด์ด ๋น„๊ณ ์ • ๊ณต๊ฐ„์œผ๋กœ ๋ Œ๋”๋ง๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.

Errrr... ๋„ˆ๋ฌด ๋นจ๋ฆฌ ๋งํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Source Code Pro์—์„œ๋„ ์ปค์„œ ์œ„์น˜์— ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ text-rendering: optimizeLegibility ์ด ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ํ…์ŠคํŠธ ๋ Œ๋”๋ง ์„ค์ •/ํ•ด์ œ ์‹œ ์ปค์„œ ์ธก์ •์ด '๋ฆฌ์…‹'๋˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ฒ˜์Œ ์ดํ›„๋กœ๋Š” ์žฌ์ƒ์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์•„. ๊ทธ๋ž˜์„œ ์ •ํ™•ํ•œ ์›์ธ์€ ๋ชจ๋ฅด์ง€๋งŒ ์ €์—๊ฒŒ ๋งž๋Š” ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค. text-indent: 0.1px ์„ค์ •ํ•˜๊ณ  ์ž ์‹œ ํ›„ text-indent: 0.1px ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ http://csstriggers.com/์— ๋ช…์‹œ๋œ ๋Œ€๋กœ ๋ ˆ์ด์•„์›ƒ/ํŽ˜์ธํŠธ/ํ•ฉ์„ฑ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค

@nightwing ๋ธŒ๋ผ์šฐ์ €์˜ "๋‚ด์žฌ์ " ๊ธ€๊ผด ์„ค์ •์ด ๊ธ€๊ผด ์„ค์ •๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ace ํ…Œ๋งˆ๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋ ˆ์ด์•„์›ƒ/ํŽ˜์ธํŠธ/ํ•ฉ์„ฑ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์–ด ๋ณด์ด๋Š” ํ…Œ๋งˆ. Chrome์˜ ์ฒซ ๋ฒˆ์งธ ํ…์ŠคํŠธ ๋ผ์ธ ํŽ˜์ธํŠธ๋Š” ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Ace์˜ ์ธก์ •๋„ ์ •ํ™•ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€ ์žฌ๋ ˆ์ด์•„์›ƒ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” CSS ์†์„ฑ์„ ํ•˜๋‚˜๋งŒ ์„ค์ •ํ•˜๋Š” ํ•œ ์•„๋ฌด๋„ ์•Œ์•„์ฐจ๋ฆฌ์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์žฌํ˜„ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํ…Œ๋งˆ๊ฐ€ ์•„๋‹Œ CSS์—์„œ๋งŒ ์„ค์ •๋œ ์ผ๋ถ€ ๊ธ€๊ผด ์„ค์ •์œผ๋กœ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฒ„๊ทธ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ๋ฒ•์˜ ์กฐํ•ฉ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Ace๊ฐ€ ํŠน์ • CSS๋กœ ํ…์ŠคํŠธ์˜ ํŠน์ • ์ค„์„ ์ธก์ •ํ•˜๊ณ  ์•Œ๋ ค์ง„ ์ƒ์ˆ˜(๊ฒฐ๊ณผ๊ฐ€ ์–ด๋– ํ•ด์•ผ ํ•˜๋Š”์ง€)์™€ ๋น„๊ตํ•˜์—ฌ ์ด ๋ฒ„๊ทธ๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋‹ค์‹œ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ. (๋ฌผ๋ก  ๊ทธ๊ฒƒ์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฒ„๊ทธ๋ฅผ ์žฌํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.)

๋‹น์‹ ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ผ์€ Ace๊ฐ€ ํ•ญ์ƒ ๋ ˆ์ด์•„์›ƒ/๋‹ค์‹œ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊ฒƒ๊ณผ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ (๋Šฆ์€) CSS ์†์„ฑ์„ ์„ค์ •ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๋‚˜๋Š” ๋ˆˆ์— ๋„์ง€ ์•Š๋Š” ๊ฒƒ์„ ์•Œ์•„๋‚ด๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.) ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ, ์ด ์ž‘์—…์„ ํ•œ ๋ฒˆ ์ˆ˜ํ–‰ํ•ด๋„ ๋ˆˆ์— ๋„๋Š” ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹น์‹ ์ด ํ•„์š”๋กœ ํ•˜๋Š” ์ „๋ถ€์ž…๋‹ˆ๋‹ค .

๋‚˜๋Š” ์ •ํ™•ํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๊ณ  (๋‚ด ๊ฒฝ์šฐ์—) ๊ทธ๊ฒƒ์„ ๊ณ ์น  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋‚˜๋Š” YAML ๋จธ๋ฆฌ๋ง์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด Ace์˜ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” Ace์˜ onChange ์ด๋ฒคํŠธ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‚ด ํ•จ์ˆ˜์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ปค์„œ๊ฐ€ ๋น„๋™๊ธฐํ™”๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปค์„œ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋Š” ๋˜ ๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์™€ ๋‹ฌ๋ฆฌ ์ด๊ฒƒ์€ '๋ณต๊ตฌ'๋ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚ด๊ฐ€ ๋ชจ๋‘๋ฅผ ์„ ํƒํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ณ  ํ•จ์ˆ˜๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋˜์ง€์ง€ ์•Š๊ณ  ์“ฐ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ์ปค์„œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์น˜๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋ช…๋ฃŒํ•œ์ง€ ๋˜๋Š” ์–ด๋–ค ์‹์œผ๋กœ๋“  ๋„์›€์ด ๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ Ace๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ์ฝ”๋“œ ํ๋ฆ„์— ๋Œ€ํ•œ ์ค‘๋‹จ์œผ๋กœ ์ธํ•ด ์ปค์„œ ์œ„์น˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์˜์‹ฌ๋ฉ๋‹ˆ๋‹ค(์ปค์„œ ์œ„์น˜๊ฐ€ _after_ ํŠน์ • ์ผ์ด ์‹คํ–‰๋˜๊ณ  ์‹คํŒจํ•˜๋ฉด ์ปค์„œ ์œ„์น˜ ์ง€์ •์ด ์‹คํŒจํ•ฉ๋‹ˆ๊นŒ?).

@kenlimmj ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฆฌ์Šค๋„ˆ๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํŽธ์ง‘๊ธฐ๊ฐ€ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.
editor.on("input", ๋Š” ํ˜„์žฌ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์— ๋” ๋‚˜์€ ์ด๋ฒคํŠธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ.

์Šคํฌ๋ฆฐ์ƒท:
image

@AviralGarg1993 ๊ณ ์ •ํญ ๊ธ€๊ผด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@nightwing ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/AviralGarg1993/codeSirens/commit/edf539da1d752e5b7404a4fd7ae129f0f74a1d35

image

์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๋‹ค์Œ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

rem์— ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด(Bootstrap 4์—์„œ์™€ ๊ฐ™์ด) ์ปค์„œ๊ฐ€ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.
๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ 12px๋กœ ์„ค์ •ํ•˜๋ฉด ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

.ace_editor .ace_content {
  font-size: 12px !important;
}

๊ธฐ๋ณธ์ ์œผ๋กœ Ace๋Š” '๊ณ ์ • ๊ณต๊ฐ„' ๊ธ€๊ผด๋งŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธ€๊ผด์„ ์–ด๋–ป๊ฒŒ๋“  ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ CSS์—์„œ ๊ธ€๊ผด ์ด๋ฆ„์„ ํ• ๋‹นํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ด์–ด ํญ์Šค์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ธ€๊ผด์ด ๊ณ ์ • ํญ ๊ธ€๊ผด์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@wislem ์˜ ์กฐ์–ธ์€ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์ง€๋งŒ ์ €๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๊ธธ๋กœ

์ „์—ญ ์Šคํƒ€์ผ์‹œํŠธ์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. rem์—์„œ font-size๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ๋ฌธ์ œ๋Š” ๋™์ผํ•œ ํ•ต์‹ฌ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

.ace_editor div, .ace_editor span { font-size: 12px !important; }

Ace ํŽธ์ง‘๊ธฐ๋Š” ๊ณ ์ • ํญ ๊ธ€๊ผด๋กœ๋งŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. @skbly7์—์„œ ์–ธ๊ธ‰ํ•œ font-family:monospace ์ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ !important ์ถ”๊ฐ€ํ•˜๋ฉด ์š”์†Œ์˜ ๋‹จ์–ด ๋’ค์— ์ ์šฉ๋œ ๋‹ค๋ฅธ CSS์— ์˜ํ•ด ์žฌ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

.ace_editor, .ace_text-input, .ace_editor div{
    font-family : monospace !important;
}

์ €๋Š” Ace for Less.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ• ์ค‘์ด๋ฉฐ ์ด๋Š” 2๋ช…์˜ ํŽธ์ง‘์ž๋ฅผ ์ œ์™ธํ•˜๊ณ  ํŽ˜์ด์ง€์— ์•„๋ฌด ๊ฒƒ๋„ ์—†๋Š” ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‚ด ์˜ค๋ž˜๋œ text-indent: 0.1px ํ•ดํ‚น์„ ์‹œ๋„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ๋‹ค์Œ์ด ๋ฒ”์ธ์ธ Vue ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ์Šคํƒ€์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

html {
  word-spacing: 1px;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

Ace ๊ธฐ๋ณธ ์Šคํƒ€์ผ์€ ์•„๋งˆ๋„ ํ•ด๋‹น ์„ค์ •์„ ์žฌ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Ace ํŽธ์ง‘๊ธฐ์˜ ์˜ค๋ž˜๋œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์˜์–ด๊ฐ€ ์•„๋‹Œ ํ…์ŠคํŠธ๋ฅผ ๋ถ™์—ฌ๋„ฃ์„ ๋•Œ ํŠนํžˆ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๋‚ด ๊ฐ€์ •์€ ์—ฌ๊ธฐ์— ์žˆ๋Š” ์ผ๋ถ€ ๋ฏธ์นœ ์ฝ”๋“œ๊ฐ€ ์›์ธ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://github.com/ajaxorg/ace/blob/902d1a02864479cfa7c47f46972ff53fb56924fc/lib/ace/virtual_renderer.js#L1221

ํ•จ๊ป˜ ์‹œ๋„
ะ’ัั‚ั€ะตฬั‡ะฐ ั ะผะตะดะฒะตฬะดะตะผ ะผะพฬะถะตั‚ ะฑั‹ั‚ัŒ ะพฬั‡ะตะฝัŒ ะพะฟะฐฬัะฝะฐ. ะ ัƒฬััะบะธะต ะปัŽฬะดะธ ะปัŽฬะฑัั‚ ั…ะพะดะธฬั‚ัŒ ะฒ ะปะตั ะธ ัะพะฑะธั€ะฐฬั‚ัŒ ะณั€ะธะฑั‹ฬ ะธ ัฬะณะพะดั‹. ะžะฝะธฬ ะดะตฬะปะฐัŽั‚ ัฬั‚ะพ ั ะพัั‚ะพั€ะพฬะถะฝะพัั‚ัŒัŽ, ั‚ะฐะบ ะบะฐะบ ะผะตะดะฒะตฬะดะธ ั‚ะพฬะถะต ะพฬั‡ะตะฝัŒ ะปัŽฬะฑัั‚ ัฬะณะพะดั‹ ะธ ะผะพฬะณัƒั‚ ะฝะฐะฟะฐฬัั‚ัŒ ะฝะฐ ั‡ะตะปะพะฒะตฬะบะฐ. ะœะตะดะฒะตฬะดัŒ ะตัั‚ ะฒัั‘: ัฬะณะพะดั‹, ั€ั‹ฬะฑัƒ, ะผัฬัะพ ะธ ะดะฐฬะถะต ะฝะฐัะตะบะพฬะผั‹ั…. ะžัะพฬะฑะตะฝะฝะพ ะพะฝ ะปัŽฬะฑะธั‚ ะผั‘ะด.

์ด์ƒํ•œ ๊ธ€๊ผด์„ ์„ ํƒํ•˜๋Š” ๋Œ€์‹  ์›์ธ์„ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์œผ์‹ ๊ฐ€์š”? ์ด๊ฒƒ์€ ๋ชจ๋‚˜์ฝ” ํŽธ์ง‘๊ธฐ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์•„์ง ์ปค์„œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์•„์ง ๋งŽ์ด ๋‚จ์•„ ์žˆ๊ณ  CSS๊ฐ€ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฏธ์นœ ์ปค์„œ ๋…ผ๋ฆฌ์•ผ

https://github.com/ajaxorg/ace/blob/902d1a02864479cfa7c47f46972ff53fb56924fc/lib/ace/virtual_renderer.js#L1309

ํŠนํžˆ
https://github.com/ajaxorg/ace/blob/902d1a02864479cfa7c47f46972ff53fb56924fc/lib/ace/virtual_renderer.js#L1482
https://github.com/ajaxorg/ace/blob/902d1a02864479cfa7c47f46972ff53fb56924fc/lib/ace/virtual_renderer.js#L1509
X ์ขŒํ‘œ๊ฐ€ ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค!
์ด๊ฒƒ์€ ๊ฑฐํ„ฐ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๊ธ€๊ผด ๋„ˆ๋น„๋Š” ์ „ํ˜€ ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์•„๋‹ˆ๋ฉด ์•„๋งˆ๋„
https://github.com/ajaxorg/ace/blob/7285dad33867771a688a96bbf2309f4e995a5b7d/lib/ace/layer/cursor.js#L174

monaco๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋„๋ก ์•ฑ์„ ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ ์ง์ „์ด์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฌ์‹œ์•„์–ด๋กœ ๊ณ ์ • ํญ ๊ธ€๊ผด๋กœ ์„ค์ •ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ณ ์ • ํญ ๊ธ€๊ผด ์ง€์˜ฅ์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ์ž„์‹œ ์†”๋ฃจ์…˜์€ ๋Ÿฌ์‹œ์•„์–ด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์–ธ์–ด๋ฅผ ๋‹ค๋ฃจ๋Š” ace ํŽธ์ง‘๊ธฐ์™€ ๊ณ ์ • ํญ ๊ธ€๊ผด์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„œ์‹์ด ์ง€์ •๋œ ํ…์ŠคํŠธ๋ฅผ ์—์ด์Šค ํŽธ์ง‘๊ธฐ์— ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ์ปค์„œ ์œ„์น˜๊ฐ€ ์—‰๋ง์ด ๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—์ด์Šค๋Š” ์†Œ๋…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

@blurymind ์ปค์„œ ์œ„์น˜๋ฅผ ์ถ”์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์—์„œ ๊ธ€๊ผด์ด ๋ Œ๋”๋ง๋˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋งค์šฐ ์ˆœ์ง„ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ž๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๊ทธ๋ ค์ง€๋Š”์ง€๋ฅผ ์ธก์ •ํ•˜๋Š” ๋Œ€์‹  ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ CSS ์„ค์ •๊ณผ ๋‹จ์ผ ๋ฌธ์ž์˜ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ "ํ•ด์•ผ ํ•  ๊ฒƒ"์„ ์ถ”์ •ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ํ…์ŠคํŠธ์— ๋Œ€ํ•ด ๋ฉ”ํŠธ๋ฆญ์ด ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฐ€์ •์ด ๋งŒ๋“ค์–ด์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋ณธ์งˆ์ ์œผ๋กœ ๊ฒฐํ•จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ๋ฉ”ํŠธ๋ฆญ์„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ ๋Š” ๋ Œ๋”๋ง๋œ ํ…์ŠคํŠธ ๋ธ”๋ก์˜ ๋์ด ์–ด๋””์ธ์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฌด์—‡์ธ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊นจ์ง€๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ปค์„œ ์œ„์น˜์™€ ํ…์ŠคํŠธ ๋„ˆ๋น„์— ๋Œ€ํ•œ ์ถ”๋ก ์€ ๊ทผ๋ณธ์ ์œผ๋กœ ๊ฒฐํ•จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” "ff" ๋˜๋Š” "fi"๋ฅผ ์ž…๋ ฅํ•œ ํ›„์—์•ผ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค... ์ €์—๊ฒŒ๋Š” ํ•ฉ์ž๋ฅผ ๋„๋Š” ๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ์ถ”๊ฐ€
.ace_editor, .ace_editor div { font-variant-ligatures: none !important; }
CSS์—.

๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค ;)

์•ˆ๋…•,
์—ฌ๊ธฐ์— ์ด์ƒํ•œ ์ƒํ™ฉ์ด ์žˆ์ง€๋งŒ ๊ธ€๊ผด์ด ๋‹จ์ผ ๋ฌธ์ œ๊ฐ€ ์•„๋‹˜์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” Ace ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSON์„ ์ž…๋ ฅํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ๊ธ€๊ผด์ด "๊ณ ์ • ํญ"์ด ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์–ด์จŒ๋“ , ๊ทธ๊ฒƒ์€ ๊ฒฉ๋ฆฌ๋˜์—ˆ์„ ๋•Œ Storybook์—์„œ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ CSS์—์„œ ์ƒ์†๋˜๋Š” ๊ฒฝ์šฐ(์Šคํ† ๋ฆฌ๋ถ์ด ์•„๋‹Œ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ) ์ปค์„œ๊ฐ€ ์˜ค์ž‘๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ์†๋œ ์Šคํƒ€์ผ์ด ๋งŽ์ด ์žˆ์ง€๋งŒ ๊ธ€๊ผด์€ ๊ณ ์ • ํญ์ž…๋‹ˆ๋‹ค.

@Copainbig ๋‹ค๋ฅธ CSS ๊ทœ์น™๋„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ๋ชจ๋“  div ์š”์†Œ์˜ ๊ธ€๊ผด ํฌ๊ธฐ ์„ค์ •)

๋ฏธ๋””์–ด์œ„ํ‚ค + ํฌ๋กฌ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•œ ๋ฌธ์ œ

.ace_editor, .ace_editor * { font-family: "Monaco", "Menlo", "Ubuntu Mono", "Droid Sans Mono", "Consolas", monospace !important; font-size: 12px !important; font-weight: 400 !important; letter-spacing: 0 !important; }

๋ฏธ๋””์–ด์œ„ํ‚ค์—์„œ:Common.css

@skbly7 ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ Ace Editor์—์„œ์™€ ๊ฐ™์ด ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์€ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ €์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋‹น์‹ ์ด ์ฐพ๋˜ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

.ace_editor * {
    font-family: monospace !important;
}

์•Œ์•„์•ผ ํ•  ๋ชจ๋“  ๊ฒƒ

๋”ฐ๋ผ์„œ ๋ถ„๋ช…ํžˆ ace ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค๋ฅธ ๊ธ€๊ผด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋‚˜ ์—์ด์Šค ํŽธ์ง‘๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ณณ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  UX๋ฅผ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฏธ๋ž˜์— ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•  ๊ฒฝ์šฐ์— ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ์•”์บ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด ์—‰ํ„ฐ๋ฆฌ ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋‹ˆ์š” ๊ทธ๊ฒƒ์€ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹ˆ๋ผ CSS ์˜ค๋ฅ˜/๋ฒ„๊ทธ๋กœ ์ธํ•ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

.ace_editor, .ace_editor * { font-family: "Monaco", "Menlo", "Ubuntu Mono", "Droid Sans Mono", "Consolas", monospace !important; font-size: 12px !important; font-weight: 400 !important; letter-spacing: 0 !important; }

๋ฐ˜์‘ ์—์ด์Šค ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Windows10์—์„œ ์ €์—๊ฒŒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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