(debugger-env-macro (eval-expression exp)))
\f
(defvar debugger-mode-map
- (let ((map (make-keymap)))
+ (let ((map (make-keymap))
+ (menu-map (make-sparse-keymap)))
(set-keymap-parent map button-buffer-map)
(suppress-keymap map)
(define-key map "-" 'negative-argument)
(define-key map "R" 'debugger-record-expression)
(define-key map "\C-m" 'debug-help-follow)
(define-key map [mouse-2] 'push-button)
+ (define-key map [menu-bar debugger] (cons "Debugger" menu-map))
+ (define-key menu-map [deb-top]
+ '(menu-item "Quit" top-level
+ :help "Quit debugging and return to top leve"))
+ (define-key menu-map [deb-s0] '("--"))
+ (define-key menu-map [deb-descr]
+ '(menu-item "Describe Debugger Mode" describe-mode
+ :help "Display documentation for debugger-mode"))
+ (define-key menu-map [deb-hfol]
+ '(menu-item "Help Follow" debug-help-follow
+ :help "Follow cross-reference"))
+ (define-key menu-map [deb-nxt]
+ '(menu-item "Next Line" next-line
+ :help "Move cursor down"))
+ (define-key menu-map [deb-s1] '("--"))
+ (define-key menu-map [deb-lfunc]
+ '(menu-item "List debug on entry functions" debugger-list-functions
+ :help "Display a list of all the functions now set to debug on entry"))
+ (define-key menu-map [deb-fclear]
+ '(menu-item "Cancel debug frame" debugger-frame-clear
+ :help "Do not enter debugger when this frame exits"))
+ (define-key menu-map [deb-frame]
+ '(menu-item "Debug frame" debugger-frame
+ :help "Request entry to debugger when this frame exits"))
+ (define-key menu-map [deb-s2] '("--"))
+ (define-key menu-map [deb-ret]
+ '(menu-item "Return value..." debugger-return-value
+ :help "Continue, specifying value to return."))
+ (define-key menu-map [deb-rec]
+ '(menu-item "Display and Record Expression" debugger-record-expression
+ :help "Display a variable's value and record it in `*Backtrace-record*' buffer"))
+ (define-key menu-map [deb-eval]
+ '(menu-item "Eval Expression..." debugger-eval-expression
+ :help "Eval an expression, in an environment like that outside the debugger"))
+ (define-key menu-map [deb-jump]
+ '(menu-item "Jump" debugger-jump
+ :help "Continue to exit from this frame, with all debug-on-entry suspended"))
+ (define-key menu-map [deb-cont]
+ '(menu-item "Continue" debugger-continue
+ :help "Continue, evaluating this expression without stopping"))
+ (define-key menu-map [deb-step]
+ '(menu-item "Step through" debugger-step-through
+ :help "Proceed, stepping through subexpressions of this expression"))
map))
(put 'debugger-mode 'mode-class 'special)
:type 'boolean
:group 'conf)
-
(defvar conf-mode-map
- (let ((map (make-sparse-keymap)))
+ (let ((map (make-sparse-keymap))
+ (menu-map (make-sparse-keymap)))
(define-key map "\C-c\C-u" 'conf-unix-mode)
(define-key map "\C-c\C-w" 'conf-windows-mode)
(define-key map "\C-c\C-j" 'conf-javaprop-mode)
(define-key map "\C-c\"" 'conf-quote-normal)
(define-key map "\C-c'" 'conf-quote-normal)
(define-key map "\C-c\C-a" 'conf-align-assignments)
+ (define-key map [menu-bar sh-script] (cons "Conf" menu-map))
+ (define-key menu-map [conf-windows-mode]
+ '(menu-item "Windows mode"
+ conf-windows-mode
+ :help "Conf Mode starter for Windows style Conf files"
+ :button (:radio . (eq major-mode 'conf-windows-mode))))
+ (define-key menu-map [conf-javaprop-mode]
+ '(menu-item "Java properties mode"
+ conf-javaprop-mode
+ :help "Conf Mode starter for Java properties files"
+ :button (:radio . (eq major-mode 'conf-javaprop-mode))))
+ (define-key menu-map [conf-space-keywords]
+ '(menu-item "Space keywords mode..."
+ conf-space-keywords
+ :help "Enter Conf Space mode using regexp KEYWORDS to match the keywords"
+ :button (:radio . (eq major-mode 'conf-space-keywords))))
+ (define-key menu-map [conf-ppd-mode]
+ '(menu-item "PPD mode"
+ conf-ppd-mode
+ :help "Conf Mode starter for Adobe/CUPS PPD files"
+ :button (:radio . (eq major-mode 'conf-ppd-mode))))
+ (define-key menu-map [conf-colon-mode]
+ '(menu-item "Colon mode"
+ conf-colon-mode
+ :help "Conf Mode starter for Colon files"
+ :button (:radio . (eq major-mode 'conf-colon-mode))))
+ (define-key menu-map [conf-unix-mode]
+ '(menu-item "Unix mode"
+ conf-unix-mode
+ :help "Conf Mode starter for Unix style Conf files"
+ :button (:radio . (eq major-mode 'conf-unix-mode))))
+ (define-key menu-map [conf-xdefaults-mode]
+ '(menu-item "Xdefaults mode"
+ conf-xdefaults-mode
+ :help "Conf Mode starter for Xdefaults files"
+ :button (:radio . (eq major-mode 'conf-xdefaults-mode))))
+ (define-key menu-map [c-s0] '("--"))
+ (define-key menu-map [conf-quote-normal]
+ '(menu-item "Set quote syntax normal" conf-quote-normal
+ :help "Set the syntax of \' and \" to punctuation"))
+ (define-key menu-map [conf-align-assignments]
+ '(menu-item "Align assignments" conf-align-assignments
+ :help "Align assignments"))
map)
"Local keymap for `conf-mode' buffers.")
;; `align', I'd be glad to hear.
(defun conf-align-assignments (&optional arg)
(interactive "P")
+ "Align the assignments in the buffer or active region.
+In Transient Mark mode, if the mark is active, operate on the
+contents of the region. Otherwise, operate on the whole buffer."
(setq arg (if arg
(prefix-numeric-value arg)
conf-assignment-column))
(save-excursion
- (goto-char (point-min))
- (while (not (eobp))
- (let ((cs (comment-beginning))) ; go before comment if within
- (if cs (goto-char cs)))
- (while (forward-comment 9)) ; max-int?
- (when (and (not (eobp))
- (looking-at conf-assignment-regexp))
- (goto-char (match-beginning 1))
- (delete-region (point) (match-end 1))
- (if conf-assignment-sign
- (if (>= arg 0)
- (progn
- (indent-to-column arg)
+ (save-restriction
+ (when (use-region-p)
+ (narrow-to-region (region-beginning) (region-end)))
+ (goto-char (point-min))
+ (while (not (eobp))
+ (let ((cs (comment-beginning))) ; go before comment if within
+ (if cs (goto-char cs)))
+ (while (forward-comment 9)) ; max-int?
+ (when (and (not (eobp))
+ (looking-at conf-assignment-regexp))
+ (goto-char (match-beginning 1))
+ (delete-region (point) (match-end 1))
+ (if conf-assignment-sign
+ (if (>= arg 0)
+ (progn
+ (indent-to-column arg)
+ (or (not conf-assignment-space)
+ (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))
+ (insert conf-assignment-sign
+ (if (and conf-assignment-space (not (eolp))) ?\s "")))
+ (insert (if conf-assignment-space ?\s "") conf-assignment-sign)
+ (unless (eolp)
+ (indent-to-column (- arg))
(or (not conf-assignment-space)
- (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))
- (insert conf-assignment-sign
- (if (and conf-assignment-space (not (eolp))) ?\s "")))
- (insert (if conf-assignment-space ?\s "") conf-assignment-sign)
- (unless (eolp)
- (indent-to-column (- arg))
- (or (not conf-assignment-space)
- (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))))
- (unless (eolp)
- (if (>= (current-column) (abs arg))
- (insert ?\s)
- (indent-to-column (abs arg))))))
- (forward-line))))
+ (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))))
+ (unless (eolp)
+ (if (>= (current-column) (abs arg))
+ (insert ?\s)
+ (indent-to-column (abs arg))))))
+ (forward-line)))))
(defun conf-quote-normal (arg)
unbalanced, but hey...)"
(interactive "P")
(let ((table (copy-syntax-table (syntax-table))))
- (if (or (not arg) (= (prefix-numeric-value arg) 1))
- (modify-syntax-entry ?\' "." table))
- (if (or (not arg) (= (prefix-numeric-value arg) 2))
- (modify-syntax-entry ?\" "." table))
+ (when (or (not arg) (= (prefix-numeric-value arg) 1))
+ (modify-syntax-entry ?\' "." table))
+ (when (or (not arg) (= (prefix-numeric-value arg) 2))
+ (modify-syntax-entry ?\" "." table))
(set-syntax-table table)
- (and (boundp 'font-lock-mode)
- font-lock-mode
- (font-lock-fontify-buffer))))
+ (when font-lock-mode
+ (font-lock-fontify-buffer))))
(defun conf-outline-level ()