diff runtime/indent/rst.vim @ 19968:1908e92b02fd

Update runtime files Commit: https://github.com/vim/vim/commit/d1caa941d876181aae0ebebc6ea954045bf0da24 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Apr 10 22:10:56 2020 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Fri, 10 Apr 2020 22:15:05 +0200
parents 1218c5353e2b
children 5c220cf30f1f
line wrap: on
line diff
--- a/runtime/indent/rst.vim
+++ b/runtime/indent/rst.vim
@@ -1,7 +1,9 @@
 " Vim indent file
-" Language:             reStructuredText Documentation Format
-" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
-" Latest Revision:      2011-08-03
+" Vim reST indent file
+" Language: reStructuredText Documentation Format
+" Maintainer: Marshall Ward <marshall.ward@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2020-03-31
 
 if exists("b:did_indent")
   finish
@@ -18,6 +20,12 @@ endif
 
 let s:itemization_pattern = '^\s*[-*+]\s'
 let s:enumeration_pattern = '^\s*\%(\d\+\|#\)\.\s\+'
+let s:note_pattern = '^\.\. '
+
+function! s:get_paragraph_start()
+    let paragraph_mark_start = getpos("'{")[1]
+    return getline(paragraph_mark_start) =~ '\S' ? paragraph_mark_start : paragraph_mark_start + 1
+endfunction
 
 function GetRSTIndent()
   let lnum = prevnonblank(v:lnum - 1)
@@ -28,6 +36,13 @@ function GetRSTIndent()
   let ind = indent(lnum)
   let line = getline(lnum)
 
+  let psnum = s:get_paragraph_start()
+  if psnum != 0
+      if getline(psnum) =~ s:note_pattern
+          let ind = 3
+      endif
+  endif
+
   if line =~ s:itemization_pattern
     let ind += 2
   elseif line =~ s:enumeration_pattern