◀ANSI版開発トップへ
  • 1337 PPA.DLL
    • 1338 Re:PPA.DLL
      • 1339 Re2:PPA.DLL
        • 1340 Re3:PPA.DLL
          • 1341 Re4:PPA.DLL
          • 1343 Re4:PPA.DLL
          • 1358 Re3:PPA.DLL
        • 1342 Re3:PPA.DLL
          • 1344 Re4:PPA.DLL
            • 1345 Re5:PPA.DLL
              • 1346 Re6:PPA.DLL
                • 1347 Re7:PPA.DLL
      • 1357 Re:PPA.DLL
    • 1359 RE: PPA.DLL
      • 1361 Re2: PPA.DLL
        • 1364 Re2: PPA.DLL
          • 1372 nScript
    • 1365 Re:PPA.DLL
      • 1366 Re2:PPA.DLL
  • [1337] PPA.DLL やざき 2002年01月26日 18:37

    みなさまからの情報に基づき、PPA.DLLを試しています。
    PPA.DLLが持っている機能はあっさり利用できました。

    ひと通り実装したら、アップロードします。お楽しみに☆
    • [1338] Re:PPA.DLL げんた 2002年01月26日 20:29

      ▼ やざきさん
      > ひと通り実装したら、アップロードします。
      早いっ!早すぎる!

      ところで、PPA実装したら今あるキーマクロに毛の生えたようなやつはどうするの?2重投資でちょっともったいないような気がしますが。

      制御構文や変数が扱えるので複雑なことができる反面、マクロが無限ループになったら本体も死亡となる危険性がありません?杞憂かな?

      実装するときにはPPAがなくても使えるようにDynamic Loadingでお願いします。

      CDllHandlerを継承して使ってください。
      • [1339] Re2:PPA.DLL やざき 2002年01月26日 20:41

        ▼ げんたさん
        > ところで、PPA実装したら今あるキーマクロに毛の生えたようなやつはどうするの?2重投資でちょっともったいないような気がしますが。

        幸か不幸か、いまのマクロの構文も、PPAは理解してくれそうなので、実行部分の実装は削除したいと思ってます。
        PPA.DLLが無くても起動はできるけど、マクロの実行はできなくなりますが。

        コメントを希望します。
        • [1340] Re3:PPA.DLL hor 2002年01月26日 21:46

          ▼ やざきさん
          > 幸か不幸か、いまのマクロの構文も、PPAは理解してくれそうなので、実行部分の実装は削除したいと思ってます。
          > PPA.DLLが無くても起動はできるけど、マクロの実行はできなくなりますが。
          >
          > コメントを希望します。

          私は…DLLが無かったらキーマクロも外部マクロも一切使えません…で良いと思います。

          ところで手元で以下の変更を行ったのですが…UPするのはPPA.DLLの実装が終わってからにしたほうがいいですか???

          ssrc_2002-01-22.zip + title_noflick.zip + RectangleEdit.lzh から
          [変更した内容]
          ○1.IsURLの最適化 (2002/1/24 みくさん)
          ○2.正規表現置換における改行コードの扱いを修正 (2002/1/26 noviceさん)
          ●3.上方向検索時のカーソル行アンダーラインのちらつき抑止
          ●4.正規表現置換で置換後文字列が長いとコケるのを修正
          ●5.先頭(末尾)から再検索するオプションを追加(検索/置換ダイアログ)
          ●6.検索後のメッセージをステータスバーに表示
          [変更したソース]
          CBregexp.* CDlgFind.cpp CDlgReplace.cpp
          CEditView.* CEditView_command.cpp CEditView_command_new.cpp
          CShareData.* CShareData_new.cpp etc_uty.cpp
          sakura.hh sakura_rc.*
          • [1341] Re4:PPA.DLL げんた 2002年01月26日 22:24

            ▼ horさん
            >●6.検索後のメッセージをステータスバーに表示
            おお!これもほしいと思っていたんですよ。

            検索に限らずメッセージを出すところは
            * メッセージボックス
            * ステータスバー
            * 出さない
            から選べて、音の有無もそれとは独立に選べるようになるとうれしいと思っていましたが、その辺の拡張は可能な作りになっています?(わくわく)
          • [1343] Re4:PPA.DLL やざき 2002年01月26日 22:34

            ▼ horさん
            > ▼ やざきさん
            > > 幸か不幸か、いまのマクロの構文も、PPAは理解してくれそうなので、実行部分の実装は削除したいと思ってます。
            > > PPA.DLLが無くても起動はできるけど、マクロの実行はできなくなりますが。
            > >
            > > コメントを希望します。
            >
            > 私は…DLLが無かったらキーマクロも外部マクロも一切使えません…で良いと思います。

            一切使えないのはいいですよねー。魅力的です。


            > ところで手元で以下の変更を行ったのですが…UPするのはPPA.DLLの実装が終わってからにしたほうがいいですか???

            今でもいいですし、まだでもいいです。(^^;
            というか、PPA.DLLの実装をはじめる前の段階のソースをアップロードしたほうがいい?
            もちろん、上のhorさんの修正も混ぜた状態で。
          • [1358] Re3:PPA.DLL みく 2002年01月27日 09:23

            >タイトル: Re3:PPA.DLL
            >発言者: hor
            >[変更した内容]
            > ○1.IsURLの最適化 (2002/1/24 みくさん)

            URLキャラクタってあれで良かったですか?
            一応メールソフトBeckyで認識するキャラ+αにしたつもりなんで
            (α:本来URLにはないキャラ)、元のIsURLとは微妙に仕様が変わっ
            ています。
        • [1342] Re3:PPA.DLL げんた 2002年01月26日 22:26

          ▼ やざきさん
          > いまのマクロの構文も、PPAは理解してくれそう
          これは現在と同名の関数をPPAに登録することで、同じファイルをPPAで実行可能ということですよね。

          Pascal(というよりPPA)って /* */ もコメントと認識してくれるんでしたっけ?

          > PPA.DLLが無くても起動はできるけど、マクロの実行はできなくなりますが。
          記録だけできて再生できないというのもちょっと変な感じがしますが...
          • [1344] Re4:PPA.DLL やざき 2002年01月26日 22:39

            ▼ げんたさん
            > ▼ やざきさん
            > > いまのマクロの構文も、PPAは理解してくれそう
            > これは現在と同名の関数をPPAに登録することで、同じファイルをPPAで実行可能ということですよね。
            >
            > Pascal(というよりPPA)って /* */ もコメントと認識してくれるんでしたっけ?

            してくれません。それと文字列の指定が'(シングルコーテーション)でした。ので、すっかりそのまま持ってくるのは無理ですね。

            それから、PPA.DLLのビルトイン関数と重なるものがあるので、非常に困りどころ。
            例えばDeleteですが、サクラエディタのほうは、引数ナシで一文字削除。PPA.DLLは
            function Delete(S:String; Index, Count: Integer): String;
            です。
            サクラエディタ側すべてに接頭語でもつけるかなぁ。SAKURA_Charとか。

            > > PPA.DLLが無くても起動はできるけど、マクロの実行はできなくなりますが。
            > 記録だけできて再生できないというのもちょっと変な感じがしますが...

            PPA.DLLが無いと記録できないようにする案に2票入ってます(わたしとhorさん)
            • [1345] Re5:PPA.DLL hor 2002年01月26日 23:34

              ▼ やざきさん
              > それから、PPA.DLLのビルトイン関数と重なるものがあるので、非常に困りどころ。
              > 例えばDeleteですが、サクラエディタのほうは、引数ナシで一文字削除。PPA.DLLは
              > function Delete(S:String; Index, Count: Integer): String;
              > です。
              > サクラエディタ側すべてに接頭語でもつけるかなぁ。SAKURA_Charとか。

              PPAにあわせてサクラ側の実装を思い切り変更するのは難しそうなので、
              とりあえずサクラ専用の命令語を作るしかないとは思うのですが、
              命令語が長いとちょっとつらいかもしれません … S_Char とか sChar なんてどうでしょ?

              > > > PPA.DLLが無くても起動はできるけど、マクロの実行はできなくなりますが。
              > > 記録だけできて再生できないというのもちょっと変な感じがしますが...
              >
              > PPA.DLLが無いと記録できないようにする案に2票入ってます(わたしとhorさん)

              PPA.DLLって結構大きなファイルだったんですね…
              Diskに入れてよそのPCに持っていく人にとっては
              サクラ単体で単純なキー操作の記録・再生を実行出来た方がいいかも。

              それから、一応 hor_2002-01-26.lzh をUpしておきましたので良かったら使って下さい。

              ssrc_2002-01-22.zip + title_noflick.zip + RectangleEdit.lzh から
              [変更した内容]
              ○1.IsURLの最適化 (2002/1/24 みくさん)
              ○2.正規表現置換における改行コードの扱いを修正 (2002/1/26 noviceさん)
              ●3.上方向検索時のカーソル行アンダーラインのちらつき抑止
              ●4.正規表現置換で置換後文字列が長いとコケるのを修正
              ●5.先頭(末尾)から再検索するオプションを追加(検索/置換ダイアログ)
              ●6.検索後のメッセージをステータスバーに表示
              ★置換ダイアログ出しっぱなしだとステータスバーのメッセージが一瞬で消えてしまう。
              …どなたか修正していただけますか? 私にはわからなかったので…

              ▼げんたさん
              > 検索に限らずメッセージを出すところは
              > * メッセージボックス
              > * ステータスバー
              > * 出さない
              > から選べて、音の有無もそれとは独立に選べるようになるとうれしいと思っていましたが、
              > その辺の拡張は可能な作りになっています?(わくわく)

              とりあえずそこまでの実装はしてないんですけど、
              CEditView::SendStatusMassage( const char* msg )を上検索,下検索,上行マーク,下行マ-ク
              から呼び出しているだけなので、その気になれば各ダイアログに配置したオプションを
              共通設定に移動することで各機能共通のUIを選択するように変更することは出来ると思います。

              でも、その前に CShareData::Init の中の初期値設定を見直しませんか?

              試しに強調キーワードの中身をコメントしてみたらずいぶんファイルサイズが小さくなりました。
              デフォルトキー割り当てと、タイプ別設定の「基本」以外と、すべての強調キーワード
              をサクラ本体から取り除いてテキストファイルで配布するようにしたら
              本体のファイルサイズは小さく出来るし、起動の時間も短縮できると思います。

              複数のファイルをインポートして一気に設定を更新する…あるいは、
              起動時にINIファイルが無かっらkwdファイルとかを探して自動設定してくれる
              ような機能を実装すれば操作性もそんなに悪くならないと思うのですが…どう思います?
              • [1346] Re6:PPA.DLL げんた 2002年01月27日 00:12

                ▼ horさん
                > ▼ やざきさん
                > > サクラエディタ側すべてに接頭語でもつけるかなぁ。SAKURA_Charとか。
                全部につける必要はないんじゃないですか?あ、でも付けた方がわかりやすいかな。

                ところで、オブジェクトみたいな概念を導入するのは難しいですかねぇ。
                たとえば、Viewオブジェクト→キャレット位置 とか。わかります?

                > CEditView::SendStatusMassage( const char* msg )を呼び出しているだけ
                それなら設定に応じてSendStatusMassage, MessageBox, 無視の3パターンのどれかを行う関数を1つ追加すればOKですね。

                > 複数のファイルをインポートして一気に設定を更新する…あるいは、
                > 起動時にINIファイルが無かっらkwdファイルとかを探して自動設定してくれる
                > ような機能を実装すれば操作性もそんなに悪くならないと思うのですが…どう思います?
                私が以前から思っていたことは、設定を共有メモリからファイルに追い出して、ファイルタイプが確定した後で必要なもののみ読み込んで使うようにすれば、設定数の上限を撤廃できるということです。

                タイプ別設定を直接参照しているところをCEditDoc::GetDocumentAttributeに置き換えたのはそのためです。(ってだいぶ昔なので知らないと思いますが)

                ただ、そうすると設定変更したときに他のウィンドウに直ちに反映しなくなるので、更新を知らせる同報メッセージを送るなどの方法は考えないといけません。
                • [1347] Re7:PPA.DLL やざき 2002年01月27日 00:42

                  > ところで、オブジェクトみたいな概念を導入するのは難しいですかねぇ。
                  > たとえば、Viewオブジェクト→キャレット位置 とか。わかります?

                  きっと無理でしょう。PPA.DLLの守備範囲では表記できないんですもの。
                  ちなみにスクリプト内で関数を作ることも無理です。

                  #PPA.DLLと異なる話はまた別のスレッドでお願い~。
      • [1357] Re:PPA.DLL みく 2002年01月27日 09:23

        >タイトル: Re:PPA.DLL
        >発言者: げんた
        >制御構文や変数が扱えるので複雑なことができる反面、マクロが無限ループになったら本体も死亡となる危険性がありません?杞憂かな?

        AbortというAPIがあります。
        実行を監視して60秒以内に戻らなければAbortしてもよいかユーザに確認するとか。
        マクロ実行中はメニューに「マクロの中止」を追加しておくとか。
    • [1359] RE: PPA.DLL みく 2002年01月27日 09:23

      >タイトル: PPA.DLL
      >発言者: やざき
      >みなさまからの情報に基づき、PPA.DLLを試しています。
      >PPA.DLLが持っている機能はあっさり利用できました。
      >
      >ひと通り実装したら、アップロードします。お楽しみに☆

      早すぎ

      他の言語は検討しなくっていいのかなぁ。
      • [1361] Re2: PPA.DLL やざき 2002年01月27日 12:18

        ▼ みくさん
        > 他の言語は検討しなくっていいのかなぁ。

        ひとまずPPA.DLLを実装&検証してから、ほかのスクリプト言語に移ってもいいのではないかと。

        ちなみに、わたしが見て回った限りでは有望だったのは
        nScript(http://www.nakka.com/)です。
        言語仕様(http://www.nakka.com/soft/ns/ns.txt)はC言語風で、ソースを公開しています。
        が、ライセンスはよくわからずでした。

        では~
        • [1364] Re2: PPA.DLL みく 2002年01月27日 13:06

          >タイトル: Re2: PPA.DLL
          >発言者: やざき
          >▼ みくさん
          >> 他の言語は検討しなくっていいのかなぁ。
          >
          >ひとまずPPA.DLLを実装&検証してから、ほかのスクリプト言語に移ってもいいのではないかと。

          最初なので、試してみないとわからないこともあるし。


          >ちなみに、わたしが見て回った限りでは有望だったのは
          >nScript(http://www.nakka.com/)です。
          >言語仕様(http://www.nakka.com/soft/ns/ns.txt)はC言語風で、ソースを公開しています。
          >が、ライセンスはよくわからずでした。

          確かにライセンスが。作者は全然気にしたことがないのでしょう。
          マクロを呼び出す方法もよくわかりません。
          #ソースがあるからどうにでもなるでしょうが。

          他は、WSH (Windows標準)。VB風?
          実行はPPAと同じようにExecuteなので簡単だけど。
          スクリプトからサクラエディタマクロを呼ぶときにどうする
          かわかりませんでした。サクラエディタコントロールみたい
          なものを作るのでしょうか。
          • [1372] nScript げんた 2002年01月27日 15:43

            ▼やざき
            >>nScript(http://www.nakka.com/)です。
            >確かにライセンスが。作者は全然気にしたことがないのでしょう。
            >マクロを呼び出す方法もよくわかりません。
            >#ソースがあるからどうにでもなるでしょうが。

            なんか,構文解析の練習でとりあえず作ってみたんじゃないでしょうかね.あまり本格的ではないし.
            その反面サイズが小さくて良い.あと,関数が定義できるのも利点かな.

            ライセンスは作者に直接問い合せてみるしかないでしょう.どのみちソース自身に手を加えないと使えないので,修正の上で使うことを予め伝えた上でこちらの希望のライセンス(zlib/libpngとかMITとか)でOKかというアプローチがいいと思います.

            --
            スクリプト部分とを複数選べるようにするために,スクリプトと本体の間にFacadeオブジェクトを作って関数は全てそこに実装し,マクロはすべてそこを通して呼ぶようにするというのはどうでしょう?こうすればマクロを複数サポートすることも不可能ではない.

            ただ,選べますよ~とすると人によって異なるスクリプトで作ってしまってユーザ間での再利用が面倒くさくなる(結局全部インストールしないと他人が作ったのが再利用できない)という諸刃の剣.素人にはお勧めできない.(って違うか)
    • [1365] Re:PPA.DLL やざき 2002年01月27日 13:51

      ▼ やざきさん
      > みなさまからの情報に基づき、PPA.DLLを試しています。
      > PPA.DLLが持っている機能はあっさり利用できました。
      >
      > ひと通り実装したら、アップロードします。お楽しみに☆

      PPA.DLLを使ってマクロを実行するようにしました。
      CPPA.zipでござんす。

      記録は以前のままなので、記録したマクロは実行できません(をい)
      これから試行錯誤しながらクラスを整えていきたいと思います。
      気がついたことがあればコメントしてくださいませ。

      #sample.macをつけました。
      • [1366] Re2:PPA.DLL やざき 2002年01月27日 13:53

        PPA.DLLのダウンロードは、コチラ
        http://homepage1.nifty.com/ht_deko/junkbox.html#PPA