summaryrefslogtreecommitdiffstats
path: root/runtime/indent/rnoweb.vim
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--runtime/indent/rnoweb.vim49
1 files changed, 49 insertions, 0 deletions
diff --git a/runtime/indent/rnoweb.vim b/runtime/indent/rnoweb.vim
new file mode 100644
index 0000000..33bc103
--- /dev/null
+++ b/runtime/indent/rnoweb.vim
@@ -0,0 +1,49 @@
+" Vim indent file
+" Language: Rnoweb
+" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Homepage: https://github.com/jalvesaq/R-Vim-runtime
+" Last Change: Feb 25, 2023
+
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+runtime indent/tex.vim
+
+function! s:NoTeXIndent()
+ return indent(line("."))
+endfunction
+
+if &indentexpr == "" || &indentexpr == "GetRnowebIndent()"
+ let s:TeXIndent = function("s:NoTeXIndent")
+else
+ let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
+endif
+
+unlet! b:did_indent
+runtime indent/r.vim
+let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
+let b:did_indent = 1
+
+setlocal indentkeys=0{,0},!^F,o,O,e,},=\bibitem,=\item
+setlocal indentexpr=GetRnowebIndent()
+
+let b:undo_indent = "setl inde< indk<"
+
+if exists("*GetRnowebIndent")
+ finish
+endif
+
+function GetRnowebIndent()
+ let curline = getline(".")
+ if curline =~ '^<<.*>>=$' || curline =~ '^\s*@$'
+ return 0
+ endif
+ if search("^<<", "bncW") > search("^@", "bncW")
+ return s:RIndent()
+ endif
+ return s:TeXIndent()
+endfunction
+
+" vim: sw=2