;;; -*- Mode: Lisp; Package: EDITOR; Last updated: "2008/01/08 00:45:44" -*-
;;;
;;; This file is not part of xyzzy.
;;;
;;;   ruby-mode-plus-menu.l - ruby-mode 用アプリメニュー
;;;

(in-package "editor")

;;; ──────────────────────────────────── ;;;
;;;  ■ アプリメニュー
;;; ──────────────────────────────────── ;;;

(defvar *ruby-plus-app-menu* nil)
(defvar *ruby-plus-menu-name* "Ruby(&R)")

(defun ruby-plus-menu-update ()
  (interactive)
  (use-local-menu (ruby-plus-add-menu)))
(add-hook '*ruby-mode-hook* 'ruby-plus-menu-update)

(defun ruby-plus-add-menu ()
  (let ((menu (copy-menu-items *app-menu* (create-menu))))
    (insert-popup-menu menu (get-menu-position menu 'ed::help)
                       *ruby-plus-app-menu*
                       *ruby-plus-menu-name*)
    menu))

(defun ruby-plus-init-app-menu ()
  (unless *ruby-plus-app-menu*
    (setq *ruby-plus-app-menu*
	  (let ((menu (create-popup-menu)))
	    (add-menu-item menu nil "レシピファイルを生成(&M)" 'ruby-plus-mkexy)
	    (add-menu-item menu nil "コンパイル(&C)" 'ruby-plus-exerb)
	    (add-menu-separator menu)
	    (add-menu-item menu nil "エラーチェック(&E)" 'ruby-syntax-check)
	    (add-menu-item menu nil "実行(&X)" 'ruby-run-script)
	    (add-menu-item menu nil "デバッグ(&D)" 'ruby-debug)
	    (add-menu-separator menu)
	    (add-menu-item menu nil "インデント調整(&D)" 'ruby-plus-indent-selection :selection)
	    (add-menu-separator menu)
	    (add-menu-item menu nil "ruby-doc-minor-mode(&D)" 'ruby-doc-minor-mode)
	    (add-menu-separator menu)
	    (add-menu-item menu nil "debug-mode Help(&1)" 'ruby-plus-debug-help)
	    (add-menu-item menu nil "ruby-doc-minor-mode Help(&2)" 'ruby-plus-rd-mode-help)
	    (add-menu-separator menu)
	    (add-menu-item menu nil "関数一覧(&L)" 'list-function)
	    (add-menu-item menu nil "ヘルプ(&?)" 'ruby-plus-show-html-help)
	    (add-menu-item menu nil "ReFe(&R)" 'ruby-refe)
	    menu))))
(add-hook '*init-app-menus-hook* 'ruby-plus-init-app-menu)


;;; ──────────────────────────────────── ;;;
;;;  ■ リードミー(おまけ)
;;; ──────────────────────────────────── ;;;

;;; デバッグモードキーバインド一覧
(defun ruby-plus-debug-help ()
  (interactive)
  (message-box "Enter		コマンドなどを入力
Y		(y/n)とかでyを入力
N		(y/n)とかでnを入力
q		デバッグモードを終了
Q		デバッグモードを終了(確認なし)
b		現在行にbreak pointを設定
B		設定されているbreak pointを表示
w		現在行にwatch pointを設定
d		現在行に設定されているpointを解除
D		設定されているpointをすべて解除
e		displayを設定
E		設定されているdisplayを表示
u		displayを解除
U		displayをすべて解除
c		続行
s		step
C-u s		step(数入力)
n		next
C-u n		next(数入力)
h		where
C-Up		up
C-Down	down
f		finish
p		pコマンド"
	       "デバッグモードキーバインド一覧"))

;;; RD用モードキーバインド一覧
(defun ruby-plus-rd-mode-help ()
  (interactive)
  (message-box "Enter		改行してインデント
TAB		インデント
M-Left		インデントを減らす
M-Right	インデントを増やす
C-c f e		Insert Inline Emphasis
C-c f c		Insert Inline Code
C-c f v		Insert Inline Var
C-c f k		Insert Inline Keyboard
C-c f i		Insert Inline Index
C-c f r		Insert Inline Reference
c-c f u		Insert Inline URL
C-c f f		Insert Inline Footnote
C-c f b		Insert Inline Verb"
	     "RD用モードキーバインド一覧"))

;;; ruby-mode-plus-menu.l ends here.