From c01b997152fb916ce687577b03898372e0a404b2 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 31 Oct 2007 20:00:36 +0000 Subject: [PATCH] (python-mode-abbrev-table): Use :regexp. Merge defvar and define-abbrev-table. (def-python-skeleton): Use :case-fixed and :enable-function. (python-abbrev-pc-hook, python-abbrev-syntax-table, python-pea-hook): Remove. (python-mode): Don't modify pre-abbrev-expand-hook. --- lisp/ChangeLog | 9 +++++++++ lisp/progmodes/python.el | 30 +++++++----------------------- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d6f8c53df29..54b5c2a2ba4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2007-10-31 Stefan Monnier + + * progmodes/python.el (python-mode-abbrev-table): Use :regexp. + Merge defvar and define-abbrev-table. + (def-python-skeleton): Use :case-fixed and :enable-function. + (python-abbrev-pc-hook, python-abbrev-syntax-table, python-pea-hook): + Remove. + (python-mode): Don't modify pre-abbrev-expand-hook. + 2007-10-31 Dan Nicolaescu * ediff-util.el (ediff-file-checked-out-p) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index fc28b72bfd1..f54b7c9f928 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2036,10 +2036,11 @@ the if condition." "Alist of named skeletons for Python mode. Elements are of the form (NAME . EXPANDER-FUNCTION).") -(defvar python-mode-abbrev-table nil +(define-abbrev-table 'python-mode-abbrev-table () "Abbrev table for Python mode. -The default contents correspond to the elements of `python-skeletons'.") -(define-abbrev-table 'python-mode-abbrev-table ()) +The default contents correspond to the elements of `python-skeletons'." + ;; Allow / in abbrevs. + :regexp "\\<\\([[:word:]/]+\\)\\W*") (eval-when-compile ;; Define a user-level skeleton and add it to `python-skeletons' and @@ -2049,8 +2050,9 @@ The default contents correspond to the elements of `python-skeletons'.") (function (intern (concat "python-insert-" name)))) `(progn (add-to-list 'python-skeletons ',(cons name function)) - (if python-use-skeletons - (define-abbrev python-mode-abbrev-table ,name "" ',function nil t)) + (define-abbrev python-mode-abbrev-table ,name "" ',function + :system t :case-fixed t + :enable-function (lambda () python-use-skeletons)) (define-skeleton ,function ,(format "Insert Python \"%s\" template." name) ,@elements))))) @@ -2205,23 +2207,6 @@ without confirmation." (defvar outline-heading-end-regexp) (defvar eldoc-documentation-function) - -;; Stuff to allow expanding abbrevs with non-word constituents. -(defun python-abbrev-pc-hook () - "Set the syntax table before possibly expanding abbrevs." - (remove-hook 'post-command-hook 'python-abbrev-pc-hook t) - (set-syntax-table python-mode-syntax-table)) - -(defvar python-abbrev-syntax-table - (copy-syntax-table python-mode-syntax-table) - "Syntax table used when expanding abbrevs.") - -(defun python-pea-hook () - "Reset the syntax table after possibly expanding abbrevs." - (set-syntax-table python-abbrev-syntax-table) - (add-hook 'post-command-hook 'python-abbrev-pc-hook nil t)) -(modify-syntax-entry ?/ "w" python-abbrev-syntax-table) - (defvar python-mode-running) ;Dynamically scoped var. ;;;###autoload @@ -2309,7 +2294,6 @@ with skeleton expansions for compound statement templates. '((< '(backward-delete-char-untabify (min python-indent (current-column)))) (^ '(- (1+ (current-indentation)))))) - (add-hook 'pre-abbrev-expand-hook 'python-pea-hook nil t) (if (featurep 'hippie-exp) (set (make-local-variable 'hippie-expand-try-functions-list) (cons 'python-try-complete hippie-expand-try-functions-list))) -- 2.39.2