mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
(python-font-lock-keywords): Pick up block introducing keywords with
immediately following colons. Sjoerd noticed this one too. Here's a nonsense.py file that flexes all the font-lock keyword combinations. class A: class B(A): pass def __init__(self): if i == 2 and j == 3 or k == 4: import stuff from otherstuff import cool for i in range(cool.count): if i == j: break elif j == 1: continue print i else: return not i elif q is not i: return lambda x: x + 1 else: try: try: raise stuff.error except stuff.error, v: print v except: global q finally: while q > 0: q = q - 1 assert q == 0 def make(): a = A() exec "nonsense" del a
This commit is contained in:
parent
ef3c891773
commit
b8f1166922
1 changed files with 18 additions and 11 deletions
|
@ -246,19 +246,26 @@ There are many flavors of Emacs out there, each with different
|
|||
features supporting those needed by CC Mode.")
|
||||
|
||||
(defvar python-font-lock-keywords
|
||||
(let* ((keywords '("and" "assert" "break" "class"
|
||||
"continue" "def" "del" "elif"
|
||||
"else:" "except" "except:" "exec"
|
||||
"finally:" "for" "from" "global"
|
||||
"if" "import" "in" "is"
|
||||
"lambda" "not" "or" "pass"
|
||||
"print" "raise" "return" "try:"
|
||||
"while"
|
||||
))
|
||||
(kwregex (mapconcat 'identity keywords "\\|")))
|
||||
(let ((kw1 (mapconcat 'identity
|
||||
'("and" "assert" "break" "class"
|
||||
"continue" "def" "del" "elif"
|
||||
"else" "except" "exec" "for"
|
||||
"from" "global" "if" "import"
|
||||
"in" "is" "lambda" "not"
|
||||
"or" "pass" "print" "raise"
|
||||
"return" "while"
|
||||
)
|
||||
"\\|"))
|
||||
(kw2 (mapconcat 'identity
|
||||
'("else:" "except:" "finally:" "try:")
|
||||
"\\|"))
|
||||
)
|
||||
(list
|
||||
;; keywords
|
||||
(cons (concat "\\b\\(" kwregex "\\)\\b[ \n\t(]") 1)
|
||||
(cons (concat "\\b\\(" kw1 "\\)\\b[ \n\t(]") 1)
|
||||
;; block introducing keywords with immediately following colons.
|
||||
;; Yes "except" is in both lists.
|
||||
(cons (concat "\\b\\(" kw2 "\\)[ \n\t(]") 1)
|
||||
;; classes
|
||||
'("\\bclass[ \t]+\\([a-zA-Z_]+[a-zA-Z0-9_]*\\)"
|
||||
1 font-lock-type-face)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue