Ace: JavaScript์—์„œ ์„ธ๋ฏธ์ฝœ๋ก  ํ—ˆ์šฉ

์— ๋งŒ๋“  2014๋…„ 01์›” 09์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ajaxorg/ace

์ €๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์ด ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์ •๋ง ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. Ace๋Š” ํ›Œ๋ฅญํ•˜์ง€๋งŒ JavaScript์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ณด๊ณ ๋Š” ์„ธ๋ฏธ์ฝœ๋ก  ์—†์ด ์™„๋ฒฝํ•˜๊ฒŒ ํ›Œ๋ฅญํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋ฏธ์ฝœ๋ก ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๊ด€์‹ฌ ์žˆ๋Š” ๊ฒƒ์€ ์Šคํƒ€์ผ ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š” ์‹ค์ œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ ์ฝ”๋“œ(JavaScript):

alert("Hello, world!")

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

๋˜๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

editor.session.$worker.send("changeOptions", [{asi: true}]);

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

๋™์˜ํ•˜๋‹ค. ๋ฆฐํŠธ ๋„๊ตฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“œ ์˜ต์…˜ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฏ€๋กœ(https://github.com/ajaxorg/ace/commit/10e2c3049cf2fd41a369336c4d03342127a618e2) php ์ธ๋ผ์ธ ๋ชจ๋“œ ์˜ต์…˜(https://github.com/ajaxorg/ace/commit/ 3a864c6056509ceeba2d290407dc91566c223d8e)

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ํ˜„์žฌ ์ฝ”๋“œ์— ๋‹ค์Œ ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ธ๋ฏธ์ฝœ๋ก  ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /* jshint asi:true */

๋˜๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

editor.session.$worker.send("changeOptions", [{asi: true}]);

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๋ ‡๊ฒŒํ•ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

editor.session.$worker.send("changeOptions", [{asi: true}]);

.$worker ๊ฐ€ null ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์—

๋Œ€์‹ , ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค (๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ)

editor.session.on('changeMode', function(e, session) {
    if('ace/mode/javascript' === session.getMode().$id) {
        if(!!session.$worker) {
            session.$worker.send('changeOptions', [{
                asi: true // disable "Missing semicolon." warning in editor for JavaScript
            }])
        }
    }
})
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰