DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

EmEditorのアウトラインプラグインのDelphiでの設定


     ∧,,∧    ワスレテ ネーゾ
     ミ,,゚Д゚彡  
     ミ つ且~~
     ミ,,__ ヾ,
 ⊂二二二∪∪二二⊃


VB.NETだけだと寂しいだろうと思って、ちゃんと用意しておきましたよ。

しかし、、、まとめてみると、鬼のような表記だぞ。まったく・・・

正規表現・・・不便な表現だわさ・・・
ここまでしても、完璧とはほど遠いアウトライン...


-- EmEditor Delphi用のアウトライン設定 --

EmEditorのアウトライン設定で次のように設定すると
Delphiのメソッド一覧として使えます。

  タイプ           カスタム
  カスタムバー最大レベル   4
  一致した文字列置換     ON
  1: (interface|implementation)
      正規表現ON     $1

  2: (^|\s+)(procedure|function)\s+((.*)\(.*$|(.*):.*$|(.*);$)
      正規表現ON     $2 $4$5$6

  3: (^|\s+)(type|uses)(\s+(.*)$|$)
      正規表現ON     $2

  4: (^|\s+)(.*)\s+=(.*)\s+(class|record|object).*
      正規表現ON     $2 $3$4

  5: ^.*\s+(procedure|function|constructor|destructor)\s+((.*)\(.*$|(.*):.*$|(.*);$)
      正規表現ON     $1 $3$4$5

  コメントを縮小可能にする  ON


正規表現の内容の詳細は次の通りです。

◇レベル1
  このレベルで interface か implementation 部分で区切りを付ける

◇レベル2
  interface部分でユニットグローバルで宣言される関数や
  implementation部分の普通のメソッドを見つけることができる

    (^|\s+)(procedure|function)
      行頭もしくはスペースが1つでもある場合の
      procedure か function をみつけて
    \s+
      その後にスペースが一つあって
    ((.*)\(.*$
      「\(」は括弧記号を表す。***(***行末形式
    |(.*):.*$
      もしくは、***:***行末形式
    |(.*);$)
      もしくは、***;行末形式

  出力文字は
    (^|\s+)(procedure|function)\s+((.*)\(.*$|(.*):.*$|(.*);$)
     $1   $2          $3$4    $5    $6
  という部分を指定できるので「$2 $4$5$6」になる。
  $3は$4 $5 $6を含む。
  procedure aaa( / function bbb: / procedure ccc;
  どの形式でも関数名だけ取得することができる。

◇レベル3
  このレベルでinterface部の type と uses を見つける。
  レベル2と3を合わせたかったのだが、$9を超えてしまうために
  取得できなかったので、分離した。

    (^|.*\s+)(type|uses)
      行頭もしくはスペースが1つでもある場合の
      type か uses をみつけて
    (\s+(.*)$|$)
      その後にスペースか行が終わる条件を指定する

  出力文字は
    (^|\s+)(type|uses)(\s+(.*)$|$)
     $1   $2
  なので「$2」になる。

◇レベル4
  このレベルでは「TForm1 = class 」という文字をヒットさせる

    (^|\s+)(.*)
      行頭もしくはスペースが1つでもあり
      その後に文字が続き
    \s+=
      スペースが一つあって=記号があり
    (.*)\s+
      何か文字がありスペースが続く
      ※これは packed record 指定の対応
    (class|record|object).*
      class か record か object 指定の場合に
      ヒットするようにする。

  出力文字は
    (^|\s+)(.*)\s+=(.*)\s+(class|record|object).*
     $1   $2   $3   $4
  なので「$2 $3$4」となる。

◇レベル5
  ここでは interface 部の type TForm = class のメソッド
  procedure / function / constructor / destructor
  を見つけるための文字をヒットさせる

    ^.*\s+
      行頭で何か文字がありスペースが少なくとも1文字あって
    (procedure|function|constructor|destructor)\s+
      procedure 等があってスペースが1文字入り
    ((.*)\(.*$
      「\(」は括弧記号を表す。***(***行末形式
    |(.*):.*$
      もしくは、***:***行末形式
    |(.*);$)
      もしくは、***;行末形式

  出力文字は
    ^.*\s+(procedure|function|constructor|destructor)\s+((.*)\(.*$|(.*):.*$|(.*);$)
        $1                      $2$3    $4    $5
    なので「$1 $3$4$5」となる。


interface部分の var や const は
implementationのメソッド内の var や const と条件区別がつきにくかったので
レベルにはいれてません。

「コメントを縮小可能にする」のオプションは
連続したコメントアウトをアウトラインツリーとは関係なく折り畳みできるので
ONにしておく方が便利なようです。

スポンサーサイト

| 未分類 | 12:55 | comments:0 | trackbacks(-) | TOP↑

COMMENT















非公開コメント

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。