◀ANSI版開発トップへ
  • 2441 C++用アウトライン解析の修正
    • 2442 Re:C++用アウトライン解析の修正
      • 2445 Re2:C++用アウトライン解析の修正
        • 2446 Re3:C++用アウトライン解析の修正
          • 2447 Re4:C++用アウトライン解析の修正
    • 2450 Re: C++用アウトライン解析の修正
      • 2465 Re2: C++用アウトライン解析の修正
    • 2467 アルファベット順にソート
    • 2471 Re: C++用アウトライン解析の修正
      • 2472 Re2: C++用アウトライン解析の修正
  • [2441] C++用アウトライン解析の修正 こおり 2002年10月28日 07:48

    こんにちは。

    C++のアウトライン解析のコードを次のように修正してみました。
    ・namespaceに対応
    ・クラス定義の中に関数の実装が含まれている場合でもアウトラインを表示

    http://www.egroups.co.jp/files/sakura-editor/Developer/Source/cpp_outline_2002_10_23.lzh
    • [2442] Re:C++用アウトライン解析の修正 こおり 2002年10月28日 17:43

      すいません。
      バグがあったので修正しました。

      http://www.egroups.co.jp/files/sakura-editor/Developer/Source/cpp_outline_2002_10_23_2.lzh
      • [2445] Re2:C++用アウトライン解析の修正 げんた 2002年10月29日 14:58

        cpp_outline_2002_10_23_3.lzhというのもあるようですが,これはなんでしょう?
        • [2446] Re3:C++用アウトライン解析の修正 こおり 2002年10月29日 20:30

          ▼ げんたさん
          > cpp_outline_2002_10_23_3.lzhというのもあるようですが,これはなんでしょう?

          cpp_outline_2002_10_23_2.lzhのreadme.txtに書いてある
          「残っている問題点」を修正した物なのですが、
          アップロードした後で、

          void A<int>::B(){}

          のような関数を正しく解析できないことに気づき、
          「前の版に致命的な問題が見つかったわけでもないので、
          直してから改めて掲示板に投稿しよう」
          とか考えてほったらかしにしていました。
          # しかしその修正は未だできず。

          まぎらわしくてすみません。
          • [2447] Re4:C++用アウトライン解析の修正 こおり 2002年10月29日 22:52

            > 「前の版に致命的な問題が見つかったわけでもないので、
            と、言ったそばから致命的な問題が見つかりました。

            関数やクラスの定義とは関係ない{}があると
            不正なメモリを参照します。

            とりあえず修正しましたが、
            void A<int>::B(){}
            が正しく解析できないのはそのままです。

            さらに、
            template<> class A<B::C> {}
            のようなクラスも正しく解析できませんでしたね...。

            http://www.egroups.co.jp/files/sakura-editor/Developer/Source/cpp_outline_2002_10_23_4.lzh
    • [2450] Re: C++用アウトライン解析の修正 げんた 2002年10月30日 01:59

      >C++のアウトライン解析のコードを次のように修正してみました。
      >・namespaceに対応
      >・クラス定義の中に関数の実装が含まれている場合でもアウトラインを表示

      試してみた感想.
      1. C++でクラス内のほとんどは宣言なのに,それを全部宣言として出す必要があるのか.

      2. 分割されたネームスペースに対応してないのね.
      namespace a {
      };
      namespace b {
      };
      namespace a {
      };

      となっていると"a 名前空間"が2つ出る.

      これ以上の変更は次の版が出た後にしてもらえると助かります.近々リリース予定ですので.
      • [2465] Re2: C++用アウトライン解析の修正 こおり 2002年10月31日 21:14

        感想どうも~。

        > 1. C++でクラス内のほとんどは宣言なのに,それを全部宣言として出す必要があるのか.
        私の場合、仮想関数の宣言の近くに
        長いコメントを付けたりすることがあるので
        結構役立っています。

        しかし、宣言を表示しないというのも、
        それはそれで便利そうですね...。

        とりあえず、CEditDoc::MakeFuncList_Cに
        メンバ関数の宣言を表示する、しないを指定する
        引数を追加してみました。

        > 2. 分割されたネームスペースに対応してないのね.
        対応させました。
        上の例だと

        A 名前空間(1)
         定義位置(1)
         定義位置(5)
        B 名前空間(3)
         定義位置(3)

        ※括弧内の数字はダブルクリックしたときにジャンプする位置で
        表示はされない。

        になります。
        namespaceの分割数が多くなってくると
        「定義位置」の項目が邪魔かも。

        http://www.egroups.co.jp/files/sakura-editor/Developer/Source/cpp_outline_2002_10_30_a-1.lzh
    • [2467] アルファベット順にソート こおり 2002年11月01日 02:37

      一般掲示板の方で要望が出ていた
      アウトライン解析結果のソート機能を付けてみました。

      http://www.egroups.co.jp/files/sakura-editor/Developer/Source/cpp_outline_2002_10_30_a-2.lzh
    • [2471] Re: C++用アウトライン解析の修正 げんた 2002年11月04日 12:08

      不具合発見です.

      class a : public b
      {}
      だと正しく aクラスと認識されますが,
      class a: public b
      {}
      とクラス名と後ろの:の間にスペースがないとbクラスと認識されてしまいます.
      • [2472] Re2: C++用アウトライン解析の修正 こおり 2002年11月04日 20:23

        修正しました。

        http://www.egroups.co.jp/files/sakura-editor/Developer/Source/cpp_outline_2002_10_30_a-3.lzh
        です。