CoffeeScriptの落とし穴(unmatched OUTDENTで悩まされている方へ)
1227 ワード
CoffeeScript便利ですよね。簡単かつ見やすい。
ただし、"unmatched OUTDENT"お前さえいなければの話だ…
原因
例えば次のようなコードを見てみましょう。
sample.coffee
msg = 'caution'
if msg == 'caution'
alert msg
msg2 = 'run away'
if msg2 == 'run away'
alert msg2
...
このようにif文が入れ子状に入るコードはよく見かけますよね。
vim-coffee-scriptを使っているので、自動でインデントもつけてくれて、便利便利…
…とこれが落とし穴なのです。
初期設定ではvimのタブスペースは8文字分ですが、それ以上のインデントをvim-coffee-scriptのsyntaxでつけようとすると、タブスペースと空白スペースが混ざってしまいます。その結果、見た目は合っているように見えるのに実際はインデントがずれていると認識されてしまう…というわけです。
実際にコンパイルすると「unmatched OUTDENT」なるエラーが発生します。
見た目が合っているだけあって、意外と気づきにくいミスかもしれません。
対策
CoffeeScriptを使う上では(特に初心者)、次の設定は必須でしょう。
.vimrc
...
set expandtab "タブスペースの代わりに空白スペースを挿入
set tabstop=2 "tabキーを押した時のインデント幅を設定
set shiftwidth=2 "syntaxのインデント幅を設定
...
これでもう心配ありません。快適なCoffeeScript生活をお送りください。
Author And Source
この問題について(CoffeeScriptの落とし穴(unmatched OUTDENTで悩まされている方へ)), 我々は、より多くの情報をここで見つけました https://qiita.com/chan_kai_chan/items/59328bf56c1f482cad7b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .