aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes
diff options
context:
space:
mode:
authorKaroly Lorentey2004-05-18 19:12:15 +0000
committerKaroly Lorentey2004-05-18 19:12:15 +0000
commitc23670f81e059ebe645c88575f4ddfa67f26bf6b (patch)
tree71667a6ceaa877ccf3953abedfa7b0fd5f0f5369 /lisp/progmodes
parentd9858e4f1889a61b216ae1f99053846362067ccc (diff)
parenta7f7f2540f02834ad128d0c9357a4dbd8222dff4 (diff)
downloademacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.tar.gz
emacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-301 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-302 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-303 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-304 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-305 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-306 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-307 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-308 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-309 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-310 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-311 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-312 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-313 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-314 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-315 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-316 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-317 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-318 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-319 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-320 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-321 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-322 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-323 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-324 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-163
Diffstat (limited to 'lisp/progmodes')
-rw-r--r--lisp/progmodes/compile.el44
-rw-r--r--lisp/progmodes/f90.el49
-rw-r--r--lisp/progmodes/gdb-ui.el1
-rw-r--r--lisp/progmodes/gud.el11
-rw-r--r--lisp/progmodes/python.el19
5 files changed, 92 insertions, 32 deletions
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index ec381ad8a15..da43b7b7098 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -171,8 +171,15 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
171 "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\ 171 "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\
172\\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4)) 172\\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4))
173 173
174 (edg-1
175 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)"
176 1 2 nil (3 . 4))
177 (edg-2
178 "at line \\([0-9]+\\) of \"\\([^ \n]+\\)\"$"
179 2 1 nil 0)
180
174 (epc 181 (epc
175 "^Error [0-9]+ at (\\([0-9]*\\):\\([^)\n]+\\))" 2 1) 182 "^Error [0-9]+ at (\\([0-9]+\\):\\([^)\n]+\\))" 2 1)
176 183
177 (iar 184 (iar
178 "^\"\\(.*\\)\",\\([0-9]+\\)\\s-+\\(?:Error\\|Warnin\\(g\\)\\)\\[[0-9]+\\]:" 185 "^\"\\(.*\\)\",\\([0-9]+\\)\\s-+\\(?:Error\\|Warnin\\(g\\)\\)\\[[0-9]+\\]:"
@@ -265,10 +272,6 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
265 (sun-ada 272 (sun-ada
266 "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3) 273 "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3)
267 274
268 ;; Redundant with `mips'
269;; (ultrix
270;; "^\\(?:cfe\\|fort\\): \\(Warning\\)?[^:\n]*: \\([^ \n]*\\), line \\([0-9]+\\):" 2 3 nil (1))
271
272 (4bsd 275 (4bsd
273 "\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\ 276 "\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\
274\\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3))) 277\\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3)))
@@ -445,17 +448,19 @@ starting the compilation process.")
445(defvar compile-history nil) 448(defvar compile-history nil)
446 449
447(defface compilation-warning-face 450(defface compilation-warning-face
448 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) 451 '((((class color) (min-colors 16)) (:foreground "Orange" :weight bold))
449 (((class color)) (:foreground "Orange" :weight bold)) 452 (((class color)) (:foreground "cyan" :weight bold))
450 (t (:weight bold))) 453 (t (:weight bold)))
451 "Face used to highlight compiler warnings." 454 "Face used to highlight compiler warnings."
452 :group 'font-lock-highlighting-faces 455 :group 'font-lock-highlighting-faces
453 :version "21.4") 456 :version "21.4")
454 457
455(defface compilation-info-face 458(defface compilation-info-face
456 '((((type tty) (class color)) (:foreground "green" :weight bold)) 459 '((((class color) (min-colors 16) (background light))
457 (((class color) (background light)) (:foreground "Green3" :weight bold)) 460 (:foreground "Green3" :weight bold))
458 (((class color) (background dark)) (:foreground "Green" :weight bold)) 461 (((class color) (min-colors 16) (background dark))
462 (:foreground "Green" :weight bold))
463 (((class color)) (:foreground "green" :weight bold))
459 (t (:weight bold))) 464 (t (:weight bold)))
460 "Face used to highlight compiler warnings." 465 "Face used to highlight compiler warnings."
461 :group 'font-lock-highlighting-faces 466 :group 'font-lock-highlighting-faces
@@ -749,6 +754,8 @@ and move to the source code that caused it.
749 754
750Interactively, prompts for the command if `compilation-read-command' is 755Interactively, prompts for the command if `compilation-read-command' is
751non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. 756non-nil; otherwise uses `compile-command'. With prefix arg, always prompts.
757Additionally, with universal prefix arg, compilation buffer will be in
758comint mode, i.e. interactive.
752 759
753To run more than one compilation at once, start one and rename 760To run more than one compilation at once, start one and rename
754the \`*compilation*' buffer to some other name with 761the \`*compilation*' buffer to some other name with
@@ -760,11 +767,13 @@ The name used for the buffer is actually whatever is returned by
760the function in `compilation-buffer-name-function', so you can set that 767the function in `compilation-buffer-name-function', so you can set that
761to a function that generates a unique name." 768to a function that generates a unique name."
762 (interactive 769 (interactive
763 (if (or compilation-read-command current-prefix-arg) 770 (list
764 (list (read-from-minibuffer "Compile command: " 771 (if (or compilation-read-command current-prefix-arg)
765 (eval compile-command) nil nil 772 (read-from-minibuffer "Compile command: "
766 '(compile-history . 1))) 773 (eval compile-command) nil nil
767 (list (eval compile-command)))) 774 '(compile-history . 1))
775 (eval compile-command))
776 (consp current-prefix-arg)))
768 (unless (equal command (eval compile-command)) 777 (unless (equal command (eval compile-command))
769 (setq compile-command command)) 778 (setq compile-command command))
770 (save-some-buffers (not compilation-ask-about-save) nil) 779 (save-some-buffers (not compilation-ask-about-save) nil)
@@ -983,8 +992,9 @@ exited abnormally with code %d\n"
983 ;; buffer, which might not be the same as the selected window's buffer. 992 ;; buffer, which might not be the same as the selected window's buffer.
984 (save-current-buffer 993 (save-current-buffer
985 (save-selected-window 994 (save-selected-window
986 (select-window window) 995 (save-excursion
987 (enlarge-window (- height (window-height)))))))) 996 (select-window window)
997 (enlarge-window (- height (window-height)))))))))
988 998
989(defvar compilation-menu-map 999(defvar compilation-menu-map
990 (let ((map (make-sparse-keymap "Errors"))) 1000 (let ((map (make-sparse-keymap "Errors")))
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index aada9be16dc..53165fbecb7 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -153,7 +153,7 @@
153;;; Code: 153;;; Code:
154 154
155;; TODO 155;; TODO
156;; Support for hideshow, align. 156;; Support for align.
157;; OpenMP, preprocessor highlighting. 157;; OpenMP, preprocessor highlighting.
158 158
159(defvar comment-auto-fill-only-comments) 159(defvar comment-auto-fill-only-comments)
@@ -589,6 +589,53 @@ characters long.")
589(make-variable-buffer-local 'f90-cache-position) 589(make-variable-buffer-local 'f90-cache-position)
590 590
591 591
592;; Hideshow support.
593(defconst f90-end-block-re
594 (concat "^[ \t0-9]*\\<end\\>[ \t]*"
595 (regexp-opt '("do" "if" "forall" "function" "interface"
596 "module" "program" "select" "subroutine"
597 "type" "where" ) t)
598 "[ \t]*\\sw*")
599 "Regexp matching the end of a \"block\" of F90 code.
600Used in the F90 entry in `hs-special-modes-alist'.")
601
602;; Ignore the fact that FUNCTION, SUBROUTINE, WHERE, FORALL have a
603;; following "(". DO, CASE, IF can have labels; IF must be
604;; accompanied by THEN.
605;; A big problem is that many of these statements can be broken over
606;; lines, even with embedded comments. We only try to handle this for
607;; IF ... THEN statements, assuming and hoping it will be less common
608;; for other constructs. We match up to one new-line, provided ")
609;; THEN" appears on one line. Matching on just ") THEN" is no good,
610;; since that includes ELSE branches.
611;; For a fully accurate solution, hideshow would probably have to be
612;; modified to allow functions as well as regexps to be used to
613;; specify block start and end positions.
614(defconst f90-start-block-re
615 (concat
616 "^[ \t0-9]*" ; statement number
617 "\\(\\("
618 "\\(\\sw+[ \t]*:[ \t]*\\)?" ; structure label
619 "\\(do\\|select[ \t]*case\\|if[ \t]*(.*\n?.*)[ \t]*then\\|"
620 ;; Distinguish WHERE block from isolated WHERE.
621 "\\(where\\|forall\\)[ \t]*(.*)[ \t]*\\(!\\|$\\)\\)\\)"
622 "\\|"
623 "program\\|interface\\|module\\|type\\|function\\|subroutine"
624 ;; ") THEN" at line end. Problem - also does ELSE.
625;;; "\\|.*)[ \t]*then[ \t]*\\($\\|!\\)"
626 "\\)"
627 "[ \t]*")
628 "Regexp matching the start of a \"block\" of F90 code.
629A simple regexp cannot do this in fully correct fashion, so this
630tries to strike a compromise between complexity and flexibility.
631Used in the F90 entry in `hs-special-modes-alist'.")
632
633;; hs-special-modes-alist is autoloaded.
634(add-to-list 'hs-special-modes-alist
635 `(f90-mode ,f90-start-block-re ,f90-end-block-re
636 "!" f90-end-of-block nil))
637
638
592;; Imenu support. 639;; Imenu support.
593(defvar f90-imenu-generic-expression 640(defvar f90-imenu-generic-expression
594 (let ((good-char "[^!\"\&\n \t]") (not-e "[^e!\n\"\& \t]") 641 (let ((good-char "[^!\"\&\n \t]") (not-e "[^e!\n\"\& \t]")
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index fc3196cdb4f..19c57979130 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -664,6 +664,7 @@ This filter may simply queue output for a later time."
664 ("commands" gdb-subprompt) 664 ("commands" gdb-subprompt)
665 ("overload-choice" gdb-subprompt) 665 ("overload-choice" gdb-subprompt)
666 ("query" gdb-subprompt) 666 ("query" gdb-subprompt)
667 ("nquery" gdb-subprompt)
667 ("prompt-for-continue" gdb-subprompt) 668 ("prompt-for-continue" gdb-subprompt)
668 ("post-prompt" gdb-post-prompt) 669 ("post-prompt" gdb-post-prompt)
669 ("source" gdb-source) 670 ("source" gdb-source)
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 035b5da875a..84dec78d895 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -2339,7 +2339,8 @@ comint mode, which see."
2339 ;; Don't put repeated commands in command history many times. 2339 ;; Don't put repeated commands in command history many times.
2340 (set (make-local-variable 'comint-input-ignoredups) t) 2340 (set (make-local-variable 'comint-input-ignoredups) t)
2341 (make-local-variable 'paragraph-start) 2341 (make-local-variable 'paragraph-start)
2342 (set (make-local-variable 'gud-delete-prompt-marker) (make-marker))) 2342 (set (make-local-variable 'gud-delete-prompt-marker) (make-marker))
2343 (add-hook 'kill-buffer-hook 'gud-kill-buffer-hook nil t))
2343 2344
2344;; Cause our buffers to be displayed, by default, 2345;; Cause our buffers to be displayed, by default,
2345;; in the selected window. 2346;; in the selected window.
@@ -2546,10 +2547,10 @@ It is saved for when this flag is not set.")
2546 (set-buffer obuf)))))) 2547 (set-buffer obuf))))))
2547 2548
2548(defun gud-kill-buffer-hook () 2549(defun gud-kill-buffer-hook ()
2549 (if gud-minor-mode 2550 (setq gud-minor-mode-type gud-minor-mode)
2550 (setq gud-minor-mode-type gud-minor-mode))) 2551 (condition-case nil
2551 2552 (kill-process (get-buffer-process gud-comint-buffer))
2552(add-hook 'kill-buffer-hook 'gud-kill-buffer-hook) 2553 (error nil)))
2553 2554
2554(defun gud-reset () 2555(defun gud-reset ()
2555 (dolist (buffer (buffer-list)) 2556 (dolist (buffer (buffer-list))
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 214b6f0e24c..cee59a6e3e1 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -297,10 +297,9 @@ comments and strings, or that the bracket/paren nesting depth is nonzero."
297 (syntax-ppss (line-beginning-position))))))) 297 (syntax-ppss (line-beginning-position)))))))
298 298
299(defun python-comment-line-p () 299(defun python-comment-line-p ()
300 "Return non-nil if current line has only a comment or is blank." 300 "Return non-nil iff current line has only a comment."
301 (save-excursion 301 (save-excursion
302 (end-of-line) 302 (end-of-line)
303 ;; FIXME: This looks wrong because it returns nil for empty lines. --Stef
304 (when (eq 'comment (syntax-ppss-context (syntax-ppss))) 303 (when (eq 'comment (syntax-ppss-context (syntax-ppss)))
305 (back-to-indentation) 304 (back-to-indentation)
306 (looking-at (rx (or (syntax comment-start) line-end)))))) 305 (looking-at (rx (or (syntax comment-start) line-end))))))
@@ -1025,7 +1024,6 @@ et al.")
1025 (let ((map (make-sparse-keymap))) 1024 (let ((map (make-sparse-keymap)))
1026 ;; This will inherit from comint-mode-map. 1025 ;; This will inherit from comint-mode-map.
1027 (define-key map "\C-c\C-l" 'python-load-file) 1026 (define-key map "\C-c\C-l" 'python-load-file)
1028 (define-key map "\C-c\C-z" 'python-switch-to-python) ;What for? --Stef
1029 (define-key map "\C-c\C-v" 'python-check) 1027 (define-key map "\C-c\C-v" 'python-check)
1030 ;; Note that we _can_ still use these commands which send to the 1028 ;; Note that we _can_ still use these commands which send to the
1031 ;; Python process even at the prompt iff we have a normal prompt, 1029 ;; Python process even at the prompt iff we have a normal prompt,
@@ -1140,10 +1138,12 @@ to this as appropriate. Runs the hook `inferior-python-mode-hook'
1140 ;; (not a name) in Python buffers from which `run-python' &c is 1138 ;; (not a name) in Python buffers from which `run-python' &c is
1141 ;; invoked. Would support multiple processes better. 1139 ;; invoked. Would support multiple processes better.
1142 (unless (comint-check-proc python-buffer) 1140 (unless (comint-check-proc python-buffer)
1143 (let ((cmdlist (append (python-args-to-list cmd) '("-i"))) 1141 (let* ((cmdlist (append (python-args-to-list cmd) '("-i")))
1144 (process-environment ; to import emacs.py 1142 (path (getenv "PYTHONPATH"))
1145 (push (concat "PYTHONPATH=" data-directory) 1143 (process-environment ; to import emacs.py
1146 process-environment))) 1144 (push (concat "PYTHONPATH=" data-directory
1145 (if path (concat ":" path)))
1146 process-environment)))
1147 (set-buffer (apply 'make-comint "Python" (car cmdlist) nil 1147 (set-buffer (apply 'make-comint "Python" (car cmdlist) nil
1148 (cdr cmdlist))) 1148 (cdr cmdlist)))
1149 (setq python-buffer "*Python*")) 1149 (setq python-buffer "*Python*"))
@@ -1278,7 +1278,6 @@ module-qualified names."
1278 ;; Fixme: I'm not convinced by this logic from python-mode.el. 1278 ;; Fixme: I'm not convinced by this logic from python-mode.el.
1279 (python-send-command 1279 (python-send-command
1280 (if (string-match "\\.py\\'" file-name) 1280 (if (string-match "\\.py\\'" file-name)
1281 ;; Fixme: make sure the directory is in the path list
1282 (let ((module (file-name-sans-extension 1281 (let ((module (file-name-sans-extension
1283 (file-name-nondirectory file-name)))) 1282 (file-name-nondirectory file-name))))
1284 (format "emacs.eimport(%S,%S)" 1283 (format "emacs.eimport(%S,%S)"
@@ -1309,6 +1308,7 @@ See variable `python-buffer'. Starts a new process if necessary."
1309Otherwise inherits from `python-mode-syntax-table'.") 1308Otherwise inherits from `python-mode-syntax-table'.")
1310 1309
1311(defvar view-return-to-alist) 1310(defvar view-return-to-alist)
1311(eval-when-compile (autoload 'help-buffer "help-fns"))
1312 1312
1313;; Fixme: Should this actually be used instead of info-look, i.e. be 1313;; Fixme: Should this actually be used instead of info-look, i.e. be
1314;; bound to C-h S? Can we use other pydoc stuff before python 2.2? 1314;; bound to C-h S? Can we use other pydoc stuff before python 2.2?
@@ -1394,7 +1394,8 @@ Used with `eval-after-load'."
1394 ;; Don't use `info' because it would pop-up a *info* buffer. 1394 ;; Don't use `info' because it would pop-up a *info* buffer.
1395 (with-no-warnings 1395 (with-no-warnings
1396 (Info-goto-node (format "(python%s-lib)Miscellaneous Index" 1396 (Info-goto-node (format "(python%s-lib)Miscellaneous Index"
1397 version))) 1397 version))
1398 t)
1398 (error nil))))) 1399 (error nil)))))
1399 (info-lookup-maybe-add-help 1400 (info-lookup-maybe-add-help
1400 :mode 'python-mode 1401 :mode 'python-mode