はじめに
わたしは PHP の編集に ねこび~ん を使っています。ねこび~んには...
- "(" 括弧を入力すると ")" が自動的に入力される。
- その時点で挿入キャレットは "(" と ")" の間にある。
- 続けて ")" を入力すると、余計な ")" は入力されずに挿入キャレットが右に移動するだけ。
という便利な機能があります。
これが上手く動かないファイルがありました。ファイルによって違うので、編集中のファイルに何かしらの原因があると考えました。
最終的に、下記のサンプルコードで再現することがわかりました。
再現コード
<?php
$a = "($b)c";
?>
新しく空の .php ファイルを作成して上記のコードを入力した後、関数の呼び出し__何でもかまいません。例えば phpinfo(); __を入力すると、最後の ")" を入力したときに異なる挙動をします。
二重引用符の中で括弧にはさまれた変数の展開の括弧の後に何か文字がある、というコードで発生するようです。もし同様のことで悩んでいる人がいらっしゃいましたら、ファイル内に上記のようなコードがないかどうか探してみてください。
対象バージョン
NetBeans 8.0.2 と 8.2 で確認しました。
PHP プラグインのバージョンは以下の通りです。
バージョン: 1.58.1 ソース: NetBeans IDE 8.0.2 (Build 201411181905)
バージョン: 1.63.1 ソース: NetBeans IDE 8.2 (Build 201609300101)