最終更新: 2013-05-02T16:45+0900
830 :名無しさん@お腹いっぱい。:2013/04/30(火) 13:45:27.36 ID:ph+iG0mE0 >>829 これってブロックコメントの色付け方法が変更されるの?違う? 完全に閉じたときのみに色変更してほしいんだが……。 現在の仕様のブロックコメント開始文字列があったらただちに色変更されるのは、(他人の)jsコード見るとき非常に困る。
>>830 829で指摘した変更は単なる最適化を目的としたものだよ。 >現在の仕様のブロックコメント開始文字列があったらただちに これは ANSI板からの仕様みたいだし、自分としても、画面内の 情報だけに頼って色分けできたほうがどんなファイルを開いた場 合でも軽くていいと思う。対かっこ強調などもそういう割り切り が多いよ。
せっかくこの日記に書いてるのだし、SHJS方式にも言及しておくと、あれでもやっぱり行末を超えた時点で、コメント終了マークが存在しなくても、コメント開始が確定してしまう。その取り消しを可能にするのがバックトラック版(20090808p01)なんだけど、あれができるのは Web上に載せるコード片が対象だからっていうのがある。IDEでもそれは許されるだろうけど、テキストエディタではどうだろう。バックグラウンドで色分けスレッドを走らせて非同期に画面上の文字の色を変えていくというのは可能だろうけど、わずかなラグ(ちらつき)が気になったりするだろうね。非同期だけど一瞬だけは待つことにして大体の場合は同期的に見えるというのだと、いいのかな? Operaだったか、ページの描画待ち時間を指定できたけど、あれはそういう意味だったのか。
予想外の展開。未完成の .jsに対する色分けかと思っていたら、XPathを表現した文字列に含まれる /* をコメント開始と誤認識するってな話だった。
832 :名無しさん@お腹いっぱい。:2013/04/30(火) 18:48:43.80 ID:ph+iG0mE0 >>831 ?……そのプログラムって何を指すの?サクラ側の実行プログラムのこと? 例に挙げたjs(JavaScript)のこと? jsでは「/*~*/」がブロックコメントという扱いだけど、「/*」の文字列はXPathなどコード上記述されることがままある。 このとき「*/」が以降のコードのどこかに記されてない限りコメント色が付いたまま。 だけどjsの実行上は問題ない。あくまで視認の問題。他人のコードを読むときに困ってるんだ。
正規表現キーワードでは回避できないんだよね。既知の不具合です>サクラエディタBBS[7020]
掲示板のこのやりとりが 20090808p03のきっかけだった。自分では今でも使ってるんだけど、性能がときどき問題になる。バイナリファイル(=改行が少ない)を開いて検索したときに顕著。
もやもやするって書いちゃった(20130425)けど、このパッチ(#431 PHPヒアドキュメント/C++ RowString/C# quoted String等対応)が適用されたら、文字列の色分けを正規表現キーワードから組み込みのものにまた任せることができるし、それで解決すると思う。ただし、正規表現リテラルの中の /* は解決しない。
834 :名無しさん@お腹いっぱい。:2013/05/02(木) 05:53:25.17 ID:8gLFxXSe0 正規表現リテラルとか、htmlやphpみたいな文脈による言語変更とかを考えだすと限界があるんだよな・・・ vimのシンタックスエンジンを組み込みたい。あれかなり強力だし
どんなのだろうと検索したら見つかった。>syntax - vimdoc-ja< 難しすぎるでしょ。特定のキーワード(containとか contained)がフラットな記述に構造を与えてて余計に難しいってのもあるけど。