comparison lisp/progmodes/python.el @ 73459:664e876d97fd

2006-10-22 John Wiegley <johnw@newartisans.com> * progmodes/python.el (python-use-skeletons): python-mode was auto-inserting templates (for those with abbrev-mode on), not only by default -- *but without a configuration variable to disable it*. This rendered python-mode completely useless for me, so I have added `python-use-skeletons', which is now off by default.
author John Wiegley <johnw@newartisans.com>
date Sun, 22 Oct 2006 20:37:16 +0000
parents 063a265bc04f
children 871131fc9087 7eeafaaa9eab
comparison
equal deleted inserted replaced
73458:520f07d7cc57 73459:664e876d97fd
1967 (eval-after-load "ffap" 1967 (eval-after-load "ffap"
1968 '(push '(python-mode . python-module-path) ffap-alist)) 1968 '(push '(python-mode . python-module-path) ffap-alist))
1969 1969
1970 ;;;; Skeletons 1970 ;;;; Skeletons
1971 1971
1972 (defcustom python-use-skeletons nil
1973 "Non-nil means template skeletons will be automagically inserted.
1974 This happens when pressing \"if<SPACE>\", for example, to prompt for
1975 the if condition."
1976 :type 'boolean
1977 :group 'python)
1978
1972 (defvar python-skeletons nil 1979 (defvar python-skeletons nil
1973 "Alist of named skeletons for Python mode. 1980 "Alist of named skeletons for Python mode.
1974 Elements are of the form (NAME . EXPANDER-FUNCTION).") 1981 Elements are of the form (NAME . EXPANDER-FUNCTION).")
1975 1982
1976 (defvar python-mode-abbrev-table nil 1983 (defvar python-mode-abbrev-table nil
1984 (defmacro def-python-skeleton (name &rest elements) 1991 (defmacro def-python-skeleton (name &rest elements)
1985 (let* ((name (symbol-name name)) 1992 (let* ((name (symbol-name name))
1986 (function (intern (concat "python-insert-" name)))) 1993 (function (intern (concat "python-insert-" name))))
1987 `(progn 1994 `(progn
1988 (add-to-list 'python-skeletons ',(cons name function)) 1995 (add-to-list 'python-skeletons ',(cons name function))
1989 (define-abbrev python-mode-abbrev-table ,name "" ',function nil t) 1996 (if python-use-skeletons
1997 (define-abbrev python-mode-abbrev-table ,name "" ',function nil t))
1990 (define-skeleton ,function 1998 (define-skeleton ,function
1991 ,(format "Insert Python \"%s\" template." name) 1999 ,(format "Insert Python \"%s\" template." name)
1992 ,@elements))))) 2000 ,@elements)))))
1993 (put 'def-python-skeleton 'lisp-indent-function 2) 2001 (put 'def-python-skeleton 'lisp-indent-function 2)
1994 2002