■ 質問はここへ ■

435 にジャンプ
No. 435投稿者: YOSSY日付: 2002/02/25 21:00:02
題名 : パス名の強調表示について

初めて質問します。
QGREPを使っていて、ふと思ったのですが、
キーワードファイルには、HTTP://だけしか書いてないのに、実際にはURLすべてが
キーワードとして強調表示されますよね。
これと同じように、フルパスを強調表示することはできないのでしょうか。

C:\を指定すれば
C:\WINDOWS\SYSTEM\AAA.EXE でも
C:\DOCUMENT\BBB.TXT でも強調表示されるというように…

No. 436 (435へのコメント)投稿者: かぶねこ HP日付: 2002/02/26 01:12:10
題名 : Re:パス名の強調表示について

>これと同じように、フルパスを強調表示することはできないのでしょうか。

URL については他の文字列とは違って、「共通設定」−「マウス」でオン・オフ
する「クリッカブル URL」の対象になっています。特殊な内部処理をしているの
ではないでしょうか。

QX では強調表示は、キーワードファイルにある単語の強調表示と、プログラミ
ング言語に対応した強調表示、マクロから @PrintCode を使って設定する「特定
範囲のコードにあたる文字の強調表示」があります。

proc main
if @PrintCode <> 0 then
@PrintCode = 0
exit proc
end if
@PrintCode = 1
@PrintCodeSet 1,`!`,`~` 'コード範囲の開始位置と終了位置の設定
end proc

で半角英数文字の強調表示のオン・オフができます。

が、YOSSY さんのご希望とはちょっと違うかもしれません。さらに強調表示につ
いて araken さんに要望などありましたら、メーリングリストのほうにお願いし
ます。

No. 437 (436へのコメント)投稿者: かぶねこ HP日付: 2002/02/26 14:40:48
題名 : Re^2:パス名の強調表示について

そういえば、クリッカブル URL には http:// のほかにも mailto:https://
ftp://、file:// があります。この file:// をパスの先頭に追加するとパスが
まとめて強調表示されてクリッカブルになります。ただし、パスに全角文字を含
めることはできません。

QGREP を使っていて……ということなので、QGREP の設定の「その他」の「ファ
イル名の前に見出しで何かできるかな、と思ったのですが、見出しに設定した文
字列+半角スペースが入るのでそのままではダメでした。見出しに特殊な1文字
程度を設定して、それをその後の半角スペースとまとめて「file://」に置換す
ることでたぶん強調表示はされると思います。かなり煩雑ですが。

No. 438 (435へのコメント)投稿者: 島田 HP日付: 2002/03/01 00:39:21
題名 : Re:パス名の強調表示について

島田と申します。YOSSY さん、こんにちは。

>キーワードファイルには、HTTP://だけしか書いてないのに、実際にはURLすべてが
>キーワードとして強調表示されますよね。
>これと同じように、フルパスを強調表示することはできないのでしょうか。

既にかぶねこさんがお答えになっているように現状では難しいですね。
かなり苦し紛れで、雑な上に動作が遅いですが、こんなマクロを書いてみました。
お役にたてるかどうか……。

'開いてる文書の中で実在するファイル名を強調表示
const k_num = 3 '使用するキーワードファイルの番号
proc main
dim line, pos, mode
dim f_l, f_p, j
'編集状態取得
if @hwnd = 0 then exit proc
if @Select <> 0 then
call msgbox("選択中は実行できません。")
end if
'カーソル位置記憶
line = @Line
pos = @BytePosCr
'キーワードファイル書き込み準備
open @@KeywordFile$(k_num) for append as #1
'検索開始
@@Redraw = 0
@MoveFileTop
if @@FindRegExp = 0 then
@@FindRegExp = -1
mode = 1
end if
@FindStringBottom "[A-Za-z]:\\"
do while @@SearchFound
f_l = @Line
f_p = @BytePosCr
'検索位置で開始する文字列取得
do
j = @BytePosCr
@MoveRightCharSel
if @BytePosCr = j then exit do
'存在するファイル名(ディレクトリ以外)なら強調表示
if dir$(@TextSelect$, 0) <> "" and dir$(@TextSelect$, &H10) = "" then
print #1, @TextSelect$
exit do
end if
loop while lenb(@TextSelect$) < 256
@BlockSelect
@Line = f_l
@BytePosCr = f_p
@FindStringBottom "[A-Za-z]:\\"
loop
close #1
if mode then @@FindRegExp = 0
'カーソル位置に戻る
@Line = line
@BytePosCr = pos
'キーワード強調
@@KeyWordReset k_num
end proc

No. 440 (438へのコメント)投稿者: 島田 HP日付: 2002/03/01 00:58:56
題名 : Re^2:パス名の強調表示について

島田です。いま、動かしたら、正規表現の設定を戻さないのに気づきました(大汗)。
マクロ19行目あたりの

> if @@FindRegExp = 0 then
> @@FindRegExp = -1
> mode = 1
> end if



if @@FindRegExp = 0 then
@@FindRegExp = -1
@@FindRegExp = -2
end if

に直して、最後から7行目の

> if mode then @@FindRegExp = 0

を削除してください。ああ、カッコ悪い……。

No. 442 (440へのコメント)投稿者: かぶねこ HP日付: 2002/03/01 04:45:54
題名 : Re^3:パス名の強調表示について

島田さん、マクロをありがとうございます。


ヘッダのみ表示
順番に表示(No. 435 から)


メールアドレスを表示するにはURLの後ろに &m=87febdce をつけてください。
ユーザー フォーラム一覧

http://www2k.biglobe.ne.jp/~araken/
http://0ban.com/araken/