json ํ์ํ์ ace ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
๊ณ ์ ํญ ๊ธ๊ผด์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. "Consolas"๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ค๋ฅธ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. ์ปค์๊ฐ ๋ง์ง๋ง ๋ฌธ์์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฌ๋ฐฑ์ด ์์ต๋๋ค.
ํ๋ฉด ๋ณด๊ธฐ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๊น?
๋ฌ๋ ค๋ด
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 ๋ด๊ฐ ๊ทธ ์ฝ๋๋ฅผ ์คํํ์ ๋ ์ด๊ฒ์ด ์ถ๋ ฅ์ด์์ต๋๋ค.
์ด๊ฒ์ 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",
๋ ํ์ฌ ํ๊ณ ์๋ ์ผ์ ๋ ๋์ ์ด๋ฒคํธ์ผ ์ ์์ต๋๋ค.
๊ฐ์ ๋ฌธ์ .
์คํฌ๋ฆฐ์ท:
@AviralGarg1993 ๊ณ ์ ํญ ๊ธ๊ผด์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
@nightwing ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
https://github.com/AviralGarg1993/codeSirens/commit/edf539da1d752e5b7404a4fd7ae129f0f74a1d35
์ด ๋ฌธ์ ๊ฐ ์๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ๋ ๋ค์์ด ๋์์ด ๋ ์ ์์ต๋๋ค.
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#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;
}
@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์์ ์ ์๊ฒ ์ ์๋ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋น์ทํ ๋ฌธ์ ๊ฐ ์์๊ณ ์ด CSS ์ถ๊ฐ๋ก ํด๊ฒฐ๋์์ต๋๋ค. ๋์์ด ๋ ์๋...
(์ด์ : @nightwing ์ด ๋งํ๋ฏ์ด CSS๋ฅผ ์ถ๊ฐํ๋ฉด ๊ณ ์ ํญ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.)