b374k
m1n1 1.01
Apache/2.2.15 (CentOS)
Linux obd60-6c49958d75-2q7cw 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64
uid=48(apache) gid=48(apache) groups=48(apache)
server ip : 172.67.192.52 | your ip : 10.244.126.0
safemode OFF
 >  / usr / share / vim / vim74 / indent /
Filename/usr/share/vim/vim74/indent/mma.vim
Size2.17 kb
Permissionrw-r--r--
Ownerapache
Create time26-May-2024 11:06
Last modified17-Jul-2019 02:20
Last accessed17-Jul-2019 02:20
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
" Vim indent file
" Language: Mathematica
" Author: steve layland <[email protected]>
" 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