]> 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:

Handle byte strings in s:skip_special_chars (#113)
authorDaniel Hahler <github@thequod.de>
Thu, 26 Jul 2018 09:04:30 +0000 (11:04 +0200)
committerGitHub <noreply@github.com>
Thu, 26 Jul 2018 09:04:30 +0000 (11:04 +0200)
Fixes https://github.com/Vimjas/vim-python-pep8-indent/issues/72.
Closes https://github.com/Vimjas/vim-python-pep8-indent/pull/71.
Closes https://github.com/Vimjas/vim-python-pep8-indent/pull/68.

indent/python.vim
spec/indent/bytes_spec.rb [new file with mode: 0644]

index c56c2dc1f4e73aa14ec88295427677139aa8ecc1..8fb5a9b03d8bb0267220bf5b2f7f5592ffa63d42 100644 (file)
@@ -61,7 +61,7 @@ let s:stop_statement = '^\s*\(break\|continue\|raise\|return\|pass\)\>'
 " jedi* refers to syntax definitions from jedi-vim for call signatures, which
 " are inserted temporarily into the buffer.
 let s:skip_special_chars = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
 " jedi* refers to syntax definitions from jedi-vim for call signatures, which
 " are inserted temporarily into the buffer.
 let s:skip_special_chars = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
-            \ '=~? "\\vstring|comment|jedi\\S"'
+            \ '=~? "\\vstring|comment|pythonbytes|jedi\\S"'
 
 let s:skip_after_opening_paren = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
             \ '=~? "\\vcomment|jedi\\S"'
 
 let s:skip_after_opening_paren = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
             \ '=~? "\\vcomment|jedi\\S"'
diff --git a/spec/indent/bytes_spec.rb b/spec/indent/bytes_spec.rb
new file mode 100644 (file)
index 0000000..260a2ab
--- /dev/null
@@ -0,0 +1,26 @@
+require "spec_helper"
+
+describe "handles byte strings" do
+  before(:all) {
+      vim.command 'syn region pythonBytes start=+[bB]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell'
+  }
+
+  before(:each) {
+    # clear buffer
+    vim.normal 'gg"_dG'
+
+    # Insert two blank lines.
+    # The first line is a corner case in this plugin that would shadow the
+    # correct behaviour of other tests. Thus we explicitly jump to the first
+    # line when we require so.
+    vim.feedkeys 'i\<CR>\<CR>\<ESC>'
+  }
+
+  it "it does not indent to bracket in byte string" do
+    vim.feedkeys 'ireg = b"["\<Esc>'
+    vim.echo('map(synstack(line("."), col(".")), "synIDattr(v:val, \"name\")")'
+            ).should == "['pythonBytes']"
+    vim.feedkeys 'o'
+    indent.should == 0
+  end
+end