diff options
| author | Tom Tromey | 2012-09-04 10:10:06 -0600 |
|---|---|---|
| committer | Tom Tromey | 2012-09-04 10:10:06 -0600 |
| commit | bf69f522a9e135f9aa483cedd53e71e915f2bf75 (patch) | |
| tree | 3f73c47fb863ef87f420de1d30858da821072bd9 /lisp/progmodes | |
| parent | 303324a9232dbc89369faceb6b3530740d0fc1bd (diff) | |
| parent | 6ec9a5a7b5efb129807f567709ca858211ed7840 (diff) | |
| download | emacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.tar.gz emacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.zip | |
merge from trunk
Diffstat (limited to 'lisp/progmodes')
| -rw-r--r-- | lisp/progmodes/bug-reference.el | 13 | ||||
| -rw-r--r-- | lisp/progmodes/compile.el | 13 | ||||
| -rw-r--r-- | lisp/progmodes/executable.el | 3 | ||||
| -rw-r--r-- | lisp/progmodes/gdb-mi.el | 241 | ||||
| -rw-r--r-- | lisp/progmodes/gud.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/hideif.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/hideshow.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/js.el | 5 | ||||
| -rw-r--r-- | lisp/progmodes/ruby-mode.el | 26 | ||||
| -rw-r--r-- | lisp/progmodes/sh-script.el | 30 |
10 files changed, 155 insertions, 186 deletions
diff --git a/lisp/progmodes/bug-reference.el b/lisp/progmodes/bug-reference.el index 0a7d65c1fa4..97fcb6874dd 100644 --- a/lisp/progmodes/bug-reference.el +++ b/lisp/progmodes/bug-reference.el | |||
| @@ -32,6 +32,11 @@ | |||
| 32 | 32 | ||
| 33 | ;;; Code: | 33 | ;;; Code: |
| 34 | 34 | ||
| 35 | (defgroup bug-reference nil | ||
| 36 | "Hyperlinking references to bug reports" | ||
| 37 | ;; Somewhat arbitrary, by analogy with eg goto-address. | ||
| 38 | :group 'comm) | ||
| 39 | |||
| 35 | (defvar bug-reference-map | 40 | (defvar bug-reference-map |
| 36 | (let ((map (make-sparse-keymap))) | 41 | (let ((map (make-sparse-keymap))) |
| 37 | (define-key map [mouse-2] 'bug-reference-push-button) | 42 | (define-key map [mouse-2] 'bug-reference-push-button) |
| @@ -63,9 +68,13 @@ so that it is considered safe, see `enable-local-variables'.") | |||
| 63 | (and (symbolp s) | 68 | (and (symbolp s) |
| 64 | (get s 'bug-reference-url-format))))) | 69 | (get s 'bug-reference-url-format))))) |
| 65 | 70 | ||
| 66 | (defconst bug-reference-bug-regexp | 71 | (defcustom bug-reference-bug-regexp |
| 67 | "\\([Bb]ug ?#\\|[Pp]atch ?#\\|RFE ?#\\|PR [a-z-+]+/\\)\\([0-9]+\\(?:#[0-9]+\\)?\\)" | 72 | "\\([Bb]ug ?#\\|[Pp]atch ?#\\|RFE ?#\\|PR [a-z-+]+/\\)\\([0-9]+\\(?:#[0-9]+\\)?\\)" |
| 68 | "Regular expression which matches bug references.") | 73 | "Regular expression matching bug references. |
| 74 | The second subexpression should match the bug reference (usually a number)." | ||
| 75 | :type 'string | ||
| 76 | :safe 'stringp | ||
| 77 | :group 'bug-reference) | ||
| 69 | 78 | ||
| 70 | (defun bug-reference-set-overlay-properties () | 79 | (defun bug-reference-set-overlay-properties () |
| 71 | "Set properties of bug reference overlays." | 80 | "Set properties of bug reference overlays." |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 21a323d8b45..fbb0c9e204a 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -1503,6 +1503,13 @@ Otherwise, construct a buffer name from NAME-OF-MODE." | |||
| 1503 | (compilation-start command nil name-function highlight-regexp))) | 1503 | (compilation-start command nil name-function highlight-regexp))) |
| 1504 | (make-obsolete 'compile-internal 'compilation-start "22.1") | 1504 | (make-obsolete 'compile-internal 'compilation-start "22.1") |
| 1505 | 1505 | ||
| 1506 | (defcustom compilation-always-kill nil | ||
| 1507 | "If t, always kill a running compilation process before starting a new one. | ||
| 1508 | If nil, ask to kill it." | ||
| 1509 | :type 'boolean | ||
| 1510 | :version "24.3" | ||
| 1511 | :group 'compilation) | ||
| 1512 | |||
| 1506 | ;;;###autoload | 1513 | ;;;###autoload |
| 1507 | (defun compilation-start (command &optional mode name-function highlight-regexp) | 1514 | (defun compilation-start (command &optional mode name-function highlight-regexp) |
| 1508 | "Run compilation command COMMAND (low level interface). | 1515 | "Run compilation command COMMAND (low level interface). |
| @@ -1537,6 +1544,7 @@ Returns the compilation buffer created." | |||
| 1537 | (let ((comp-proc (get-buffer-process (current-buffer)))) | 1544 | (let ((comp-proc (get-buffer-process (current-buffer)))) |
| 1538 | (if comp-proc | 1545 | (if comp-proc |
| 1539 | (if (or (not (eq (process-status comp-proc) 'run)) | 1546 | (if (or (not (eq (process-status comp-proc) 'run)) |
| 1547 | compilation-always-kill | ||
| 1540 | (yes-or-no-p | 1548 | (yes-or-no-p |
| 1541 | (format "A %s process is running; kill it? " | 1549 | (format "A %s process is running; kill it? " |
| 1542 | name-of-mode))) | 1550 | name-of-mode))) |
| @@ -2461,10 +2469,7 @@ and overlay is highlighted between MK and END-MK." | |||
| 2461 | ;; the error location if the two buffers are in two | 2469 | ;; the error location if the two buffers are in two |
| 2462 | ;; different frames. So don't do it if it's not necessary. | 2470 | ;; different frames. So don't do it if it's not necessary. |
| 2463 | pre-existing | 2471 | pre-existing |
| 2464 | (let ((display-buffer-reuse-frames t) | 2472 | (display-buffer (marker-buffer msg)))) |
| 2465 | (pop-up-windows t)) | ||
| 2466 | ;; Pop up a window. | ||
| 2467 | (display-buffer (marker-buffer msg))))) | ||
| 2468 | (highlight-regexp (with-current-buffer (marker-buffer msg) | 2473 | (highlight-regexp (with-current-buffer (marker-buffer msg) |
| 2469 | ;; also do this while we change buffer | 2474 | ;; also do this while we change buffer |
| 2470 | (compilation-set-window w msg) | 2475 | (compilation-set-window w msg) |
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index e5142571972..092e1a4d578 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el | |||
| @@ -84,8 +84,9 @@ When this is `function', only ask when called non-interactively." | |||
| 84 | :group 'executable) | 84 | :group 'executable) |
| 85 | 85 | ||
| 86 | 86 | ||
| 87 | (defcustom executable-prefix "#! " | 87 | (defcustom executable-prefix "#!" |
| 88 | "Interpreter magic number prefix inserted when there was no magic number." | 88 | "Interpreter magic number prefix inserted when there was no magic number." |
| 89 | :version "24.3" ; "#! " -> "#!" | ||
| 89 | :type 'string | 90 | :type 'string |
| 90 | :group 'executable) | 91 | :group 'executable) |
| 91 | 92 | ||
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 0a99c2f5c24..59c419abfc3 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el | |||
| @@ -1413,29 +1413,6 @@ this trigger is subscribed to `gdb-buf-publisher' and called with | |||
| 1413 | (with-current-buffer ,buffer | 1413 | (with-current-buffer ,buffer |
| 1414 | (apply ',expr args)))) | 1414 | (apply ',expr args)))) |
| 1415 | 1415 | ||
| 1416 | ;; Used to define all gdb-frame-*-buffer functions except | ||
| 1417 | ;; `gdb-frame-io-buffer' | ||
| 1418 | (defmacro def-gdb-frame-for-buffer (name buffer &optional doc) | ||
| 1419 | "Define a function NAME which shows gdb BUFFER in a separate frame. | ||
| 1420 | |||
| 1421 | DOC is an optional documentation string." | ||
| 1422 | `(defun ,name (&optional thread) | ||
| 1423 | ,(when doc doc) | ||
| 1424 | (interactive) | ||
| 1425 | (let ((special-display-regexps (append special-display-regexps '(".*"))) | ||
| 1426 | (special-display-frame-alist gdb-frame-parameters)) | ||
| 1427 | (display-buffer (gdb-get-buffer-create ,buffer thread))))) | ||
| 1428 | |||
| 1429 | (defmacro def-gdb-display-buffer (name buffer &optional doc) | ||
| 1430 | "Define a function NAME which shows gdb BUFFER. | ||
| 1431 | |||
| 1432 | DOC is an optional documentation string." | ||
| 1433 | `(defun ,name (&optional thread) | ||
| 1434 | ,(when doc doc) | ||
| 1435 | (interactive) | ||
| 1436 | (gdb-display-buffer | ||
| 1437 | (gdb-get-buffer-create ,buffer thread) t))) | ||
| 1438 | |||
| 1439 | ;; Used to display windows with thread-bound buffers | 1416 | ;; Used to display windows with thread-bound buffers |
| 1440 | (defmacro def-gdb-preempt-display-buffer (name buffer &optional doc | 1417 | (defmacro def-gdb-preempt-display-buffer (name buffer &optional doc |
| 1441 | split-horizontal) | 1418 | split-horizontal) |
| @@ -1511,8 +1488,7 @@ DOC is an optional documentation string." | |||
| 1511 | (defun gdb-display-io-buffer () | 1488 | (defun gdb-display-io-buffer () |
| 1512 | "Display IO of debugged program in a separate window." | 1489 | "Display IO of debugged program in a separate window." |
| 1513 | (interactive) | 1490 | (interactive) |
| 1514 | (gdb-display-buffer | 1491 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io))) |
| 1515 | (gdb-get-buffer-create 'gdb-inferior-io) t)) | ||
| 1516 | 1492 | ||
| 1517 | (defun gdb-inferior-io--init-proc (proc) | 1493 | (defun gdb-inferior-io--init-proc (proc) |
| 1518 | ;; Set up inferior I/O. Needs GDB 6.4 onwards. | 1494 | ;; Set up inferior I/O. Needs GDB 6.4 onwards. |
| @@ -1540,19 +1516,24 @@ DOC is an optional documentation string." | |||
| 1540 | (comint-exec io-buffer "gdb-inferior" nil nil nil) | 1516 | (comint-exec io-buffer "gdb-inferior" nil nil nil) |
| 1541 | (gdb-inferior-io--init-proc (get-buffer-process io-buffer)))))) | 1517 | (gdb-inferior-io--init-proc (get-buffer-process io-buffer)))))) |
| 1542 | 1518 | ||
| 1543 | (defconst gdb-frame-parameters | 1519 | (defvar gdb-display-buffer-other-frame-action |
| 1544 | '((height . 14) (width . 80) | 1520 | `((display-buffer-reuse-window display-buffer-pop-up-frame) |
| 1545 | (unsplittable . t) | 1521 | (reusable-frames . 0) |
| 1546 | (tool-bar-lines . nil) | 1522 | (inhibit-same-window . t) |
| 1547 | (menu-bar-lines . nil) | 1523 | (pop-up-frame-parameters (height . 14) |
| 1548 | (minibuffer . nil))) | 1524 | (width . 80) |
| 1525 | (unsplittable . t) | ||
| 1526 | (tool-bar-lines . nil) | ||
| 1527 | (menu-bar-lines . nil) | ||
| 1528 | (minibuffer . nil))) | ||
| 1529 | "A `display-buffer' action for displaying GDB utility frames.") | ||
| 1530 | (put 'gdb-display-buffer-other-frame-action 'risky-local-variable t) | ||
| 1549 | 1531 | ||
| 1550 | (defun gdb-frame-io-buffer () | 1532 | (defun gdb-frame-io-buffer () |
| 1551 | "Display IO of debugged program in a new frame." | 1533 | "Display IO of debugged program in another frame." |
| 1552 | (interactive) | 1534 | (interactive) |
| 1553 | (let ((special-display-regexps (append special-display-regexps '(".*"))) | 1535 | (display-buffer (gdb-get-buffer-create 'gdb-inferior-io) |
| 1554 | (special-display-frame-alist gdb-frame-parameters)) | 1536 | gdb-display-buffer-other-frame-action)) |
| 1555 | (display-buffer (gdb-get-buffer-create 'gdb-inferior-io)))) | ||
| 1556 | 1537 | ||
| 1557 | (defvar gdb-inferior-io-mode-map | 1538 | (defvar gdb-inferior-io-mode-map |
| 1558 | (let ((map (make-sparse-keymap))) | 1539 | (let ((map (make-sparse-keymap))) |
| @@ -1571,7 +1552,7 @@ DOC is an optional documentation string." | |||
| 1571 | 1552 | ||
| 1572 | (defun gdb-inferior-filter (proc string) | 1553 | (defun gdb-inferior-filter (proc string) |
| 1573 | (unless (string-equal string "") | 1554 | (unless (string-equal string "") |
| 1574 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io) t)) | 1555 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io))) |
| 1575 | (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) | 1556 | (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) |
| 1576 | (comint-output-filter proc string))) | 1557 | (comint-output-filter proc string))) |
| 1577 | 1558 | ||
| @@ -2615,15 +2596,16 @@ If not in a source or disassembly buffer just set point." | |||
| 2615 | (defun gdb-breakpoints-buffer-name () | 2596 | (defun gdb-breakpoints-buffer-name () |
| 2616 | (concat "*breakpoints of " (gdb-get-target-string) "*")) | 2597 | (concat "*breakpoints of " (gdb-get-target-string) "*")) |
| 2617 | 2598 | ||
| 2618 | (def-gdb-display-buffer | 2599 | (defun gdb-display-breakpoints-buffer (&optional thread) |
| 2619 | gdb-display-breakpoints-buffer | 2600 | "Display GDB breakpoints." |
| 2620 | 'gdb-breakpoints-buffer | 2601 | (interactive) |
| 2621 | "Display status of user-settable breakpoints.") | 2602 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-breakpoints-buffer thread))) |
| 2622 | 2603 | ||
| 2623 | (def-gdb-frame-for-buffer | 2604 | (defun gdb-frame-breakpoints-buffer (&optional thread) |
| 2624 | gdb-frame-breakpoints-buffer | 2605 | "Display GDB breakpoints in another frame." |
| 2625 | 'gdb-breakpoints-buffer | 2606 | (interactive) |
| 2626 | "Display status of user-settable breakpoints in a new frame.") | 2607 | (display-buffer (gdb-get-buffer-create 'gdb-breakpoints-buffer thread) |
| 2608 | gdb-display-buffer-other-frame-action)) | ||
| 2627 | 2609 | ||
| 2628 | (defvar gdb-breakpoints-mode-map | 2610 | (defvar gdb-breakpoints-mode-map |
| 2629 | (let ((map (make-sparse-keymap)) | 2611 | (let ((map (make-sparse-keymap)) |
| @@ -2684,15 +2666,16 @@ corresponding to the mode line clicked." | |||
| 2684 | (defun gdb-threads-buffer-name () | 2666 | (defun gdb-threads-buffer-name () |
| 2685 | (concat "*threads of " (gdb-get-target-string) "*")) | 2667 | (concat "*threads of " (gdb-get-target-string) "*")) |
| 2686 | 2668 | ||
| 2687 | (def-gdb-display-buffer | 2669 | (defun gdb-display-threads-buffer (&optional thread) |
| 2688 | gdb-display-threads-buffer | 2670 | "Display GDB threads." |
| 2689 | 'gdb-threads-buffer | 2671 | (interactive) |
| 2690 | "Display GDB threads.") | 2672 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-threads-buffer thread))) |
| 2691 | 2673 | ||
| 2692 | (def-gdb-frame-for-buffer | 2674 | (defun gdb-frame-threads-buffer (&optional thread) |
| 2693 | gdb-frame-threads-buffer | 2675 | "Display GDB threads in another frame." |
| 2694 | 'gdb-threads-buffer | 2676 | (interactive) |
| 2695 | "Display GDB threads in a new frame.") | 2677 | (display-buffer (gdb-get-buffer-create 'gdb-threads-buffer thread) |
| 2678 | gdb-display-buffer-other-frame-action)) | ||
| 2696 | 2679 | ||
| 2697 | (def-gdb-trigger-and-handler | 2680 | (def-gdb-trigger-and-handler |
| 2698 | gdb-invalidate-threads (gdb-current-context-command "-thread-info") | 2681 | gdb-invalidate-threads (gdb-current-context-command "-thread-info") |
| @@ -2868,26 +2851,22 @@ on the current line." | |||
| 2868 | (def-gdb-thread-buffer-simple-command | 2851 | (def-gdb-thread-buffer-simple-command |
| 2869 | gdb-frame-stack-for-thread | 2852 | gdb-frame-stack-for-thread |
| 2870 | gdb-frame-stack-buffer | 2853 | gdb-frame-stack-buffer |
| 2871 | "Display a new frame with stack buffer for the thread at | 2854 | "Display another frame with stack buffer for thread at current line.") |
| 2872 | current line.") | ||
| 2873 | 2855 | ||
| 2874 | (def-gdb-thread-buffer-simple-command | 2856 | (def-gdb-thread-buffer-simple-command |
| 2875 | gdb-frame-locals-for-thread | 2857 | gdb-frame-locals-for-thread |
| 2876 | gdb-frame-locals-buffer | 2858 | gdb-frame-locals-buffer |
| 2877 | "Display a new frame with locals buffer for the thread at | 2859 | "Display another frame with locals buffer for thread at current line.") |
| 2878 | current line.") | ||
| 2879 | 2860 | ||
| 2880 | (def-gdb-thread-buffer-simple-command | 2861 | (def-gdb-thread-buffer-simple-command |
| 2881 | gdb-frame-registers-for-thread | 2862 | gdb-frame-registers-for-thread |
| 2882 | gdb-frame-registers-buffer | 2863 | gdb-frame-registers-buffer |
| 2883 | "Display a new frame with registers buffer for the thread at | 2864 | "Display another frame with registers buffer for the thread at current line.") |
| 2884 | current line.") | ||
| 2885 | 2865 | ||
| 2886 | (def-gdb-thread-buffer-simple-command | 2866 | (def-gdb-thread-buffer-simple-command |
| 2887 | gdb-frame-disassembly-for-thread | 2867 | gdb-frame-disassembly-for-thread |
| 2888 | gdb-frame-disassembly-buffer | 2868 | gdb-frame-disassembly-buffer |
| 2889 | "Display a new frame with disassembly buffer for the thread at | 2869 | "Display another frame with disassembly buffer for the thread at current line.") |
| 2890 | current line.") | ||
| 2891 | 2870 | ||
| 2892 | (defmacro def-gdb-thread-buffer-gud-command (name gud-command &optional doc) | 2871 | (defmacro def-gdb-thread-buffer-gud-command (name gud-command &optional doc) |
| 2893 | "Define a NAME which will execute GUD-COMMAND with | 2872 | "Define a NAME which will execute GUD-COMMAND with |
| @@ -3290,21 +3269,16 @@ DOC is an optional documentation string." | |||
| 3290 | (defun gdb-memory-buffer-name () | 3269 | (defun gdb-memory-buffer-name () |
| 3291 | (concat "*memory of " (gdb-get-target-string) "*")) | 3270 | (concat "*memory of " (gdb-get-target-string) "*")) |
| 3292 | 3271 | ||
| 3293 | (def-gdb-display-buffer | 3272 | (defun gdb-display-memory-buffer (&optional thread) |
| 3294 | gdb-display-memory-buffer | 3273 | "Display GDB memory contents." |
| 3295 | 'gdb-memory-buffer | 3274 | (interactive) |
| 3296 | "Display memory contents.") | 3275 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-memory-buffer thread))) |
| 3297 | 3276 | ||
| 3298 | (defun gdb-frame-memory-buffer () | 3277 | (defun gdb-frame-memory-buffer () |
| 3299 | "Display memory contents in a new frame." | 3278 | "Display memory contents in another frame." |
| 3300 | (interactive) | 3279 | (interactive) |
| 3301 | (let* ((special-display-regexps (append special-display-regexps '(".*"))) | 3280 | (display-buffer (gdb-get-buffer-create 'gdb-memory-buffer) |
| 3302 | (special-display-frame-alist | 3281 | gdb-display-buffer-other-frame-action)) |
| 3303 | `((left-fringe . 0) | ||
| 3304 | (right-fringe . 0) | ||
| 3305 | (width . 83) | ||
| 3306 | ,@gdb-frame-parameters))) | ||
| 3307 | (display-buffer (gdb-get-buffer-create 'gdb-memory-buffer)))) | ||
| 3308 | 3282 | ||
| 3309 | 3283 | ||
| 3310 | ;;; Disassembly view | 3284 | ;;; Disassembly view |
| @@ -3313,19 +3287,20 @@ DOC is an optional documentation string." | |||
| 3313 | (gdb-current-context-buffer-name | 3287 | (gdb-current-context-buffer-name |
| 3314 | (concat "disassembly of " (gdb-get-target-string)))) | 3288 | (concat "disassembly of " (gdb-get-target-string)))) |
| 3315 | 3289 | ||
| 3316 | (def-gdb-display-buffer | 3290 | (defun gdb-display-disassembly-buffer (&optional thread) |
| 3317 | gdb-display-disassembly-buffer | 3291 | "Display GDB disassembly information." |
| 3318 | 'gdb-disassembly-buffer | 3292 | (interactive) |
| 3319 | "Display disassembly for current stack frame.") | 3293 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-disassembly-buffer thread))) |
| 3320 | 3294 | ||
| 3321 | (def-gdb-preempt-display-buffer | 3295 | (def-gdb-preempt-display-buffer |
| 3322 | gdb-preemptively-display-disassembly-buffer | 3296 | gdb-preemptively-display-disassembly-buffer |
| 3323 | 'gdb-disassembly-buffer) | 3297 | 'gdb-disassembly-buffer) |
| 3324 | 3298 | ||
| 3325 | (def-gdb-frame-for-buffer | 3299 | (defun gdb-frame-disassembly-buffer (&optional thread) |
| 3326 | gdb-frame-disassembly-buffer | 3300 | "Display GDB disassembly information in another frame." |
| 3327 | 'gdb-disassembly-buffer | 3301 | (interactive) |
| 3328 | "Display disassembly in a new frame.") | 3302 | (display-buffer (gdb-get-buffer-create 'gdb-disassembly-buffer thread) |
| 3303 | gdb-display-buffer-other-frame-action)) | ||
| 3329 | 3304 | ||
| 3330 | (def-gdb-auto-update-trigger gdb-invalidate-disassembly | 3305 | (def-gdb-auto-update-trigger gdb-invalidate-disassembly |
| 3331 | (let* ((frame (gdb-current-buffer-frame)) | 3306 | (let* ((frame (gdb-current-buffer-frame)) |
| @@ -3560,19 +3535,20 @@ member." | |||
| 3560 | (gdb-current-context-buffer-name | 3535 | (gdb-current-context-buffer-name |
| 3561 | (concat "stack frames of " (gdb-get-target-string)))) | 3536 | (concat "stack frames of " (gdb-get-target-string)))) |
| 3562 | 3537 | ||
| 3563 | (def-gdb-display-buffer | 3538 | (defun gdb-display-stack-buffer (&optional thread) |
| 3564 | gdb-display-stack-buffer | 3539 | "Display GDB backtrace for current stack." |
| 3565 | 'gdb-stack-buffer | 3540 | (interactive) |
| 3566 | "Display backtrace of current stack.") | 3541 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-stack-buffer thread))) |
| 3567 | 3542 | ||
| 3568 | (def-gdb-preempt-display-buffer | 3543 | (def-gdb-preempt-display-buffer |
| 3569 | gdb-preemptively-display-stack-buffer | 3544 | gdb-preemptively-display-stack-buffer |
| 3570 | 'gdb-stack-buffer nil t) | 3545 | 'gdb-stack-buffer nil t) |
| 3571 | 3546 | ||
| 3572 | (def-gdb-frame-for-buffer | 3547 | (defun gdb-frame-stack-buffer (&optional thread) |
| 3573 | gdb-frame-stack-buffer | 3548 | "Display GDB backtrace for current stack in another frame." |
| 3574 | 'gdb-stack-buffer | 3549 | (interactive) |
| 3575 | "Display backtrace of current stack in a new frame.") | 3550 | (display-buffer (gdb-get-buffer-create 'gdb-stack-buffer thread) |
| 3551 | gdb-display-buffer-other-frame-action)) | ||
| 3576 | 3552 | ||
| 3577 | (defvar gdb-frames-mode-map | 3553 | (defvar gdb-frames-mode-map |
| 3578 | (let ((map (make-sparse-keymap))) | 3554 | (let ((map (make-sparse-keymap))) |
| @@ -3719,19 +3695,20 @@ member." | |||
| 3719 | (gdb-current-context-buffer-name | 3695 | (gdb-current-context-buffer-name |
| 3720 | (concat "locals of " (gdb-get-target-string)))) | 3696 | (concat "locals of " (gdb-get-target-string)))) |
| 3721 | 3697 | ||
| 3722 | (def-gdb-display-buffer | 3698 | (defun gdb-display-locals-buffer (&optional thread) |
| 3723 | gdb-display-locals-buffer | 3699 | "Display the local variables of current GDB stack." |
| 3724 | 'gdb-locals-buffer | 3700 | (interactive) |
| 3725 | "Display local variables of current stack and their values.") | 3701 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-locals-buffer thread))) |
| 3726 | 3702 | ||
| 3727 | (def-gdb-preempt-display-buffer | 3703 | (def-gdb-preempt-display-buffer |
| 3728 | gdb-preemptively-display-locals-buffer | 3704 | gdb-preemptively-display-locals-buffer |
| 3729 | 'gdb-locals-buffer nil t) | 3705 | 'gdb-locals-buffer nil t) |
| 3730 | 3706 | ||
| 3731 | (def-gdb-frame-for-buffer | 3707 | (defun gdb-frame-locals-buffer (&optional thread) |
| 3732 | gdb-frame-locals-buffer | 3708 | "Display the local variables of the current GDB stack in another frame." |
| 3733 | 'gdb-locals-buffer | 3709 | (interactive) |
| 3734 | "Display local variables of current stack and their values in a new frame.") | 3710 | (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer thread) |
| 3711 | gdb-display-buffer-other-frame-action)) | ||
| 3735 | 3712 | ||
| 3736 | 3713 | ||
| 3737 | ;; Registers buffer. | 3714 | ;; Registers buffer. |
| @@ -3818,19 +3795,20 @@ member." | |||
| 3818 | (gdb-current-context-buffer-name | 3795 | (gdb-current-context-buffer-name |
| 3819 | (concat "registers of " (gdb-get-target-string)))) | 3796 | (concat "registers of " (gdb-get-target-string)))) |
| 3820 | 3797 | ||
| 3821 | (def-gdb-display-buffer | 3798 | (defun gdb-display-registers-buffer (&optional thread) |
| 3822 | gdb-display-registers-buffer | 3799 | "Display GDB register contents." |
| 3823 | 'gdb-registers-buffer | 3800 | (interactive) |
| 3824 | "Display integer register contents.") | 3801 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-registers-buffer thread))) |
| 3825 | 3802 | ||
| 3826 | (def-gdb-preempt-display-buffer | 3803 | (def-gdb-preempt-display-buffer |
| 3827 | gdb-preemptively-display-registers-buffer | 3804 | gdb-preemptively-display-registers-buffer |
| 3828 | 'gdb-registers-buffer nil t) | 3805 | 'gdb-registers-buffer nil t) |
| 3829 | 3806 | ||
| 3830 | (def-gdb-frame-for-buffer | 3807 | (defun gdb-frame-registers-buffer (&optional thread) |
| 3831 | gdb-frame-registers-buffer | 3808 | "Display GDB register contents in another frame." |
| 3832 | 'gdb-registers-buffer | 3809 | (interactive) |
| 3833 | "Display integer register contents in a new frame.") | 3810 | (display-buffer (gdb-get-buffer-create 'gdb-registers-buffer thread) |
| 3811 | gdb-display-buffer-other-frame-action)) | ||
| 3834 | 3812 | ||
| 3835 | ;; Needs GDB 6.4 onwards (used to fail with no stack). | 3813 | ;; Needs GDB 6.4 onwards (used to fail with no stack). |
| 3836 | (defun gdb-get-changed-registers () | 3814 | (defun gdb-get-changed-registers () |
| @@ -3917,26 +3895,26 @@ overlay arrow in source buffer." | |||
| 3917 | (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name))) | 3895 | (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name))) |
| 3918 | 3896 | ||
| 3919 | ;;;; Window management | 3897 | ;;;; Window management |
| 3920 | (defun gdb-display-buffer (buf dedicated &optional frame) | 3898 | (defun gdb-display-buffer (buf) |
| 3921 | "Show buffer BUF. | 3899 | "Show buffer BUF, and make that window dedicated." |
| 3922 | 3900 | (let ((window (display-buffer buf))) | |
| 3923 | If BUF is already displayed in some window, show it, deiconifying | 3901 | (set-window-dedicated-p window t) |
| 3924 | the frame if necessary. Otherwise, find least recently used | 3902 | window)) |
| 3925 | window and show BUF there, if the window is not used for GDB | 3903 | |
| 3926 | already, in which case that window is split first." | 3904 | ;; (let ((answer (get-buffer-window buf 0))) |
| 3927 | (let ((answer (get-buffer-window buf (or frame 0)))) | 3905 | ;; (if answer |
| 3928 | (if answer | 3906 | ;; (display-buffer buf nil 0) ;Deiconify frame if necessary. |
| 3929 | (display-buffer buf nil (or frame 0)) ;Deiconify frame if necessary. | 3907 | ;; (let ((window (get-lru-window))) |
| 3930 | (let ((window (get-lru-window))) | 3908 | ;; (if (eq (buffer-local-value 'gud-minor-mode (window-buffer window)) |
| 3931 | (if (eq (buffer-local-value 'gud-minor-mode (window-buffer window)) | 3909 | ;; 'gdbmi) |
| 3932 | 'gdbmi) | 3910 | ;; (let ((largest (get-largest-window))) |
| 3933 | (let ((largest (get-largest-window))) | 3911 | ;; (setq answer (split-window largest)) |
| 3934 | (setq answer (split-window largest)) | 3912 | ;; (set-window-buffer answer buf) |
| 3935 | (set-window-buffer answer buf) | 3913 | ;; (set-window-dedicated-p answer t) |
| 3936 | (set-window-dedicated-p answer dedicated) | 3914 | ;; answer) |
| 3937 | answer) | 3915 | ;; (set-window-buffer window buf) |
| 3938 | (set-window-buffer window buf) | 3916 | ;; window))))) |
| 3939 | window))))) | 3917 | |
| 3940 | 3918 | ||
| 3941 | (defun gdb-preempt-existing-or-display-buffer (buf &optional split-horizontal) | 3919 | (defun gdb-preempt-existing-or-display-buffer (buf &optional split-horizontal) |
| 3942 | "Find window displaying a buffer with the same | 3920 | "Find window displaying a buffer with the same |
| @@ -3963,7 +3941,7 @@ SPLIT-HORIZONTAL and show BUF in the new window." | |||
| 3963 | (if dedicated-window | 3941 | (if dedicated-window |
| 3964 | (set-window-buffer | 3942 | (set-window-buffer |
| 3965 | (split-window dedicated-window nil split-horizontal) buf) | 3943 | (split-window dedicated-window nil split-horizontal) buf) |
| 3966 | (gdb-display-buffer buf t)))))) | 3944 | (gdb-display-buffer buf)))))) |
| 3967 | (error "Null buffer"))) | 3945 | (error "Null buffer"))) |
| 3968 | 3946 | ||
| 3969 | ;;; Shared keymap initialization: | 3947 | ;;; Shared keymap initialization: |
| @@ -4067,7 +4045,7 @@ SPLIT-HORIZONTAL and show BUF in the new window." | |||
| 4067 | 'all-threads) | 4045 | 'all-threads) |
| 4068 | 4046 | ||
| 4069 | (defun gdb-frame-gdb-buffer () | 4047 | (defun gdb-frame-gdb-buffer () |
| 4070 | "Display GUD buffer in a new frame." | 4048 | "Display GUD buffer in another frame." |
| 4071 | (interactive) | 4049 | (interactive) |
| 4072 | (display-buffer-other-frame gud-comint-buffer)) | 4050 | (display-buffer-other-frame gud-comint-buffer)) |
| 4073 | 4051 | ||
| @@ -4089,13 +4067,12 @@ window is dedicated." | |||
| 4089 | 4067 | ||
| 4090 | (defun gdb-setup-windows () | 4068 | (defun gdb-setup-windows () |
| 4091 | "Layout the window pattern for `gdb-many-windows'." | 4069 | "Layout the window pattern for `gdb-many-windows'." |
| 4092 | (gdb-display-locals-buffer) | 4070 | (gdb-get-buffer-create 'gdb-locals-buffer) |
| 4093 | (gdb-display-stack-buffer) | 4071 | (gdb-get-buffer-create 'gdb-stack-buffer) |
| 4094 | (delete-other-windows) | 4072 | (gdb-get-buffer-create 'gdb-breakpoints-buffer) |
| 4095 | (gdb-display-breakpoints-buffer) | 4073 | (set-window-dedicated-p (selected-window) nil) |
| 4096 | (delete-other-windows) | ||
| 4097 | ;; Don't dedicate. | ||
| 4098 | (switch-to-buffer gud-comint-buffer) | 4074 | (switch-to-buffer gud-comint-buffer) |
| 4075 | (delete-other-windows) | ||
| 4099 | (let ((win0 (selected-window)) | 4076 | (let ((win0 (selected-window)) |
| 4100 | (win1 (split-window nil ( / ( * (window-height) 3) 4))) | 4077 | (win1 (split-window nil ( / ( * (window-height) 3) 4))) |
| 4101 | (win2 (split-window nil ( / (window-height) 3))) | 4078 | (win2 (split-window nil ( / (window-height) 3))) |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 5946e93f34d..2e3858b2cc5 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -2685,7 +2685,6 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2685 | (declare-function global-hl-line-highlight "hl-line" ()) | 2685 | (declare-function global-hl-line-highlight "hl-line" ()) |
| 2686 | (declare-function hl-line-highlight "hl-line" ()) | 2686 | (declare-function hl-line-highlight "hl-line" ()) |
| 2687 | (declare-function gdb-display-source-buffer "gdb-mi" (buffer)) | 2687 | (declare-function gdb-display-source-buffer "gdb-mi" (buffer)) |
| 2688 | (declare-function gdb-display-buffer "gdb-mi" (buf dedicated &optional size)) | ||
| 2689 | 2688 | ||
| 2690 | ;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen | 2689 | ;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen |
| 2691 | ;; and that its line LINE is visible. | 2690 | ;; and that its line LINE is visible. |
| @@ -2702,10 +2701,7 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2702 | (window (and buffer | 2701 | (window (and buffer |
| 2703 | (or (get-buffer-window buffer) | 2702 | (or (get-buffer-window buffer) |
| 2704 | (if (eq gud-minor-mode 'gdbmi) | 2703 | (if (eq gud-minor-mode 'gdbmi) |
| 2705 | (or (if (get-buffer-window buffer 'visible) | 2704 | (display-buffer buffer nil 'visible)) |
| 2706 | (display-buffer buffer nil 'visible)) | ||
| 2707 | (unless (gdb-display-source-buffer buffer) | ||
| 2708 | (gdb-display-buffer buffer nil 'visible)))) | ||
| 2709 | (display-buffer buffer)))) | 2705 | (display-buffer buffer)))) |
| 2710 | (pos)) | 2706 | (pos)) |
| 2711 | (if buffer | 2707 | (if buffer |
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index 3e3d7adc0b6..4b77c6dab1a 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el | |||
| @@ -1003,7 +1003,7 @@ Return as (TOP . BOTTOM) the extent of ifdef block." | |||
| 1003 | "Compress the define list ENV into a list of defined symbols only." | 1003 | "Compress the define list ENV into a list of defined symbols only." |
| 1004 | (let ((new-defs nil)) | 1004 | (let ((new-defs nil)) |
| 1005 | (dolist (def env new-defs) | 1005 | (dolist (def env new-defs) |
| 1006 | (if (hif-lookup (car def)) (push (car env) new-defs))))) | 1006 | (if (hif-lookup (car def)) (push (car def) new-defs))))) |
| 1007 | 1007 | ||
| 1008 | (defun hide-ifdef-set-define-alist (name) | 1008 | (defun hide-ifdef-set-define-alist (name) |
| 1009 | "Set the association for NAME to `hide-ifdef-env'." | 1009 | "Set the association for NAME to `hide-ifdef-env'." |
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index b6d2b5e319c..233b9a5212e 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el | |||
| @@ -408,6 +408,8 @@ element (using `match-beginning') before calling `hs-forward-sexp-func'.") | |||
| 408 | 408 | ||
| 409 | (defvar hs-block-end-regexp nil | 409 | (defvar hs-block-end-regexp nil |
| 410 | "Regexp for end of block.") | 410 | "Regexp for end of block.") |
| 411 | (make-variable-buffer-local 'hs-block-end-regexp) | ||
| 412 | |||
| 411 | 413 | ||
| 412 | (defvar hs-forward-sexp-func 'forward-sexp | 414 | (defvar hs-forward-sexp-func 'forward-sexp |
| 413 | "Function used to do a `forward-sexp'. | 415 | "Function used to do a `forward-sexp'. |
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 519e5aef2bc..d954cd53e0a 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el | |||
| @@ -426,18 +426,21 @@ Match group 1 is the name of the macro.") | |||
| 426 | (defcustom js-indent-level 4 | 426 | (defcustom js-indent-level 4 |
| 427 | "Number of spaces for each indentation step in `js-mode'." | 427 | "Number of spaces for each indentation step in `js-mode'." |
| 428 | :type 'integer | 428 | :type 'integer |
| 429 | :safe 'integerp | ||
| 429 | :group 'js) | 430 | :group 'js) |
| 430 | 431 | ||
| 431 | (defcustom js-expr-indent-offset 0 | 432 | (defcustom js-expr-indent-offset 0 |
| 432 | "Number of additional spaces for indenting continued expressions. | 433 | "Number of additional spaces for indenting continued expressions. |
| 433 | The value must be no less than minus `js-indent-level'." | 434 | The value must be no less than minus `js-indent-level'." |
| 434 | :type 'integer | 435 | :type 'integer |
| 436 | :safe 'integerp | ||
| 435 | :group 'js) | 437 | :group 'js) |
| 436 | 438 | ||
| 437 | (defcustom js-paren-indent-offset 0 | 439 | (defcustom js-paren-indent-offset 0 |
| 438 | "Number of additional spaces for indenting expressions in parentheses. | 440 | "Number of additional spaces for indenting expressions in parentheses. |
| 439 | The value must be no less than minus `js-indent-level'." | 441 | The value must be no less than minus `js-indent-level'." |
| 440 | :type 'integer | 442 | :type 'integer |
| 443 | :safe 'integerp | ||
| 441 | :group 'js | 444 | :group 'js |
| 442 | :version "24.1") | 445 | :version "24.1") |
| 443 | 446 | ||
| @@ -445,6 +448,7 @@ The value must be no less than minus `js-indent-level'." | |||
| 445 | "Number of additional spaces for indenting expressions in square braces. | 448 | "Number of additional spaces for indenting expressions in square braces. |
| 446 | The value must be no less than minus `js-indent-level'." | 449 | The value must be no less than minus `js-indent-level'." |
| 447 | :type 'integer | 450 | :type 'integer |
| 451 | :safe 'integerp | ||
| 448 | :group 'js | 452 | :group 'js |
| 449 | :version "24.1") | 453 | :version "24.1") |
| 450 | 454 | ||
| @@ -452,6 +456,7 @@ The value must be no less than minus `js-indent-level'." | |||
| 452 | "Number of additional spaces for indenting expressions in curly braces. | 456 | "Number of additional spaces for indenting expressions in curly braces. |
| 453 | The value must be no less than minus `js-indent-level'." | 457 | The value must be no less than minus `js-indent-level'." |
| 454 | :type 'integer | 458 | :type 'integer |
| 459 | :safe 'integerp | ||
| 455 | :group 'js | 460 | :group 'js |
| 456 | :version "24.1") | 461 | :version "24.1") |
| 457 | 462 | ||
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 457c7fee36c..3f93ffa84ba 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el | |||
| @@ -138,18 +138,11 @@ This should only be called after matching against `ruby-here-doc-beg-re'." | |||
| 138 | 138 | ||
| 139 | (defvar ruby-mode-map | 139 | (defvar ruby-mode-map |
| 140 | (let ((map (make-sparse-keymap))) | 140 | (let ((map (make-sparse-keymap))) |
| 141 | (define-key map "{" 'ruby-electric-brace) | ||
| 142 | (define-key map "}" 'ruby-electric-brace) | ||
| 143 | (define-key map (kbd "M-C-a") 'ruby-beginning-of-defun) | ||
| 144 | (define-key map (kbd "M-C-e") 'ruby-end-of-defun) | ||
| 145 | (define-key map (kbd "M-C-b") 'ruby-backward-sexp) | 141 | (define-key map (kbd "M-C-b") 'ruby-backward-sexp) |
| 146 | (define-key map (kbd "M-C-f") 'ruby-forward-sexp) | 142 | (define-key map (kbd "M-C-f") 'ruby-forward-sexp) |
| 147 | (define-key map (kbd "M-C-p") 'ruby-beginning-of-block) | 143 | (define-key map (kbd "M-C-p") 'ruby-beginning-of-block) |
| 148 | (define-key map (kbd "M-C-n") 'ruby-end-of-block) | 144 | (define-key map (kbd "M-C-n") 'ruby-end-of-block) |
| 149 | (define-key map (kbd "M-C-h") 'ruby-mark-defun) | ||
| 150 | (define-key map (kbd "M-C-q") 'ruby-indent-exp) | 145 | (define-key map (kbd "M-C-q") 'ruby-indent-exp) |
| 151 | (define-key map (kbd "C-M-h") 'backward-kill-word) | ||
| 152 | (define-key map (kbd "C-j") 'reindent-then-newline-and-indent) | ||
| 153 | (define-key map (kbd "C-c {") 'ruby-toggle-block) | 146 | (define-key map (kbd "C-c {") 'ruby-toggle-block) |
| 154 | map) | 147 | map) |
| 155 | "Keymap used in Ruby mode.") | 148 | "Keymap used in Ruby mode.") |
| @@ -840,12 +833,6 @@ and `\\' when preceded by `?'." | |||
| 840 | (+ indent ruby-indent-level) | 833 | (+ indent ruby-indent-level) |
| 841 | indent)))) | 834 | indent)))) |
| 842 | 835 | ||
| 843 | (defun ruby-electric-brace (arg) | ||
| 844 | "Insert a brace and re-indent the current line." | ||
| 845 | (interactive "P") | ||
| 846 | (self-insert-command (prefix-numeric-value arg)) | ||
| 847 | (ruby-indent-line t)) | ||
| 848 | |||
| 849 | ;; TODO: Why isn't one ruby-*-of-defun written in terms of the other? | 836 | ;; TODO: Why isn't one ruby-*-of-defun written in terms of the other? |
| 850 | (defun ruby-beginning-of-defun (&optional arg) | 837 | (defun ruby-beginning-of-defun (&optional arg) |
| 851 | "Move backward to the beginning of the current top-level defun. | 838 | "Move backward to the beginning of the current top-level defun. |
| @@ -1024,15 +1011,6 @@ With ARG, do it many times. Negative ARG means move forward." | |||
| 1024 | ((error))) | 1011 | ((error))) |
| 1025 | i))) | 1012 | i))) |
| 1026 | 1013 | ||
| 1027 | (defun ruby-mark-defun () | ||
| 1028 | "Put mark at end of this Ruby function, point at beginning." | ||
| 1029 | (interactive) | ||
| 1030 | (push-mark (point)) | ||
| 1031 | (ruby-end-of-defun) | ||
| 1032 | (push-mark (point) nil t) | ||
| 1033 | (ruby-beginning-of-defun) | ||
| 1034 | (re-search-backward "^\n" (- (point) 1) t)) | ||
| 1035 | |||
| 1036 | (defun ruby-indent-exp (&optional ignored) | 1014 | (defun ruby-indent-exp (&optional ignored) |
| 1037 | "Indent each line in the balanced expression following the point." | 1015 | "Indent each line in the balanced expression following the point." |
| 1038 | (interactive "*P") | 1016 | (interactive "*P") |
| @@ -1586,6 +1564,10 @@ The variable `ruby-indent-level' controls the amount of indentation. | |||
| 1586 | 'ruby-imenu-create-index) | 1564 | 'ruby-imenu-create-index) |
| 1587 | (set (make-local-variable 'add-log-current-defun-function) | 1565 | (set (make-local-variable 'add-log-current-defun-function) |
| 1588 | 'ruby-add-log-current-method) | 1566 | 'ruby-add-log-current-method) |
| 1567 | (set (make-local-variable 'beginning-of-defun-function) | ||
| 1568 | 'ruby-beginning-of-defun) | ||
| 1569 | (set (make-local-variable 'end-of-defun-function) | ||
| 1570 | 'ruby-end-of-defun) | ||
| 1589 | 1571 | ||
| 1590 | (add-hook | 1572 | (add-hook |
| 1591 | (cond ((boundp 'before-save-hook) 'before-save-hook) | 1573 | (cond ((boundp 'before-save-hook) 'before-save-hook) |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index a6089aabb04..a422462775d 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -202,6 +202,11 @@ | |||
| 202 | (require 'comint)) | 202 | (require 'comint)) |
| 203 | (require 'executable) | 203 | (require 'executable) |
| 204 | 204 | ||
| 205 | (autoload 'comint-completion-at-point "comint") | ||
| 206 | (autoload 'comint-filename-completion "comint") | ||
| 207 | (autoload 'shell-command-completion "shell") | ||
| 208 | (autoload 'shell-environment-variable-completion "shell") | ||
| 209 | |||
| 205 | (defvar font-lock-comment-face) | 210 | (defvar font-lock-comment-face) |
| 206 | (defvar font-lock-set-defaults) | 211 | (defvar font-lock-set-defaults) |
| 207 | (defvar font-lock-string-face) | 212 | (defvar font-lock-string-face) |
| @@ -470,7 +475,6 @@ This is buffer-local in every such buffer.") | |||
| 470 | (define-key map "\C-\M-x" 'sh-execute-region) | 475 | (define-key map "\C-\M-x" 'sh-execute-region) |
| 471 | (define-key map "\C-c\C-x" 'executable-interpret) | 476 | (define-key map "\C-c\C-x" 'executable-interpret) |
| 472 | 477 | ||
| 473 | (define-key map [remap complete-tag] 'comint-dynamic-complete) | ||
| 474 | (define-key map [remap delete-backward-char] | 478 | (define-key map [remap delete-backward-char] |
| 475 | 'backward-delete-char-untabify) | 479 | 'backward-delete-char-untabify) |
| 476 | (define-key map "\C-c:" 'sh-set-shell) | 480 | (define-key map "\C-c:" 'sh-set-shell) |
| @@ -553,9 +557,9 @@ This is buffer-local in every such buffer.") | |||
| 553 | "Value to use for `skeleton-pair-default-alist' in Shell-Script mode.") | 557 | "Value to use for `skeleton-pair-default-alist' in Shell-Script mode.") |
| 554 | 558 | ||
| 555 | (defcustom sh-dynamic-complete-functions | 559 | (defcustom sh-dynamic-complete-functions |
| 556 | '(shell-dynamic-complete-environment-variable | 560 | '(shell-environment-variable-completion |
| 557 | shell-dynamic-complete-command | 561 | shell-command-completion |
| 558 | comint-dynamic-complete-filename) | 562 | comint-filename-completion) |
| 559 | "Functions for doing TAB dynamic completion." | 563 | "Functions for doing TAB dynamic completion." |
| 560 | :type '(repeat function) | 564 | :type '(repeat function) |
| 561 | :group 'sh-script) | 565 | :group 'sh-script) |
| @@ -1187,7 +1191,7 @@ This value is used for the `+' and `-' symbols in an indentation variable." | |||
| 1187 | :group 'sh-indentation) | 1191 | :group 'sh-indentation) |
| 1188 | (put 'sh-basic-offset 'safe-local-variable 'integerp) | 1192 | (put 'sh-basic-offset 'safe-local-variable 'integerp) |
| 1189 | 1193 | ||
| 1190 | (defcustom sh-indent-comment nil | 1194 | (defcustom sh-indent-comment t |
| 1191 | "How a comment line is to be indented. | 1195 | "How a comment line is to be indented. |
| 1192 | nil means leave it as it is; | 1196 | nil means leave it as it is; |
| 1193 | t means indent it as a normal line, aligning it to previous non-blank | 1197 | t means indent it as a normal line, aligning it to previous non-blank |
| @@ -1198,6 +1202,7 @@ a number means align to that column, e.g. 0 means first column." | |||
| 1198 | (const :tag "Indent as a normal line." t) | 1202 | (const :tag "Indent as a normal line." t) |
| 1199 | (integer :menu-tag "Indent to this col (0 means first col)." | 1203 | (integer :menu-tag "Indent to this col (0 means first col)." |
| 1200 | :tag "Indent to column number.") ) | 1204 | :tag "Indent to column number.") ) |
| 1205 | :version "24.3" | ||
| 1201 | :group 'sh-indentation) | 1206 | :group 'sh-indentation) |
| 1202 | 1207 | ||
| 1203 | 1208 | ||
| @@ -1485,6 +1490,7 @@ with your script for an edit-interpret-debug cycle." | |||
| 1485 | (set (make-local-variable 'local-abbrev-table) sh-mode-abbrev-table) | 1490 | (set (make-local-variable 'local-abbrev-table) sh-mode-abbrev-table) |
| 1486 | (set (make-local-variable 'comint-dynamic-complete-functions) | 1491 | (set (make-local-variable 'comint-dynamic-complete-functions) |
| 1487 | sh-dynamic-complete-functions) | 1492 | sh-dynamic-complete-functions) |
| 1493 | (add-hook 'completion-at-point-functions 'comint-completion-at-point nil t) | ||
| 1488 | ;; we can't look if previous line ended with `\' | 1494 | ;; we can't look if previous line ended with `\' |
| 1489 | (set (make-local-variable 'comint-prompt-regexp) "^[ \t]*") | 1495 | (set (make-local-variable 'comint-prompt-regexp) "^[ \t]*") |
| 1490 | (set (make-local-variable 'imenu-case-fold-search) nil) | 1496 | (set (make-local-variable 'imenu-case-fold-search) nil) |
| @@ -4109,20 +4115,6 @@ The document is bounded by `sh-here-document-word'." | |||
| 4109 | 4115 | ||
| 4110 | ;; various other commands | 4116 | ;; various other commands |
| 4111 | 4117 | ||
| 4112 | (autoload 'comint-dynamic-complete "comint" | ||
| 4113 | "Dynamically perform completion at point." t) | ||
| 4114 | |||
| 4115 | (autoload 'shell-dynamic-complete-command "shell" | ||
| 4116 | "Dynamically complete the command at point." t) | ||
| 4117 | |||
| 4118 | (autoload 'comint-dynamic-complete-filename "comint" | ||
| 4119 | "Dynamically complete the filename at point." t) | ||
| 4120 | |||
| 4121 | (autoload 'shell-dynamic-complete-environment-variable "shell" | ||
| 4122 | "Dynamically complete the environment variable at point." t) | ||
| 4123 | |||
| 4124 | |||
| 4125 | |||
| 4126 | (defun sh-beginning-of-command () | 4118 | (defun sh-beginning-of-command () |
| 4127 | ;; FIXME: Redefine using SMIE. | 4119 | ;; FIXME: Redefine using SMIE. |
| 4128 | "Move point to successive beginnings of commands." | 4120 | "Move point to successive beginnings of commands." |