]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Fix parsing of unaligned standalone comments
authorŁukasz Langa <lukasz@langa.pl>
Thu, 12 Apr 2018 06:07:56 +0000 (23:07 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Thu, 12 Apr 2018 06:22:22 +0000 (23:22 -0700)
Fixes #99
Fixes #112

README.md
blib2to3/pgen2/driver.py
blib2to3/pgen2/tokenize.py
tests/comments2.py

index 06b732466eb3b305307992f35a23df99cc476956..d41da0cf49bcd8bed68b788bb8bf352fd7e75671 100644 (file)
--- a/README.md
+++ b/README.md
@@ -491,6 +491,10 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md).
 
 ## Change Log
 
 
 ## Change Log
 
+### 18.4a2 (unreleased)
+
+* fixed parsing of unaligned standalone comments (#99, #112)
+
 ### 18.4a1
 
 * added `--quiet` (#78)
 ### 18.4a1
 
 * added `--quiet` (#78)
index cc7b415f47fcd30e711d23fbfc80fc89d2b2af5b..5cdd2e59e6156cecd8ffa3cebc822b4be20ef7ae 100644 (file)
@@ -77,6 +77,12 @@ class Driver(object):
                     self.logger.debug("Stop.")
                 break
             prefix = ""
                     self.logger.debug("Stop.")
                 break
             prefix = ""
+            if type == token.INDENT:
+                if _prefix.startswith(value):
+                    # Don't double-indent.  Since we're delaying the prefix that
+                    # would normally belong to INDENT, we need to put the value
+                    # at the end versus at the beginning.
+                    _prefix = _prefix[len(value):] + value
             if type in {token.INDENT, token.DEDENT}:
                 prefix = _prefix
             lineno, column = end
             if type in {token.INDENT, token.DEDENT}:
                 prefix = _prefix
             lineno, column = end
index 4f031306378ab20d13aec985e3c8715f59c8606a..bd9945498bd49adb40514134646de3d0a60c41b4 100644 (file)
@@ -412,10 +412,6 @@ def generate_tokens(readline):
                 yield (NL, line[pos:], (lnum, pos), (lnum, len(line)), line)
                 continue
 
                 yield (NL, line[pos:], (lnum, pos), (lnum, len(line)), line)
                 continue
 
-            if column > indents[-1]:           # count indents
-                indents.append(column)
-                yield (INDENT, line[:pos], (lnum, 0), (lnum, pos), line)
-
             if line[pos] == '#':               # skip comments
                 comment_token = line[pos:].rstrip('\r\n')
                 nl_pos = pos + len(comment_token)
             if line[pos] == '#':               # skip comments
                 comment_token = line[pos:].rstrip('\r\n')
                 nl_pos = pos + len(comment_token)
@@ -425,6 +421,10 @@ def generate_tokens(readline):
                         (lnum, nl_pos), (lnum, len(line)), line)
                 continue
 
                         (lnum, nl_pos), (lnum, len(line)), line)
                 continue
 
+            if column > indents[-1]:           # count indents
+                indents.append(column)
+                yield (INDENT, line[:pos], (lnum, 0), (lnum, pos), line)
+
             while column < indents[-1]:        # count dedents
                 if column not in indents:
                     raise IndentationError(
             while column < indents[-1]:        # count dedents
                 if column not in indents:
                     raise IndentationError(
index 49ef2dce09a696c8e83c72c2b7ab54e5f352af5c..848ddb1ae8541a9dcf25b429e6481fe5da204cf4 100644 (file)
@@ -23,6 +23,14 @@ __all__ = [
     'Generator',
 ]
 
     'Generator',
 ]
 
+if 'PYTHON' in os.environ:
+    add_compiler(compiler_from_env())
+else:
+    # for compiler in compilers.values():
+         # add_compiler(compiler)
+    add_compiler(compilers[(7.0, 32)])
+    # add_compiler(compilers[(7.1, 64)])
+
 # Comment before function.
 def inline_comments_in_brackets_ruin_everything():
     if typedargslist:
 # Comment before function.
 def inline_comments_in_brackets_ruin_everything():
     if typedargslist:
@@ -97,7 +105,7 @@ short
             # and round and round we go
         # and round and round we go
 
             # and round and round we go
         # and round and round we go
 
-    # let's return
+   # let's return
     return Node(
         syms.simple_stmt,
         [
     return Node(
         syms.simple_stmt,
         [
@@ -144,6 +152,14 @@ __all__ = [
     "Generator",
 ]
 
     "Generator",
 ]
 
+if "PYTHON" in os.environ:
+    add_compiler(compiler_from_env())
+else:
+    # for compiler in compilers.values():
+    # add_compiler(compiler)
+    add_compiler(compilers[(7.0, 32)])
+# add_compiler(compilers[(7.1, 64)])
+
 # Comment before function.
 
 
 # Comment before function.