updated for version 7.0001
This commit is contained in:
57
runtime/indent/make.vim
Normal file
57
runtime/indent/make.vim
Normal file
@ -0,0 +1,57 @@
|
||||
" Vim indent file
|
||||
" Language: Makefile
|
||||
" Maintainer: Nikolai Weibull <source@pcppopper.org>
|
||||
" URL: http://www.pcppopper.org/vim/indent/pcp/make/
|
||||
" Latest Revision: 2004-04-25
|
||||
" arch-tag: b539e147-a05c-4860-98af-1d2436db2f4b
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetMakeIndent()
|
||||
setlocal indentkeys=!^F,o,O
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetMakeIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
function s:GetStringWidth(line, str)
|
||||
let end = matchend(a:line, a:str)
|
||||
let width = 0
|
||||
let i = 0
|
||||
while i < end
|
||||
if a:line[i] != "\t"
|
||||
let width = width + 1
|
||||
else
|
||||
let width = width + &ts - (width % &ts)
|
||||
endif
|
||||
let i = i + 1
|
||||
endwhile
|
||||
return width
|
||||
endfunction
|
||||
|
||||
function GetMakeIndent()
|
||||
if v:lnum == 1
|
||||
return 0
|
||||
endif
|
||||
|
||||
let ind = indent(v:lnum - 1)
|
||||
let line = getline(v:lnum - 1)
|
||||
|
||||
if line == ''
|
||||
let ind = 0
|
||||
elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\([^=:]\|$\)'
|
||||
let ind = ind + &ts
|
||||
elseif line =~ '^\s*\h\w*\s*=\s*.\+\\$'
|
||||
let ind = s:GetStringWidth(line, '=\s*')
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
" vim: set sts=2 sw=2:
|
||||
Reference in New Issue
Block a user