summaryrefslogtreecommitdiffstats
path: root/indent
diff options
context:
space:
mode:
Diffstat (limited to 'indent')
-rw-r--r--indent/blade.vim62
-rw-r--r--indent/elixir.vim7
-rw-r--r--indent/gohtmltmpl.vim5
-rw-r--r--indent/perl.vim5
-rw-r--r--indent/perl6.vim5
-rw-r--r--indent/tex.vim12
-rw-r--r--indent/typescript.vim10
7 files changed, 95 insertions, 11 deletions
diff --git a/indent/blade.vim b/indent/blade.vim
new file mode 100644
index 00000000..7515a239
--- /dev/null
+++ b/indent/blade.vim
@@ -0,0 +1,62 @@
+" Language: Blade
+" Author: Barry Deeney <sitemaster16@gmail.com>
+" Version: 0.1
+" Description: BLADE indent file based on HTML indentation...
+
+" Check if this file has already been loaded
+if exists("b:did_indent")
+ finish
+endif
+
+" Include HTML
+runtime! indent/html.vim
+runtime! indent/php.vim
+silent! unlet b:did_indent
+
+" What function do we need to use to detect indentation?
+setlocal indentexpr=BladeIndent()
+
+" What keys would trigger indentation?
+setlocal indentkeys=o,O,<Return>,<>>,{,},!^F,0{,0},0),:,!^F,o,O,e,*<Return>,=?>,=<?,=*/
+
+" THE MAIN INDENT FUNCTION. Return the amount of indent for v:lnum.
+func! BladeIndent()
+ " What is the current line?
+ let current_line = v:lnum
+
+ " What is the current text?
+ let current_text = tolower(getline(current_line))
+
+ " What was the last non blank line?
+ let previous_line = prevnonblank(current_line)
+
+ " What was the last non blank text?
+ let previous_text = tolower(getline(previous_line))
+
+ " How large are indents??
+ let indent_size = &sw
+
+ " Check if we have a PHPIndent value...
+ let indent = GetPhpIndent()
+
+ " check if we have indent
+ if indent == -1
+ " Check if we have BLADE
+ if current_text =~ '^\s*@' || previous_text =~ '^\s*@'
+ " We need to add to the indent
+ return indent_size * indent(previous_text)
+ endif
+
+ " Check if we have HTML
+ if current_text =~ '^\s*<' || previous_text =~ '^\s*<'
+ " We now give the honors to HtmlIndent()
+ let indent = HtmlIndent()
+ endif
+ endif
+
+ " Give the indent back!
+ return indent
+endfunc
+
+" Make sure we store that flag!
+let b:did_indent = 1
diff --git a/indent/elixir.vim b/indent/elixir.vim
index 92b98460..636097b7 100644
--- a/indent/elixir.vim
+++ b/indent/elixir.vim
@@ -25,6 +25,7 @@ let s:block_skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" . s:s
let s:block_start = 'do\|fn'
let s:block_middle = 'else\|match\|elsif\|catch\|after\|rescue'
let s:block_end = 'end'
+let s:symbols_end = '\]\|}'
let s:arrow = '^.*->$'
let s:pipeline = '^\s*|>.*$'
@@ -59,7 +60,11 @@ function! GetElixirIndent()
let ind += opened_symbol * &sw
- if current_line =~ '^\s*\(\]\|}\)'
+ if last_line =~ '^\s*\(' . s:symbols_end . '\)'
+ let ind += &sw
+ endif
+
+ if current_line =~ '^\s*\(' . s:symbols_end . '\)'
let ind -= &sw
endif
diff --git a/indent/gohtmltmpl.vim b/indent/gohtmltmpl.vim
new file mode 100644
index 00000000..50399f2b
--- /dev/null
+++ b/indent/gohtmltmpl.vim
@@ -0,0 +1,5 @@
+if exists("b:did_indent")
+ finish
+endif
+
+runtime! indent/html.vim
diff --git a/indent/perl.vim b/indent/perl.vim
index 3ce3e59a..7d21d219 100644
--- a/indent/perl.vim
+++ b/indent/perl.vim
@@ -48,11 +48,6 @@ function! GetPerlIndent()
return 0
endif
- " Don't reindent comments on first column
- if cline =~ '^#.'
- return 0
- endif
-
" Get current syntax item at the line's first char
let csynid = ''
if b:indent_use_syntax
diff --git a/indent/perl6.vim b/indent/perl6.vim
index 161782e8..564ca81b 100644
--- a/indent/perl6.vim
+++ b/indent/perl6.vim
@@ -60,11 +60,6 @@ function! GetPerl6Indent()
return 0
endif
- " Don't reindent coments on first column
- if cline =~ '^#'
- return 0
- endif
-
" Get current syntax item at the line's first char
let csynid = ''
if b:indent_use_syntax
diff --git a/indent/tex.vim b/indent/tex.vim
index e7653d03..3abc44ba 100644
--- a/indent/tex.vim
+++ b/indent/tex.vim
@@ -101,9 +101,21 @@ function! Latexbox_CallIndent()
let window = getpos('.')
call setpos('.', cursor)
+ " Get first non-whitespace character of current line.
+ let line_start_char = matchstr(getline('.'), '\S')
+
+ " Get initial tab position.
+ let initial_tab = stridx(getline('.'), line_start_char)
+
" Execute the command.
execute 'normal! =='
+ " Get tab position difference.
+ let difference = stridx(getline('.'), line_start_char) - initial_tab
+
+ " Set new cursor Y position based on calculated difference.
+ let cursor[2] = cursor[2] + difference
+
" Restore the previous window position.
call setpos('.', window)
normal! zt
diff --git a/indent/typescript.vim b/indent/typescript.vim
index f498298b..78d04c5c 100644
--- a/indent/typescript.vim
+++ b/indent/typescript.vim
@@ -3,6 +3,10 @@
" Maintainer: None! Wanna improve this?
" Last Change: 2015 Mar 07
+if get(g:, 'typescript_indent_disable')
+ finish
+endif
+
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
@@ -54,6 +58,12 @@ function GetTypescriptIndent()
return indent(prev)
endif
+ " If a variable was declared and the semicolon omitted, do not indent
+ " the next line
+ if getline(prev) =~ '^\s*var\s\+\w\+'
+ return indent(prev)
+ endif
+
" Try to find out whether the last `}` ended a `<variable> : {` block
if getline(prev) =~ '};\s*$'
" jump to matching `{` bracket