X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=CarFire%2Fleveleditor%2Fplugin%2Fleveleditor.vim;fp=CarFire%2Fleveleditor%2Fplugin%2Fleveleditor.vim;h=76a5a0e6d5cef45dde8d838a8ebb24aeb567dd37;hb=69f08731dd382cfe7af1ee3e596b3a2e77ad6499;hp=0000000000000000000000000000000000000000;hpb=a9350e6b668ad663642a5c8adcc48e869e8e6b3c;p=chaz%2Fcarfire diff --git a/CarFire/leveleditor/plugin/leveleditor.vim b/CarFire/leveleditor/plugin/leveleditor.vim new file mode 100644 index 0000000..76a5a0e --- /dev/null +++ b/CarFire/leveleditor/plugin/leveleditor.vim @@ -0,0 +1,88 @@ +" Car Fire Level Editor for Vim +" Last Change: 2010 Apr 09 +" Maintainer: Charles McGarvey +" License: This file is placed in the public domain. + + +"if exists("loaded_leveleditor") + "finish +"endif +"let loaded_leveleditor = 1 + +let s:save_cursorcolumn = &cursorcolumn +let s:save_expandtab = &expandtab +let s:save_statusline = &statusline + + +set statusline=%!LevelEditor_Evaluate() +function! LevelEditor_Evaluate() + + let l:linenum = search('\m^\s*dimensions\s*=\s*\[\d\+,\d\+\]', 'bnw') + if l:linenum != 0 + let l:line = getline(l:linenum) + let l:dimensions = matchlist(line, '\m\[\(.*\),\(.*\)\]') + let l:dw = get(l:dimensions, 1) + let l:dh = get(l:dimensions, 2) + let l:linenum = search('\m^\[maptable\]', 'bnW') + let l:current = line(".") + if l:linenum != 0 && l:current > l:linenum && l:current < l:linenum + l:dh + 1 + let l:cx = col(".") - 1 + let l:cy = line(".") - l:linenum - 1 + setlocal cursorcolumn + setlocal expandtab + return s:save_statusline." Map: [".l:cx.",".l:cy."]" + else + return s:LevelEditor_Reset() + endif + else + return s:LevelEditor_Reset() + endif + +endfunction + +function! s:LevelEditor_Reset() + if s:save_cursorcolumn == 0 + setlocal nocursorcolumn + endif + if s:save_expandtab == 0 + setlocal noexpandtab + endif + return s:save_statusline +endfunction + + +if !hasmapto('LeInitLevel') + map ei LeInitLevel +endif +noremap