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

No autoindent in code block
authorHiroshi Shirosaki <h.shirosaki@gmail.com>
Tue, 22 Dec 2015 09:44:31 +0000 (18:44 +0900)
committerHiroshi Shirosaki <h.shirosaki@gmail.com>
Tue, 22 Dec 2015 09:50:29 +0000 (18:50 +0900)
Fix #78

indent/markdown.vim
test/indent.vader

index 23944f242b5029c94a22a9fd8100574387e98ec1..3f89b5cd5a617540eec9218e19b5330e54d5e9d6 100755 (executable)
@@ -18,6 +18,10 @@ setlocal comments+=b:>
 " Only define the function once
 if exists("*GetMarkdownIndent") | finish | endif
 
 " Only define the function once
 if exists("*GetMarkdownIndent") | finish | endif
 
+function! s:is_mkdCode(lnum)
+    return synIDattr(synID(a:lnum, 1, 0), 'name') == 'mkdCode'
+endfunction
+
 function! s:is_li_start(line)
     return a:line !~ '^ *\([*-]\)\%( *\1\)\{2}\%( \|\1\)*$' &&
       \    a:line =~ '^\s*[*+-] \+'
 function! s:is_li_start(line)
     return a:line !~ '^ *\([*-]\)\%( *\1\)\{2}\%( \|\1\)*$' &&
       \    a:line =~ '^\s*[*+-] \+'
@@ -48,8 +52,12 @@ function GetMarkdownIndent()
         " Current line is the first line of a list item, do not change indent
         return indent(v:lnum)
     elseif s:is_li_start(line)
         " Current line is the first line of a list item, do not change indent
         return indent(v:lnum)
     elseif s:is_li_start(line)
-        " Last line is the first line of a list item, increase indent
-        return ind + list_ind
+        if s:is_mkdCode(lnum)
+            return ind
+        else
+            " Last line is the first line of a list item, increase indent
+            return ind + list_ind
+        end
     else
         return ind
     endif
     else
         return ind
     endif
index 76f49909ac76d817891243cf538f33683b9e81b6..3cc50101df9c1c104e482a44abe5fc07a56f2ad1 100644 (file)
@@ -1,7 +1,7 @@
 Given markdown;
 * item1
 
 Given markdown;
 * item1
 
-Do (Insert enter at list end):
+Do (insert enter at list end):
   A\<Enter>item2
 
 Expect (auto insert * and indent level is same):
   A\<Enter>item2
 
 Expect (auto insert * and indent level is same):
@@ -13,7 +13,7 @@ Given markdown;
 Execute:
   syntax off
 
 Execute:
   syntax off
 
-Do (Insert enter at list end with syntax off):
+Do (insert enter at list end with syntax off):
   i* item1\<Enter>item2
 
 Expect (auto insert * and indent level is same):
   i* item1\<Enter>item2
 
 Expect (auto insert * and indent level is same):
@@ -22,3 +22,15 @@ Expect (auto insert * and indent level is same):
 
 Execute:
   syntax on
 
 Execute:
   syntax on
+
+Given markdown;
+```
+* item1
+
+Do (insert after list items in code block):
+  jotext
+
+Expect (no autoindent in code block):
+  ```
+  * item1
+  text