(mapcar (lambda (hook) (add-hook hook 'mdw-misc-mode-config))
'(c-mode-hook c++-mode-hook objc-mode-hook java-mode-hook
csharp-mode-hook perl-mode-hook cperl-mode-hook
- python-mode-hook icon-mode-hook awk-mode-hook tcl-mode-hook
+ python-mode-hook pyrec-mode-hook icon-mode-hook awk-mode-hook
+ tcl-mode-hook
asm-mode-hook TeX-mode-hook LaTeX-mode-hook
TeXinfo-mode-hook tex-mode-hook latex-mode-hook
texinfo-mode-hook emacs-lisp-mode-hook scheme-mode-hook
(setq-default py-indent-offset 2)
(add-hook 'python-mode-hook 'mdw-fontify-python t)
+(add-hook 'pyrex-mode-hook 'mdw-fontify-pyrex t)
(setq py-python-command-args `("-i" "-colors" ,(if mdw-black-background
"Linux"
"LightBG")))
;;;----- Python programming style -------------------------------------------
-;; --- Define Python fontification style ---
-
-(defun mdw-fontify-python ()
+(defun mdw-fontify-pythonic (keywords)
;; --- Miscellaneous fiddling ---
;; --- Now define fontification things ---
(make-local-variable 'font-lock-keywords)
- (let ((python-keywords
- (mdw-regexps "and" "as" "assert" "break" "class" "continue" "def"
- "del" "elif" "else" "except" "exec" "finally" "for"
- "from" "global" "if" "import" "in" "is" "lambda"
- "not" "or" "pass" "print" "raise" "return" "try"
- "while" "with" "yield")))
- (setq font-lock-keywords
- (list
+ (setq font-lock-keywords
+ (list
- ;; --- Set up the keywords defined above ---
+ ;; --- Set up the keywords defined above ---
- (list (concat "\\<\\(" python-keywords "\\)\\>")
- '(0 font-lock-keyword-face))
+ (list (concat "\\<\\(" keywords "\\)\\>")
+ '(0 font-lock-keyword-face))
- ;; --- At least numbers are simpler than C ---
+ ;; --- At least numbers are simpler than C ---
- (list (concat "\\<0\\([xX][0-9a-fA-F_]+\\|[0-7_]+\\)\\|"
- "\\<[0-9][0-9_]*\\(\\.[0-9_]*\\|\\)"
- "\\([eE]\\([-+]\\|\\)[0-9_]+\\|[lL]\\|\\)")
- '(0 mdw-number-face))
+ (list (concat "\\<0\\([xX][0-9a-fA-F_]+\\|[0-7_]+\\)\\|"
+ "\\<[0-9][0-9_]*\\(\\.[0-9_]*\\|\\)"
+ "\\([eE]\\([-+]\\|\\)[0-9_]+\\|[lL]\\|\\)")
+ '(0 mdw-number-face))
- ;; --- And anything else is punctuation ---
+ ;; --- And anything else is punctuation ---
- (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
+ '(0 mdw-punct-face)))))
+
+;; --- Define Python fontification style ---
+
+(defun mdw-fontify-python ()
+ (mdw-fontify-pythonic
+ (mdw-regexps "and" "as" "assert" "break" "class" "continue" "def"
+ "del" "elif" "else" "except" "exec" "finally" "for"
+ "from" "global" "if" "import" "in" "is" "lambda"
+ "not" "or" "pass" "print" "raise" "return" "try"
+ "while" "with" "yield")))
+
+(defun mdw-fontify-pyrex ()
+ (mdw-fontify-pythonic
+ (mdw-regexps "and" "as" "assert" "break" "cdef" "class" "continue"
+ "ctypedef" "def" "del" "elif" "else" "except" "exec"
+ "extern" "finally" "for" "from" "global" "if"
+ "import" "in" "is" "lambda" "not" "or" "pass" "print"
+ "raise" "return" "struct" "try" "while" "with"
+ "yield")))
;;;----- Icon programming style ---------------------------------------------