summaryrefslogtreecommitdiffstats
path: root/indent/dylan.vim
diff options
context:
space:
mode:
Diffstat (limited to 'indent/dylan.vim')
-rw-r--r--indent/dylan.vim94
1 files changed, 0 insertions, 94 deletions
diff --git a/indent/dylan.vim b/indent/dylan.vim
deleted file mode 100644
index 4858ea84..00000000
--- a/indent/dylan.vim
+++ /dev/null
@@ -1,94 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
-
-" Vim indent file
-" Language: Dylan
-" Version: 0.01
-" Last Change: 2017 Jun 13
-" Maintainer: Brent A. Fulgham <bfulgham@debian.org>
-
-" Only load this indent file when no other was loaded.
-if exists("b:did_indent")
- finish
-endif
-let b:did_indent = 1
-
-setlocal indentkeys+==~begin,=~block,=~case,=~cleanup,=~define,=~end,=~else,=~elseif,=~exception,=~for,=~finally,=~if,=~otherwise,=~select,=~unless,=~while
-
-" Define the appropriate indent function but only once
-setlocal indentexpr=DylanGetIndent()
-if exists("*DylanGetIndent")
- finish
-endif
-
-function DylanGetIndent()
- " Get the line to be indented
- let cline = getline(v:lnum)
-
- " Don't reindent comments on first column
- if cline =~ '^/\[/\*]'
- return 0
- endif
-
- "Find the previous non-blank line
- let lnum = prevnonblank(v:lnum - 1)
- "Use zero indent at the top of the file
- if lnum == 0
- return 0
- endif
-
- let prevline=getline(lnum)
- let ind = indent(lnum)
- let chg = 0
-
- " If previous line was a comment, use its indent
- if prevline =~ '^\s*//'
- return ind
- endif
-
- " If previous line was a 'define', indent
- if prevline =~? '\(^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)\|\s*\S*\s*=>$\)'
- let chg = shiftwidth()
- " local methods indent the shift-width, plus 6 for the 'local'
- elseif prevline =~? '^\s*local'
- let chg = shiftwidth() + 6
- " If previous line was a let with no closing semicolon, indent
- elseif prevline =~? '^\s*let.*[^;]\s*$'
- let chg = shiftwidth()
- " If previous line opened a parenthesis, and did not close it, indent
- elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
- return = match( prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
- "elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
- elseif prevline =~ '^[^(]*)\s*$'
- " This line closes a parenthesis. Find opening
- let curr_line = prevnonblank(lnum - 1)
- while curr_line >= 0
- let str = getline(curr_line)
- if str !~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
- let curr_line = prevnonblank(curr_line - 1)
- else
- break
- endif
- endwhile
- if curr_line < 0
- return -1
- endif
- let ind = indent(curr_line)
- " Although we found the closing parenthesis, make sure this
- " line doesn't start with an indentable command:
- let curr_str = getline(curr_line)
- if curr_str =~? '^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)'
- let chg = shiftwidth()
- endif
- endif
-
- " If a line starts with end, un-indent (even if we just indented!)
- if cline =~? '^\s*\(cleanup\|end\|else\|elseif\|exception\|finally\|otherwise\)'
- let chg = chg - shiftwidth()
- endif
-
- return ind + chg
-endfunction
-
-" vim:sw=2 tw=130
-
-endif