ほるっふー

自宅のベランダに鳩が住み着いた話を5万人の前ですること。

Emacsのshow-paren-modeにも文字数の限度があるという話

Emacsで括弧の対応関係のハイライトを利用するには.emacsに次のように記述する。

(show-paren-mode t)

(setq show-paren-delay 0)

(setq show-paren-style 'expression)

 

するとこんな風にハイライトされる。

f:id:blacksmithltw:20170129001754p:plain

ところでこのshow-paren-mode無限に対応関係を探してくれるわけではないらしい
とてつもなく長い関数を書いていたら*1対応関係を表示してくれなくなった。
makeは通るけどすごく気持ち悪い。

無理に上限をあげるのも何文字までならハイライトされるか調べておくことにした。

 

手始めに1000回位

[MBA] smith: show-paren-mode $ echo -n "{" > long.cxx; for i in `seq 1000`; do echo -n "show-paren-mode" >> long.cxx; done ; echo -n "}" >> long.cxx

f:id:blacksmithltw:20170129000103p:plain

 んじゃあ 10000回...

f:id:blacksmithltw:20170129000321p:plain

流石に駄目か…

その後二分捜索で探し続けshow-paren-mode(15文字)を1706回から1707回の間と特定。*2
1706回から文字を足していくと括弧の中の文字数で言うと25598文字、括弧自身も含めると26000文字が最大となった。

ちなみに改行コードも当然1文字として数えられているので行数が増えるとより早く枯渇する。

いずれにしてもあまりにも大きなスコープは作らないことだ。

*1:シミュレーションのコードで仕方がなかった

*2:中途半端なワードを選んでしまったな…