forked from b4winckler/macvim
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
vimboss
committed
May 18, 2005
1 parent
3267f42
commit 8ce9c3b
Showing
18 changed files
with
1,289 additions
and
683 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
" Vim indent file | ||
" Language: Mathematica | ||
" Author: steve layland <layland@wolfram.com> | ||
" Last Change: Sat May 10 18:56:22 CDT 2005 | ||
" Source: http://vim.sourceforge.net/scripts/script.php?script_id=1274 | ||
" http://members.wolfram.com/layland/vim/indent/mma.vim | ||
" | ||
" NOTE: | ||
" Empty .m files will automatically be presumed to be Matlab files | ||
" unless you have the following in your .vimrc: | ||
" | ||
" let filetype_m="mma" | ||
" | ||
" Credits: | ||
" o steve hacked this out of a random indent file in the Vim 6.1 | ||
" distribution that he no longer remembers...sh.vim? Thanks! | ||
|
||
" Only load this indent file when no other was loaded. | ||
if exists("b:did_indent") | ||
finish | ||
endif | ||
let b:did_indent = 1 | ||
|
||
setlocal indentexpr=GetMmaIndent() | ||
setlocal indentkeys+=0[,0],0(,0) | ||
setlocal nosi "turn off smart indent so we don't over analyze } blocks | ||
|
||
if exists("*GetMmaIndent") | ||
finish | ||
endif | ||
|
||
function GetMmaIndent() | ||
|
||
" Hit the start of the file, use zero indent. | ||
if v:lnum == 0 | ||
return 0 | ||
endif | ||
|
||
" Find a non-blank line above the current line. | ||
let lnum = prevnonblank(v:lnum - 1) | ||
|
||
" use indenting as a base | ||
let ind = indent(v:lnum) | ||
let lnum = v:lnum | ||
|
||
" if previous line has an unmatched bracket, or ( indent. | ||
" doesn't do multiple parens/blocks/etc... | ||
|
||
" also, indent only if this line if this line isn't starting a new | ||
" block... TODO - fix this with indentkeys? | ||
if getline(v:lnum-1) =~ '\\\@<!\%(\[[^\]]*\|([^)]*\|{[^}]*\)$' && getline(v:lnum) !~ '\s\+[\[({]' | ||
let ind = ind+&sw | ||
endif | ||
|
||
" if this line had unmatched closing block, | ||
" indent to the matching opening block | ||
if getline(v:lnum) =~ '[^[]*]\s*$' | ||
" move to the closing bracket | ||
call search(']','bW') | ||
" and find it's partner's indent | ||
let ind = indent(searchpair('\[','',']','bWn')) | ||
" same for ( blocks | ||
elseif getline(v:lnum) =~ '[^(]*)$' | ||
call search(')','bW') | ||
let ind = indent(searchpair('(','',')','bWn')) | ||
|
||
" and finally, close { blocks if si ain't already set | ||
elseif getline(v:lnum) =~ '[^{]*}' | ||
call search('}','bW') | ||
let ind = indent(searchpair('{','','}','bWn')) | ||
endif | ||
|
||
return ind | ||
endfunction | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.