Mercurial > emacs
view lisp/makesum.el @ 104154:c63f8623fb66
* progmodes/gdb-mi.el (gdb-frame-number): Initialize with nil.
(gdb-overlay-arrow-position): Renamed to
`gdb-disassembly-position'.
(gdb-overlay-arrow-position, gdb-thread-position)
(gdb-disassembly-position): Declare variables.
(gdb-wait-for-pending): Function now.
(gdb-add-subscriber, gdb-delete-subscriber, gdb-get-subscribers)
(gdb-emit-signal, gdb-buf-publisher): Declare before first use so
compilation goes smoothly.
(gdb, gdb-non-stop, gdb-buffers): New customization groups.
(gdb-non-stop-setting): New customization setting which replaces
`gdb-non-stop' so changing it doesn't break active GDB session.
(gdb-stack-buffer-locations, gdb-stack-buffer-addresses)
(gdb-thread-buffer-verbose-names, gdb-thread-buffer-arguments)
(gdb-thread-buffer-locations, gdb-thread-buffer-addresses)
(gdb-show-threads-by-default): New customization options.
(gdb-buffer-type, gdb-buffer-shows-main-thread-p): New helper
routines.
(gdb-get-buffer-create): Send buffers update signal when they are
created.
(gdb-invalidate-locals, gdb-invalidate-registers)
(gdb-invalidate-breakpoints)
(gdb-invalidate-threads, gdb-invalidate-disassembly)
(gdb-invalidate-memory): Accept update signal.
(gdb-current-context-command): Use --frame option.
(gdb-update-gud-running, gdb-running, gdb-setq-thread-number):
Implement `gdb-frame-number' selection logic.
(gdb-show-run-p, gdb-show-stop-p): Helper functions which decide
whether to show GUD toolbar buttons.
(gdb-thread-exited): Unselect current thread when it exits.
(gdb-stopped): Typo fixed (now really runs `gdb-stopped-hooks').
(gdb-mark-line): Routine which sets overlay arrow or inverses
video on fringeless displays.
(gdb-table, gdb-table-add-row, gdb-table-string): Structure used
to build aligned columns of data in GDB buffers and set text
properties line-by-line.
(gdb-invalidate-breakpoints)
(gdb-breakpoints-list-handler-custom)
(gdb-thread-list-handler-custom, gdb-disassembly-handler-custom)
(gdb-stack-list-frames-custom, gdb-locals-handler-custom)
(gdb-registers-handler-custom): Align data columns.
(gdb-locals-handler-custom): Now prints data like in variable
declarations.
(gdb-jump-to, gdb-file-button, gdb-insert-file-location-button):
Removed confusing buttons.
(gdb-invalidate-threads): Append --frame.
(gdb-threads-mode-map, gdb-breakpoints-mode-map): TAB to switch
between breakpoints/threads buffers.
(gdb-set-window-buffer): Now can ignore dedicated windows.
(gdb-propertize-header): Use `gdb-set-window-buffer'.
(def-gdb-thread-buffer-simple-command): Numerous typos fixed.
(def-gdb-thread-buffer-gud-command): Replaces
`def-gdb-thread-buffer-gdb-command' and uses standard GUD commands
for fine thread control.
(gdb-preempt-existing-or-display-buffer): New function used to
display bound buffers without breaking window layout.
(gdb-frame-location): Replaces `gdb-insert-frame-location'.
(gdb-select-frame): New version of `gdb-frames-select' which now
sets `gdb-frame-number' so commands may use --frame option instead
of inner debugger state.
(gdb-frame-handler): Do not set `gdb-frame-number'.
(gdb-threads-mode-map): Select threads with mouse.
author | Dmitry Dzhus <dima@sphinx.net.ru> |
---|---|
date | Tue, 04 Aug 2009 17:03:54 +0000 |
parents | a9dc0e7c3f2b |
children | 1d1d5d9bd884 |
line wrap: on
line source
;;; makesum.el --- generate key binding summary for Emacs ;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;; Displays a nice human-readable summary of all keybindings in a ;; two-column format. ;;; Code: ;;;###autoload (defun make-command-summary () "Make a summary of current key bindings in the buffer *Summary*. Previous contents of that buffer are killed first." (interactive) (message "Making command summary...") ;; This puts a description of bindings in a buffer called *Help*. (save-window-excursion (describe-bindings)) (with-output-to-temp-buffer "*Summary*" (save-excursion (let ((cur-mode mode-name)) (set-buffer standard-output) (erase-buffer) (insert-buffer-substring "*Help*") (goto-char (point-min)) (delete-region (point) (progn (forward-line 1) (point))) (while (search-forward " " nil t) (replace-match " ")) (goto-char (point-min)) (while (search-forward "-@ " nil t) (replace-match "-SP")) (goto-char (point-min)) (while (search-forward " .. ~ " nil t) (replace-match "SP .. ~")) (goto-char (point-min)) (while (search-forward "C-?" nil t) (replace-match "DEL")) (goto-char (point-min)) (while (search-forward "C-i" nil t) (replace-match "TAB")) (goto-char (point-min)) (if (re-search-forward "^Local Bindings:" nil t) (progn (forward-char -1) (insert " for " (format-mode-line cur-mode) " Mode") (while (search-forward "??\n" nil t) (delete-region (point) (progn (forward-line -1) (point)))))) (goto-char (point-min)) (insert "Emacs command summary, " (substring (current-time-string) 0 10) ".\n") ;; Delete "key binding" and underlining of dashes. (delete-region (point) (progn (forward-line 2) (point))) (forward-line 1) ;Skip blank line (while (not (eobp)) (let ((beg (point))) (or (re-search-forward "^$" nil t) (goto-char (point-max))) (double-column beg (point)) (forward-line 1))) (goto-char (point-min))))) (message "Making command summary...done")) (defun double-column (start end) (interactive "r") (let (half cnt line lines nlines (from-end (- (point-max) end))) (setq nlines (count-lines start end)) (if (<= nlines 1) nil (setq half (/ (1+ nlines) 2)) (goto-char start) (save-excursion (forward-line half) (while (< half nlines) (setq half (1+ half)) (setq line (buffer-substring (point) (save-excursion (end-of-line) (point)))) (setq lines (cons line lines)) (delete-region (point) (progn (forward-line 1) (point))))) (setq lines (nreverse lines)) (while lines (end-of-line) (indent-to 41) (insert (car lines)) (forward-line 1) (setq lines (cdr lines)))) (goto-char (- (point-max) from-end)))) (provide 'makesum) ;; arch-tag: c2383336-fc89-46ad-8110-ded42bffaee3 ;;; makesum.el ends here