定数

  1. Em が ver4 になったとき(2004年)、秀丸風メソッドとプロパティを WSF で書いて COM 化しました。
    Em のサポートグループ(in Yahoo)に入ったけど、作者とコミュニティの関係が険悪だったので、
    公開することなくお蔵入りしました。そして、1週間ぐらい前に、Mery を知りました。
    秀丸エミュレーターが移植できるかもしれないと思って、ちょっといじってみました。
    editor.ExecuteCommandByID() の引数に使う定数は、そのままでは使えません。
    たとえば、Em の EEID_FILE_NEW =4096; は、Mery でも新規作成です。
    しかし、他の多くの値と機能は、一致しません。
    値 , Emの名前 , Meryの名前また機能
    4105 , EEID_SAVE_AS_CRLF , EUCでリロード MEID_FILE_RELOAD_EUC
    4131 , EEID_EDIT_COPY_PREFIX_DESELECT , 行を指定してジャンプ MEID_JUMP
    4164 , EEID_HOME , 改行の表示・非表示
    4117 , EEID_SHIFT_DOWN , マクロ->これを選択 MEID_MACRO_SELECT_THIS
    4187 , EEID_ESCAPE , window-> タブを有効にする
    4191 , EEID_DELETE_RIGHT_LINE , バージョン情報
    4153 , EEID_SELECT_CHAR , 検索ダイアログ MEID_EDIT_FIND
    4154 , EEID_SELECT_LINE , 置換ダイアログ MEID_EDIT_REPLACE

    Mery では値をどんな機能に割り当てているのか、教えてもらえないでしょうか?

     |  kinzoku  |  返信
  2. こんばんは。
    ExecuteCommandByID ですか・・・。
    マニュアルなどのどこにも掲載してませんが、良くお気づきになられましたねw
    おっしゃるとおり、Meryにもこっそり用意しています。
    (あんまりテストしてないのでちゃんと動くか怪しいものですが・・・。不具合があればご報告頂けると助かりますw)

    定数の採番基準は簡単で、Meryのメニュー「ファイル」から順番に4096からの連番になってます。
    まだ文書化できてませんので、お手数ですが機能は定数名から推測してください。

    以下、定数です。(ver 1.0.5.1821)

    MEID_FILE_NEW = 4096
    MEID_FILE_OPEN = 4097
    MEID_FILE_CLOSE_AND_OPEN = 4098
    MEID_FILE_SAVE = 4099
    MEID_FILE_SAVE_AS = 4100
    MEID_FILE_SAVE_ALL = 4101
    MEID_FILE_INSERT = 4102
    MEID_RELOAD_DETECT_ALL = 4103
    MEID_RELOAD_JIS = 4104
    MEID_RELOAD_EUC = 4105
    MEID_RELOAD_SJIS = 4106
    MEID_RELOAD_UNILE = 4107
    MEID_RELOAD_UNIBE = 4108
    MEID_RELOAD_UTF7 = 4109
    MEID_RELOAD_UTF8 = 4110
    MEID_RELOAD_UTF8N = 4111
    MEID_RELOAD_EUCKR = 4112
    MEID_RELOAD_GB2312 = 4113
    MEID_RELOAD_BIG5 = 4114
    MEID_RELOAD_1251 = 4115
    MEID_FILE_PRINT = 4116
    MEID_FILE_PRINT_PREVIEW = 4117
    MEID_FILE_SAVE_AND_CLOSE = 4118
    MEID_FILE_CLOSE = 4119
    MEID_FILE_SAVE_AND_CLOSE_ALL = 4120
    MEID_FILE_EXIT_ALL = 4121
    MEID_EDIT_UNDO = 4122
    MEID_EDIT_REDO = 4123
    MEID_EDIT_CUT = 4124
    MEID_EDIT_COPY = 4125
    MEID_EDIT_PASTE = 4126
    MEID_EDIT_COPY_TEXT_IN_QUOTES = 4127
    MEID_EDIT_DELETE = 4128
    MEID_EDIT_SELECT_ALL = 4129
    MEID_EDIT_TIME_DATE = 4130
    MEID_EDIT_JUMP = 4131
    MEID_EDIT_TAG_JUMP = 4132
    MEID_CONVERT_SELECTION_INSERT_NEW_LINES = 4133
    MEID_CONVERT_SELECTION_REMOVE_NEW_LINES = 4134
    MEID_CONVERT_SELECTION_SPLIT_LINES = 4135
    MEID_CONVERT_SELECTION_JOIN_LINES = 4136
    MEID_CONVERT_SELECTION_UPPERCASE = 4137
    MEID_CONVERT_SELECTION_LOWERCASE = 4138
    MEID_CONVERT_SELECTION_HALF_WIDTH = 4139
    MEID_CONVERT_SELECTION_FULL_WIDTH = 4140
    MEID_CONVERT_SELECTION_TABIFY = 4141
    MEID_CONVERT_SELECTION_UNTABIFY = 4142
    MEID_CONVERT_SELECTION_INCREASE_LINE_INDENT = 4143
    MEID_CONVERT_SELECTION_DECREASE_LINE_INDENT = 4144
    MEID_CONVERT_SELECTION_RECONVERT = 4145
    MEID_CONVERT_SELECTION_BASE64_DECODE = 4146
    MEID_BOOKMARKS_TOGGLE_BOOKMARK = 4147
    MEID_BOOKMARKS_NEXT_BOOKMARK = 4148
    MEID_BOOKMARKS_PREVIOUS_BOOKMARK = 4149
    MEID_BOOKMARKS_CLEAR_BOOKMARKS = 4150
    MEID_SEARCH_FIND = 4151
    MEID_SEARCH_NEXT = 4152
    MEID_SEARCH_PREVIOUS = 4153
    MEID_SEARCH_REPLACE = 4154
    MEID_SEARCH_ERASE_FIND_HIGHLIGHT = 4155
    MEID_SEARCH_FIND_IN_FILES = 4156
    MEID_SEARCH_GOOGLE_JAPANESE = 4157
    MEID_SEARCH_GOOGLE_WEB = 4158
    MEID_SEARCH_YAHOO_DICTIONARY = 4159
    MEID_VIEW_INVERT_COLORS = 4160
    MEID_VIEW_NO_WRAP = 4161
    MEID_VIEW_WRAP_BY_CHARACTERS = 4162
    MEID_VIEW_WRAP_BY_WINDOW_ = 4163
    MEID_VIEW_MARKS_SHOW_RETURNS = 4164
    MEID_VIEW_MARKS_SHOW_END_OF_FILE = 4165
    MEID_VIEW_MARKS_SHOW_TABS = 4166
    MEID_VIEW_MARKS_SHOW_SPACES = 4167
    MEID_VIEW_MARKS_SHOW_DOUBLE_BYTE_SPACES = 4168
    MEID_VIEW_TOOL_BAR_STANDARD_BUTTONS = 4169
    MEID_VIEW_TOOL_BAR_CUSTOMIZE = 4170
    MEID_VIEW_STATUS_BAR = 4171
    MEID_MACROS_START_STOP_RECORD = 4172
    MEID_MACROS_RUN = 4173
    MEID_MACROS_SAVE_AS = 4174
    MEID_MACROS_EDIT = 4175
    MEID_MACROS_SELECT = 4176
    MEID_MACROS_SELECT_THIS = 4177
    MEID_MACROS_CUSTOMIZE = 4178
    MEID_TOOLS_OPTIONS = 4179
    MEID_TOOLS_SQL_FORMAT = 4180
    MEID_TOOLS_XML_FORMAT = 4181
    MEID_WINDOW_ALWAYS_ON_TOP = 4182
    MEID_WINDOW_SPLIT = 4183
    MEID_WINDOW_NEXT_PANE = 4184
    MEID_WINDOW_PREVIOUS_PANE = 4185
    MEID_WINDOW_ACTIVE_PANE = 4186
    MEID_WINDOW_ENABLE_TABS = 4187
    MEID_WINDOW_NEXT_DOCUMENT = 4188
    MEID_WINDOW_PREVIOUS_DOCUMENT = 4189
    MEID_HELP_HELP = 4190
    MEID_HELP_ABOUT = 4191
    MEID_RELOAD_874 = 4192
    MEID_RELOAD_1250 = 4193
    MEID_RELOAD_1252 = 4194
    MEID_RELOAD_1253 = 4195
    MEID_RELOAD_1254 = 4196
    MEID_RELOAD_1255 = 4197
    MEID_RELOAD_1256 = 4198
    MEID_RELOAD_1257 = 4199
    MEID_RELOAD_1258 = 4200

    MEID_EDIT_MODE_BAT = 8192
    MEID_EDIT_MODE_CFM = 8193
    MEID_EDIT_MODE_CSHARP = 8194
    MEID_EDIT_MODE_CPP = 8195
    MEID_EDIT_MODE_CSS = 8196
    MEID_EDIT_MODE_DELPHI = 8197
    MEID_EDIT_MODE_HSP = 8198
    MEID_EDIT_MODE_HTML = 8199
    MEID_EDIT_MODE_INI = 8200
    MEID_EDIT_MODE_JAVA = 8201
    MEID_EDIT_MODE_JSCRIPT = 8202
    MEID_EDIT_MODE_JSP = 8203
    MEID_EDIT_MODE_PERL = 8204
    MEID_EDIT_MODE_PHP = 8205
    MEID_EDIT_MODE_PYTHON = 8206
    MEID_EDIT_MODE_RUBY = 8207
    MEID_EDIT_MODE_SQL = 8208
    MEID_EDIT_MODE_TEXT = 8209
    MEID_EDIT_MODE_UWSC = 8210
    MEID_EDIT_MODE_VBSCRIPT = 8211
    MEID_EDIT_MODE_VISUALBASIC = 8212

     |  Kuro  |  返信
  3. ところで、秀丸エミュレータというドキドキなブツは一体なんでしょうか?

     |  Kuro  |  返信
  4. >定数の採番基準は簡単で、Meryのメニュー「ファイル」から順番に4096からの連番になってます。
    >まだ文書化できてませんので、お手数ですが機能は定数名から推測してください。
    ありがとうございます。楽になります。

    >ところで、秀丸エミュレータというドキドキなブツは一体なんでしょうか?
    Mery のマクロの中で、秀丸と同じ構文が使えるようになります。
    with( obj ){ ここで、秀丸と同じ構文 }
    まだ、予定ですけど。実際、2004年の EmEditor では動作しました。

     |  kinzoku  |  返信
  5. お役に立てれば幸いです。

    > Mery のマクロの中で、秀丸と同じ構文が使えるようになります。

    マジで・・・!秀丸マクロをMeryで使える可能性があるのですね、技術力スゴイです。
    その技術力があれば、DelphiでできてるMeryのプラグインヘッダをC++などに翻訳して頂けるのでは!?
    と淡い期待をしてみるテストです。。。

     |  Kuro  |  返信
  6. メソッドとプロパティの定義なので・・・そんな凄いものではないです。
    hme.wsc というファイル(仮)を regsvr32 に登録させるだけで使えるようになります。
    中身は、JScript + VBScript を含んだ XML ファイルなので、みんなで実装できますし、
    怪しいものが混入しません。
    秀丸を使ったことのある人ならば、おなじみですが、こんな感じになります。

    var hme=new ActiveXObject("Nanashi.HidemaruMacroEmulator");
    hme.init(this);
    with( hme ){
    escape(); gofiletop(); message("how about");
    var i=0; var s;
    searchdown(/\b\w+/, regular);
    escape;
    moveto(selendx, selendy);
    message("how about");
    message("x, y == " + x + ", " + y +
    "\ncolumn, lineno == " + column + ", " + lineno);
    }

     |  kinzoku  |  返信
  7. なるほど、。。
    これはなんだかすごそう・・・。インタプリタを作る勢いですねw
    私も学生時代は秀丸を愛用していましたので、秀丸エミュレータの完成が楽しみです。
    期待しておりますよ~!

     |  Kuro  |  返信
スポンサーリンク