新ネタ:URLを秀丸にD&Dできませんか?No.09377
でるもんたいいじま さん 17/03/15 16:34
 
いつもお世話になっております。
でるもんた・いいじまです。

ちょっと実現可能かどうかわからないのですが、御相談です。

☆ ☆ ☆

現在、ローカルのHTMLファイルをブラウザで開いて、それを秀丸で
修正して…という作業をしております。

IEなら「ソースを表示」で秀丸が立ち上がってくれるのですが、
FirefoxやChromeからだと「ソースを表示」はブラウザ内で新しい
タブが開くだけです。

でも、FirefoxやChromeでは、アドレスバーの左端のアイコンをブック
マークのツリー内に drag & drop すればブックマークのその位置に
入りますし、同じアイコンをExplorerのファイル配置欄(フォルダの
中身一覧のウィンドウとか、デスクトップとか)に drag & drop
すればそこに拡張子 .url のファイルができます。

というわけで、file: のURLだけでも秀丸に drag & drop できる
ようになってくれると嬉しいのですが、実現可能でしょうか?

ヒントだけでも何かあれば有難いです。>>担当さま、プログラミングに詳しい皆様

☆ ☆ ☆

現状は次の通りです:
  1.すでに開いている秀丸のウィンドウに D&D
   → マウスカーソルが禁止印(◯の中に斜線\)になってD&D不可
  2.デスクトップ上の秀丸アイコンに D&D
   → マウスカーソルを見る限りではD&Dできたようにみえるが、
     何も起きない。
  3.スタートメニューやクイック起動バーに D&D
   → その場所に .url ファイルができてしまう。
  4.いちど .url ファイルを作って、それをExplorerから秀丸にD&D
   → リンク先ではなく、そのURLファイル自体が開いてしまう

URLのD&Dさえ実現すれば、そのURLの構文解析などは自前でマクロで
実装しようと考えています。というより、構文解析を自前で実装した
ほうが、たとえばhttp(s)のURLがD&Dされたときに独自の処理をする、
ということが可能になります。

#file: の解析だけのサンプルコードをマクロライブラリ等で
#標準実装として提供、ということでもいいと思います。

[ ]
RE:09377 新ネタ:URLを秀丸にD&DできませNo.09378
秀丸担当 さん 17/03/15 17:27
 

こちらでchromeで試してみた限りではファイル名に日本語などが含まれていなけ
ればできました。
日本語などが含まるとパーセントエンコーディングがあるようで、それを解釈で
きたらいいと思います。

禁止カーソルになるのは、おそらく[その他]→[動作環境]→[編集]→[高度な編
集2]の「ドラッグ&ドロップ編集」がOFFになっているためではないかと思いま
す。
これがOFFの場合はエクスプローラ等からのファイルのドロップのみになります。

URLの場合は解釈次第で、例えばワードパッドにドロップするとテキストが貼り
付けられます。
秀丸エディタは都合のいいようにファイルを開くようにしていますが、「ドラッ
グ&ドロップ編集」がOFFであったとしても、都合よくURLとしてのファイルを開
けてもいいと思います。
今後検討したいと思います。

[ ]
RE:09378 新ネタ:URLを秀丸にD&DできませNo.09379
でるもんたいいじま さん 17/03/15 18:51
 
でるもんた・いいじまです。
早速のお返事ありがとうございます。

> 禁止カーソルになるのは、おそらく[その他]→[動作環境]→[編集]→
> [高度な編集2]の「ドラッグ&ドロップ編集」がOFFになっているため
> ではないかと思います。
> これがOFFの場合はエクスプローラ等からのファイルのドロップのみに
> なります。

まさにその通りでした。が、これをONにすると、ウィンドウ内でマウスを
遊ばせているといつの間にか文章の順番が入れ替わってしまい…という
ことがあるので、当面はOFFのまま我慢することにします。

> 「ドラッグ&ドロップ編集」がOFFであったとしても、
> 都合よくURLとしてのファイルを開けてもいいと思います。
> 今後検討したいと思います。

ありがとうございます。よろしくご検討のほどお願いいたします。

> 日本語などが含まるとパーセントエンコーディングがあるようで、
> それを解釈できたらいいと思います。

そうですね。これもあると嬉しいです。各ブラウザによっても違うと
思いますので、% エンコードのデコードでは
  ・%uXXXX とあったらUTF-16として解釈する
  ・%XX をUTF-8とみなしてディスクに捜しに行く
  ・同じく %XX をANSI文字列(日本語環境ならCP932、英語環境なら
   CP1252、etc)とみなしてディスクに捜しに行く
この3つくらいを順次試みるようにしていただけると助かります。

[ ]