]> granicus.if.org Git - python/commitdiff
Update for 'with' statement.
authorBrett Cannon <bcannon@gmail.com>
Wed, 1 Mar 2006 20:53:08 +0000 (20:53 +0000)
committerBrett Cannon <bcannon@gmail.com>
Wed, 1 Mar 2006 20:53:08 +0000 (20:53 +0000)
Misc/Vim/python.vim
Misc/Vim/syntax_test.py
Misc/Vim/vim_syntax.py

index 6a1fa9f40df6221f337e9639375c2e49be0f610c..0d5e6d05e25cd0bc4a98396a5ec6b6206d189f7d 100644 (file)
@@ -14,8 +14,9 @@ if exists("python_highlight_all")
   let python_highlight_space_errors = 1
 endif
 
-syn keyword pythonStatement    assert break continue del except exec finally
-syn keyword pythonStatement    global lambda pass print raise return try yield
+syn keyword pythonStatement    as assert break continue del except exec finally
+syn keyword pythonStatement    global lambda pass print raise return try with
+syn keyword pythonStatement    yield
 
 syn keyword pythonStatement    def class nextgroup=pythonFunction skipwhite
 
@@ -82,8 +83,9 @@ if exists("python_highlight_exceptions")
   syn keyword pythonException    UnicodeTranslateError MemoryError StopIteration
   syn keyword pythonException    PendingDeprecationWarning EnvironmentError
   syn keyword pythonException    LookupError OSError DeprecationWarning
-  syn keyword pythonException    UnicodeError FloatingPointError ReferenceError
-  syn keyword pythonException    NameError OverflowWarning IOError SyntaxError
+  syn keyword pythonException    UnicodeError UnicodeEncodeError
+  syn keyword pythonException    FloatingPointError ReferenceError NameError
+  syn keyword pythonException    OverflowWarning IOError SyntaxError
   syn keyword pythonException    FutureWarning SystemExit Exception EOFError
   syn keyword pythonException    StandardError ValueError TabError KeyError
   syn keyword pythonException    ZeroDivisionError SystemError
@@ -92,7 +94,7 @@ if exists("python_highlight_exceptions")
   syn keyword pythonException    RuntimeWarning KeyboardInterrupt UserWarning
   syn keyword pythonException    SyntaxWarning UnboundLocalError ArithmeticError
   syn keyword pythonException    Warning NotImplementedError AttributeError
-  syn keyword pythonException    OverflowError UnicodeEncodeError
+  syn keyword pythonException    OverflowError BaseException
 
 endif
 
index f313392ea96d163a1b5886eb59dd1d0b8b94af93..a530a25364f12f89f73dbaa9f6ab72e9a440af60 100644 (file)
@@ -13,20 +13,28 @@ repository.
 # OPTIONAL: XXX catch your attention
 
 # Statements
+from __future__ import with_statement  # Import
+from sys import path as thing
 assert True # keyword
 def foo():  # function definition
     return []
 class Bar(object):  # Class definition
-    pass
+    def __context__(self):
+        return self
+    def __enter__(self):
+        pass
+    def __exit__(self, *args):
+        pass
 foo()  # UNCOLOURED: function call
 while False:  # 'while'
     continue
 for x in foo():  # 'for'
     break
+with Bar() as stuff:
+    pass
 if False: pass  # 'if'
 elif False: pass
-else False: pass
-from sys import path as thing  # Import
+else: pass
 
 # Constants
 'single-quote', u'unicode' # Strings of all kinds; prefixes not highlighted
index 8ef5bb89d0ddd21689ce166a6750b77e913bf970..3f2a3d8a23acb6f99b8ac70d7ce9356ce7ae1893 100644 (file)
@@ -1,3 +1,5 @@
+from __future__ import with_statement
+
 import keyword
 import exceptions
 import __builtin__
@@ -143,11 +145,9 @@ def fill_stmt(iterable, fill_len):
             except StopIteration:
                 if buffer_:
                     break
-                if not buffer_ and overflow:
-                    yield buffer_
-                    return
-                else:
-                    return
+                if overflow:
+                    yield overflow
+                return
         if total_len > fill_len:
             overflow = buffer_.pop()
             total_len -= len(overflow) - 1
@@ -158,8 +158,7 @@ def fill_stmt(iterable, fill_len):
 FILL = 80
 
 def main(file_path):
-    FILE = open(file_path, 'w')
-    try:
+    with open(file_path, 'w') as FILE:
         # Comment for file
         print>>FILE, comment_header
         print>>FILE, ''
@@ -222,8 +221,6 @@ def main(file_path):
                 print>>FILE, ''
         # Statements at the end of the file
         print>>FILE, statement_footer
-    finally:
-        FILE.close()
 
 if __name__ == '__main__':
     main("python.vim")