◀ANSI版開発トップへ
  • 892 ssrc_2001-12-01_plus.lzh 修正
    • 899 Re: ssrc_2001-12-01_plus.lzh 修正
      • 901 Re2: ssrc_2001-12-01_plus.lzh 修正
        • 908 Re3: ssrc_2001-12-01_plus.lzh 修正
          • 910 Re4: ssrc_2001-12-01_plus.lzh 修正
            • 915 Re5: ssrc_2001-12-01_plus.lzh 修正
      • 904 Re2: ssrc_2001-12-01_plus.lzh 修正
        • 906 Re3: ssrc_2001-12-01_plus.lzh 修正
          • 909 Re4: ssrc_2001-12-01_plus.lzh 修正
            • 912 Re5: ssrc_2001-12-01_plus.lzh 修正
              • 914 Re6: ssrc_2001-12-01_plus.lzh 修正
                • 916 Re7: ssrc_2001-12-01_plus.lzh 修正
                • 917 Re7: ssrc_2001-12-01_plus.lzh 修正
                  • 918 Re8: ssrc_2001-12-01_plus.lzh 修正
                    • 919 Visual Studioとリソース編集
                      • 921 Re:Visual Studioとリソース編集
                        • 926 Re2:Visual Studioとリソース編集
                      • 922 Re:Visual Studioとリソース編集
                        • 927 Re2:Visual Studioとリソース編集
        • 930 Re3: ssrc_2001-12-01_plus.lzh 修正
  • [892] ssrc_2001-12-01_plus.lzh 修正 hor 2001年12月11日 20:42

    ssrc_2001-12-01_plus.lzh の
    「1行の範囲内のTABがINDENTと解釈される不具合」を修正して、
    ssrc_2001-12-01_plus.lzh からの変更個所 (CEditView_Command.cpp , Readme.txt)を
    ssrc_2001-12-01_plus1.lzh にUpしました。
    • [899] Re: ssrc_2001-12-01_plus.lzh 修正 げんた 2001年12月13日 18:10

      horさんの変更点を一通り見て気づいたことです.このうちいくつかは既に修正済みかもしれませんが,本日の修正が見られないのでご容赦ください.

      ▼動作が変?
      範囲選択内の置換を選ぶとボタンがDisableになる。
      CDocLineMgr.cpp: マークされた行で改行するとマーク行が増殖するのは使いにくくないか。

      ▼実装関連
      CDlgReplace.cpp (551,5): IDC_BUTTON_REPALCEALL スペルミス
      CDlgReplace OnBnClicked が関数として大きすぎ。別関数に切り出せないか。

      CDocLine.h int m_bBookmarkは32bitあるので、ON/OFFしか使わないのはもったいない。既存のbModifyの未使用スペースを使えないか?変数への直接アクセス→アクセス関数として、bit操作するようにするというのは?それとも,ON/OFF以上の情報を持たせるようにするか.いずれにしてもアクセス関数にして置いた方が後で楽.

      CDocLine.h NULL/TRUE/FALSEを個別に定義するのはあまりやらない方がいいような気がする.#ifdefで囲んであるから未定義の時だけ読み込まれるが,別の場所で既に定義されていると場所によって値が変わる可能性がある.NULLは(void*)0 だったように思うが.

      CPropComKeybind.cpp: #define -> const char[] にする。

      以下は今回の修正とは関係ないですが,気になったので一応書いておきます.

      ▼もともとあった問題。
      /$/で検索すると改行マークの後ろにcaretが移動するので、実質的に行末でなく次の行の行頭を指定したことになってしまう。
      長い行の横スクロールの遅さを再確認。横長の行が10行以上あると再描画が目に見えるほど遅くなる。
      1関数で数百行を超える関数がいくつかあるが何とかならないか.
      • [901] Re2: ssrc_2001-12-01_plus.lzh 修正 hor 2001年12月13日 20:24

        ▼ げんたさん
        > ▼動作が変?
        > 範囲選択内の置換を選ぶとボタンがDisableになる。
        検索・置換ボタンを押すことで範囲選択が失われることを防ぐ意味でこのような振る舞いにしました。 (VC++のまねです)

        > CDocLineMgr.cpp: マークされた行で改行するとマーク行が増殖するのは使いにくくないか。
        行末で改行しても増殖してるようなので修正しておきます。行の途中で改行したら増殖するのは個人的には気に入っているのですが・・・気持ち悪いですか?

        > ▼実装関連
        > CDlgReplace.cpp (551,5): IDC_BUTTON_REPALCEALL スペルミス
        これはもともとです。まいっかって思ってそのままにしてます。

        > CDlgReplace OnBnClicked が関数として大きすぎ。別関数に切り出せないか。
        自覚はしてますが、正規表現の置換(s/...やtr/...)が実装されるまでの"つなぎ"のつもりでロジックを加えました。
        一概に大きな関数が悪だとも言えない気がしますので、そのままでもいいかな、と思ってます。

        > CDocLine.h int m_bBookmarkは32bitあるので、ON/OFFしか使わないのはもったいない。既存のbModifyの未使用スペースを使えないか?変数への直接アクセス→アクセス関数として、bit操作するようにするというのは?それとも,ON/OFF以上の情報を持たせるようにするか.いずれにしてもアクセス関数にして置いた方が後で楽.
        変更します。

        > CDocLine.h NULL/TRUE/FALSEを個別に定義するのはあまりやらない方がいいような気がする.#ifdefで囲んであるから未定義の時だけ読み込まれるが,別の場所で既に定義されていると場所によって値が変わる可能性がある.NULLは(void*)0 だったように思うが.
        > CPropComKeybind.cpp: #define -> const char[] にする。
        これも、もともとです。上記の場所だけでなく全ソースで調整したほうが良いと思います。

        > /$/で検索すると改行マークの後ろにcaretが移動するので、実質的に行末でなく次の行の行頭を指定したことになってしまう。
        ヘルプなどに注意書きがあれば、そうゆう仕様ってことにしても実害はないような気がします。
        ちなみに/^/で検索してもへんなかんじになります。

        > 長い行の横スクロールの遅さを再確認。横長の行が10行以上あると再描画が目に見えるほど遅くなる。
        横長の行が1行でもかなりはっきり遅くなります。
        個人的に「折り返し無しモード」と並んで改造したい候補のトップなのですが、C++触るのが今回はじめてで、どこがボトルネックなのかをしらべる方法がわからないです・・・
        ・・・どこがボトルネックなんでしょう?

        -以上、長文失礼しました-
        • [908] Re3: ssrc_2001-12-01_plus.lzh 修正 げんた 2001年12月13日 22:14

          ▼horさん
          >> 範囲選択内の置換を選ぶとボタンがDisableになる。
          >検索・置換ボタンを押すことで範囲選択が失われることを防ぐ
          なるほど,「全て置換」は使えるんですね.

          >> CDocLineMgr.cpp: マークされた行で改行するとマーク行が増殖するのは使いにくくないか。
          >行の途中で改行したら増殖するのは個人的には気に入っているのですが
          複数行が1まとまりにカウントされるならいいと思うのですが,Bookmark一覧を見たときに増殖した行が全部出てくるのはちょっと冗長かなぁと思います.行数が多いと「次のブックマーク」もなかなか進みませんし.
          • [910] Re4: ssrc_2001-12-01_plus.lzh 修正 hor 2001年12月13日 22:44

            ▼ げんたさん
            > >> CDocLineMgr.cpp: マークされた行で改行するとマーク行が増殖するのは使いにくくないか。
            > >行の途中で改行したら増殖するのは個人的には気に入っているのですが
            > 複数行が1まとまりにカウントされるならいいと思うのですが,Bookmark一覧を見たときに増殖した行が全部出てくるのはちょっと冗長かなぁと思います.行数が多いと「次のブックマーク」もなかなか進みませんし.
            行頭・行末以外で改行したときだけ増殖する・・・なので、増え過ぎるって事があまり無いようなきもするのですが・・・
            一覧ではマーク行をすべて表示するけど、
            次(前)のブックマークを探すときは、マーク行のカタマリ毎に移動するようにしましょうか?
            • [915] Re5: ssrc_2001-12-01_plus.lzh 修正 hor 2001年12月14日 09:37

              > ▼ げんたさん
              > > >> CDocLineMgr.cpp: マークされた行で改行するとマーク行が増殖するのは使いにくくないか。
              > > >行の途中で改行したら増殖するのは個人的には気に入っているのですが
              > > 複数行が1まとまりにカウントされるならいいと思うのですが,Bookmark一覧を見たときに増殖した行が全部出てくるのはちょっと冗長かなぁと思います.行数が多いと「次のブックマーク」もなかなか進みませんし.
              > 行頭・行末以外で改行したときだけ増殖する・・・なので、増え過ぎるって事があまり無いようなきもするのですが・・・
              > 一覧ではマーク行をすべて表示するけど、
              > 次(前)のブックマークを探すときは、マーク行のカタマリ毎に移動するようにしましょうか?

              ↑忘れて下さい。増殖しないようにします。
              変にこだわってすいませんでした。

              ソートやマージの実装部分についてもコメントをいただけるとうれしいです。
      • [904] Re2: ssrc_2001-12-01_plus.lzh 修正 あろか 2001年12月13日 21:23

        ▼ げんたさん
        > ▼もともとあった問題。
        > 長い行の横スクロールの遅さを再確認。横長の行が10行以上あると再描画が目に見えるほど遅くなる。
        1行表示するたびにCEditDocとCEditViewとCMemoryの3クラスそれぞれで行スキャンしているのが影響大と思います。
        タブ幅を計算する処理を一ヶ所にまとめてトレースしたらカーソル移動や再描画のたびにすごいことになりました。
        しらべたのは数ヶ月前なのでクラスは間違っているかもしれません。
        #タブ幅を可変にする機能ってどのくらい需要ありますかね?
        • [906] Re3: ssrc_2001-12-01_plus.lzh 修正 hor 2001年12月13日 21:34

          ▼ あろかさん
          > #タブ幅を可変にする機能ってどのくらい需要ありますかね?
          まったく変更できないとちょっとつらいです。
          でも、タイプ毎に別々のタブ幅を設定したり、
          タブ幅変更後すぐに反映させるとゆうのはオーバースペックのような気もします。
          • [909] Re4: ssrc_2001-12-01_plus.lzh 修正 やざき 2001年12月13日 22:17

            ▼ horさん
            > ▼ あろかさん
            > > #タブ幅を可変にする機能ってどのくらい需要ありますかね?
            > まったく変更できないとちょっとつらいです。
            > でも、タイプ毎に別々のタブ幅を設定したり、
            > タブ幅変更後すぐに反映させるとゆうのはオーバースペックのような気もします。

            タイプごとに別々のタブ幅を設定したいに一票。
            秀丸にそういう機能があって、現に使ってます。

            タブ幅変更後すぐに反映も一票。
            でも、すぐに反映させなかったらいつ反映するの?
            • [912] Re5: ssrc_2001-12-01_plus.lzh 修正 hor 2001年12月13日 22:57

              ▼ やざきさん
              > タイプごとに別々のタブ幅を設定したいに一票。
              > タブ幅変更後すぐに反映も一票。
              > でも、すぐに反映させなかったらいつ反映するの?

              次に開くときとか・・・んなわけないかぁ・・・
              って事で機能縮小せずにタブ幅計算ロジックのダイエットを考えるって事で一段落かな?
              • [914] Re6: ssrc_2001-12-01_plus.lzh 修正 あろか 2001年12月14日 04:54

                ▼ horさん
                > ▼ やざきさん
                > > タイプごとに別々のタブ幅を設定したいに一票。
                > > タブ幅変更後すぐに反映も一票。
                ごめんなさい。言葉足らずでした。例えばFORTRANモードで一行内で幅が1,6,8,8,,というようにしたり、Cのネストが深くなってきたらインデントを浅くする(4,4,4,2,2,,,)ような機能です。
                もっと欲張るとcsvモードでタブ一つずつに任意の幅を設定できるとか←明らかにオーバースペック…
                #タイプ毎のタブ幅と設定後すぐ反映はすでにありますよ。
                • [916] Re7: ssrc_2001-12-01_plus.lzh 修正 やざき 2001年12月14日 09:39

                  ▼ あろかさん
                  > ▼ horさん
                  > > ▼ やざきさん
                  > > > タイプごとに別々のタブ幅を設定したいに一票。
                  > > > タブ幅変更後すぐに反映も一票。
                  > ごめんなさい。言葉足らずでした。例えばFORTRANモードで一行内で幅が1,6,8,8,,というようにしたり、Cのネストが深くなってきたらインデントを浅くする(4,4,4,2,2,,,)ような機能です。
                  > もっと欲張るとcsvモードでタブ一つずつに任意の幅を設定できるとか←明らかにオーバースペック…
                  > #タイプ毎のタブ幅と設定後すぐ反映はすでにありますよ。

                  ああ、そういうことでしたか。
                  第一印象は不要そう。でも今より早く動くなる(とか、ソースが綺麗に
                  なる)なら実装するのは否定しませぬ。
                  遅くなっちゃうのはやだなぁ。
                • [917] Re7: ssrc_2001-12-01_plus.lzh 修正 hor 2001年12月14日 09:42

                  ▼ あろかさん
                  > 例えばFORTRANモードで一行内で幅が1,6,8,8,,というようにしたり、Cのネストが深くなってきたらインデントを浅くする(4,4,4,2,2,,,)ような機能です。
                  > もっと欲張るとcsvモードでタブ一つずつに任意の幅を設定できるとか←明らかにオーバースペック…

                  MS-Wordみたいにルーラー上でタブ幅を調整できる機能があれば結構使えるかも・・・
                  でも実現するのは大変!?
                  • [918] Re8: ssrc_2001-12-01_plus.lzh 修正 やざき 2001年12月14日 10:05

                    ▼ horさん
                    > ▼ あろかさん
                    > > 例えばFORTRANモードで一行内で幅が1,6,8,8,,というようにしたり、Cのネストが深くなってきたらインデントを浅くする(4,4,4,2,2,,,)ような機能です。
                    > > もっと欲張るとcsvモードでタブ一つずつに任意の幅を設定できるとか←明らかにオーバースペック…
                    >
                    > MS-Wordみたいにルーラー上でタブ幅を調整できる機能があれば結構使えるかも・・・
                    > でも実現するのは大変!?

                    MS-Wordみたいっていうなら、
                    1行がすごく長くなって複数行になってしまったときに、
                    1行目はインデントしないで、2行目以降はインデントするオプションが
                    あると個人的にすっごく便利。熱望。
                    正規表現にマッチした行だけが、上のようなことになると
                    さらによし。

                    #Visual Studio注文しました。週明けには手に入る模様。
                    • [919] Visual Studioとリソース編集 げんた 2001年12月14日 11:45

                      >#Visual Studio注文しました。週明けには手に入る模様。
                      まさかこのエディタのために買ったわけじゃ....ってことはないか.

                      でも,現時点でリソースがVisualに編集できる現実的な方法ってVisual Studioしか無いんでしょうか.
                      フリーソフトでいいの知っている人いませんか?
                      • [921] Re:Visual Studioとリソース編集 DSコバ 2001年12月14日 16:11

                        ▼ げんたさん
                        > でも,現時点でリソースがVisualに編集できる現実的な方法ってVisual Studioしか無いんでしょうか.
                        > フリーソフトでいいの知っている人いませんか?

                        使ったことがないのでどんなものかは分かりませんが,
                        LCC-Win32にリソースエディタが付属するそうです。
                        http://www.cs.virginia.edu/~lcc-win32/
                        • [926] Re2:Visual Studioとリソース編集 げんた 2001年12月14日 19:44

                          >使ったことがないのでどんなものかは分かりませんが,
                          >LCC-Win32にリソースエディタが付属するそうです。
                          >http://www.cs.virginia.edu/~lcc-win32/
                          sakura_rc.rcの読み込みはできませんでした.残念.
                      • [922] Re:Visual Studioとリソース編集 たろさ 2001年12月14日 17:36

                        ▼ げんたさん
                        > でも,現時点でリソースがVisualに編集できる現実的な方法ってVisual Studioしか無いんでしょうか.
                        > フリーソフトでいいの知っている人いませんか?

                        実際こっちに移行するのは難しいのだろうけど、完全フリーな
                        WideStudioってのがあります。一応紹介だけ。

                        http://www.asahi-net.or.jp/~uj3s-hrby/
                        • [927] Re2:Visual Studioとリソース編集 KENCH 2001年12月14日 22:17

                          > WideStudioってのがあります。一応紹介だけ。
                          > http://www.asahi-net.or.jp/~uj3s-hrby/
                           WideStudioはリソースエディタというよりはRADツールなので、ちょっと観点が違うかも。
                           (一応MLには参加してますけど)
        • [930] Re3: ssrc_2001-12-01_plus.lzh 修正 げんた 2001年12月15日 17:41

          ▼ あろかさん
          > 1行表示するたびにそれぞれで行スキャン
          文字が入力されるとまず桁位置→メモリ位置の変換のために先頭からスキャンします。
          つぎに、CLayoutMgr::DoLayout3_new()でワードラップとコメントのために(?)ループで先頭から調べます。
          最後に画面表示の色分けのためにスキャンと。

          2番目のDoLayout3_newでコメント調査を行っている点がいまいちよくわかりません。