【要望】部分設定切り替えNo.04028
kobachi さん 09/10/01 06:52
 
はじめまして。
秀丸エディタ用にC調構文アウトラインを公開していますkobachiと申します。

極めて個人的な話で申し訳ないのですが、最近、PHPやJavaScriptといった言語を使
ってウェブアプリケーションを開発する機会が増えてきました。(一応、時流には乗
ってみました)
ウェブアプリケーションを開発するようになって気づいたのですが、これらの言語で
は、1つのファイルの中に複数の言語が混在することがかなり多いということです。
例えば、.phpの中にHTMLが書いてある、.htmlの中にJavaScriptが書いてある・・・
と言った具合です。
(C#もLINQでいきなりSQL文が書けるようになったのでウェブアプリだけの話ではな
いと思います)

特にPHPについては、Apacheの設定にもよりますが、.phpファイルであっても、PHPの
プログラムとして解釈されるのは<?php〜?>の間だけで、それ以外はそのまま出力さ
れますので、HTMLやプレーンテキストが書いてあることがあります。
また、.htmlを編集していた場合であっても、<style>〜</style>の間はCSSのキー
ワード・ハイライトや単語補完、<script>〜</script>の間はJavaScriptのキーワー
ド・ハイライトと単語補完が動いてくれたら、どんなに助かるだろうと考えました。

しかし、これらの「マトリョーシカな構造」を持った言語や文書フォーマット一つ一
つに対応していたらキリがありません。
そこで思いついたのですが、現在「複数行コメント」のハイライト機能として提供さ
れている機能を拡張し、「一時的に別のファイルタイプ設定を適用する」という動作
を搭載することはできないでしょうか。

設定方法の例としては、

  ・CSS用のファイルタイプ設定
  ・JavaScript用のファイルタイプ設定
  ・HTML用のファイルタイプ設定

が既にあったとき、HTML用のファイルタイプ設定の「複数行コメント」に

  ・開始文字列 「<style[^>]+>」
  ・終了文字列 「</style>」
  ・表示方法  「一時的に CSS用のファイルタイプ設定 を使う」

  ・開始文字列 「<script[^>]+>」
  ・終了文字列 「</script>」
  ・表示方法  「一時的に JavaScript用のファイルタイプ設定 を使う」

のような設定を追加することにより、CSSはCSSの色と単語補完が効き、JavaScriptは
JavaScriptの色と単語補完が効くという動作をすることになります。
応用として<table>〜</table>の間だけTSV/CSVモードとかできたら楽しげです。

ハイライト処理がかなり重くなりそうな機能ですが、是非ともご一考願えていただけ
ればと思います。
要件のみでしたが、失礼いたします。

[ ]
RE:04028 【要望】部分設定切り替えNo.04041
秀丸担当 さん 09/10/01 16:24
 

>そこで思いついたのですが、現在「複数行コメント」のハイライト機能として提供さ
>れている機能を拡張し、「一時的に別のファイルタイプ設定を適用する」という動作
>を搭載することはできないでしょうか。

ご要望ありがとうございます。
設定方法としては概ね理解できました。
重くなるだろうというのもありますが、それよりも作ることがかなり困難かもし
れません。
テキストエディタの性質からして、原則として存在する情報はテキストのみで、
それをリアルタイムに解析するということから、現状の複数行コメントでもけっ
こう手いっぱいの状況です。

リアルタイムに解析するのをやめて、いったん解析した結果を残して編集しても
再解析を実行するまで変わらないというような方法だったらありかもしれないで
すが。
現状でやるとしたら、リアルタイムでない方法で、マクロで解析してカラーマー
カーを付けるという方法で不可能ではないかもしれません。
でもそいったマクロを作ることがまず大変な作業になるかもしれないです。

ちなみに現状でも HTML中のスクリプトやPHPにもある程度は対応しています。
HTML中のJavaScriptはコメントなども解釈できます。
PHPは基本HTMLで<?php〜の範囲のコメントを解釈できます。ヒアドキュメントに
も対応しています。
[その他]→[ファイルタイプ別の設定]→[デザイン]→[複数行コメント]の言語指
定でHTML/XMLのところでいろいろ指定できます。
ただ[デザイン]→[強調表示]のほうは全体で共通です。

 例:
 紹介ページの画像
 http://hide.maruo.co.jp/software/hidemaru7/image/hm_color10.png

単語補完やTSC/CSVモードはまた別の話になってくると思います。。
単語補完はマクロで実行するようにしたりマクロで辞書を切り替えることで、現
状でうまく切り替える方法もあるかもしれないです。

[ ]
RE:04041 【要望】部分設定切り替えNo.04052
kobachi さん 09/10/02 04:33
 
なるほど。やはりハイライトはいろいろと苦労されているんですね。
マクロで辞書を切り替える方法についてはCompleteXなどを参考にして環境を構築し
てみたいと思います。

ありがとうございました。

[ ]