mirror of
https://github.com/Yggdroot/indentLine.git
synced 2025-12-08 13:04:45 +08:00
add filetype support
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
" Script Name: indentLine.vim
|
" Script Name: indentLine.vim
|
||||||
" Version: 1.0.4
|
" Version: 1.0.5
|
||||||
" Last Change: Jan 23, 2013
|
" Last Change: March 5, 2013
|
||||||
" Author: Yggdroot <archofortune@gmail.com>
|
" Author: Yggdroot <archofortune@gmail.com>
|
||||||
"
|
"
|
||||||
" Description: To show the indent lines
|
" Description: To show the indent lines
|
||||||
@@ -11,8 +11,8 @@ if !has("conceal") || exists("g:indentLine_loaded")
|
|||||||
endif
|
endif
|
||||||
let g:indentLine_loaded = 1
|
let g:indentLine_loaded = 1
|
||||||
|
|
||||||
|
" | ¦ ┆ │
|
||||||
if !exists("g:indentLine_char")
|
if !exists("g:indentLine_char")
|
||||||
" | ¦ ┆ │
|
|
||||||
if &encoding ==? "utf-8"
|
if &encoding ==? "utf-8"
|
||||||
let g:indentLine_char = "¦"
|
let g:indentLine_char = "¦"
|
||||||
else
|
else
|
||||||
@@ -28,6 +28,14 @@ if !exists("g:indentLine_enabled")
|
|||||||
let g:indentLine_enabled = 1
|
let g:indentLine_enabled = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !exists("g:indentLine_fileType")
|
||||||
|
let g:indentLine_fileType = "*"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("g:indentLine_fileTypeExclude")
|
||||||
|
let g:indentLine_fileTypeExclude = ""
|
||||||
|
endif
|
||||||
|
|
||||||
set conceallevel=1
|
set conceallevel=1
|
||||||
set concealcursor=inc
|
set concealcursor=inc
|
||||||
|
|
||||||
@@ -59,13 +67,7 @@ endfunction
|
|||||||
|
|
||||||
"{{{1 function! <SID>SetIndentLine()
|
"{{{1 function! <SID>SetIndentLine()
|
||||||
function! <SID>SetIndentLine()
|
function! <SID>SetIndentLine()
|
||||||
if !exists("b:indentLine_enabled")
|
let b:indentLine_enabled = 1
|
||||||
let b:indentLine_enabled = g:indentLine_enabled
|
|
||||||
if !b:indentLine_enabled
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
let space = &l:shiftwidth
|
let space = &l:shiftwidth
|
||||||
for i in range(space+1, space * g:indentLine_indentLevel + 1, space)
|
for i in range(space+1, space * g:indentLine_indentLevel + 1, space)
|
||||||
exec 'syn match IndentLine /\(^\s\+\)\@<=\%'.i.'v / containedin=ALL conceal cchar=' . g:indentLine_char
|
exec 'syn match IndentLine /\(^\s\+\)\@<=\%'.i.'v / containedin=ALL conceal cchar=' . g:indentLine_char
|
||||||
@@ -77,17 +79,23 @@ function! <SID>ResetWidth(...)
|
|||||||
if a:0 > 0
|
if a:0 > 0
|
||||||
let &l:shiftwidth = a:1
|
let &l:shiftwidth = a:1
|
||||||
endif
|
endif
|
||||||
syn clear IndentLine
|
|
||||||
|
if exists("b:indentLine_enabled")
|
||||||
|
syn clear IndentLine
|
||||||
|
endif
|
||||||
call <SID>SetIndentLine()
|
call <SID>SetIndentLine()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"{{{1 function! <SID>IndentLinesToggle()
|
"{{{1 function! <SID>IndentLinesToggle()
|
||||||
function! <SID>IndentLinesToggle()
|
function! <SID>IndentLinesToggle()
|
||||||
|
if !exists("b:indentLine_enabled")
|
||||||
|
let b:indentLine_enabled = 0
|
||||||
|
endif
|
||||||
|
|
||||||
if b:indentLine_enabled
|
if b:indentLine_enabled
|
||||||
let b:indentLine_enabled = 0
|
let b:indentLine_enabled = 0
|
||||||
syn clear IndentLine
|
syn clear IndentLine
|
||||||
else
|
else
|
||||||
let b:indentLine_enabled = 1
|
|
||||||
call <SID>SetIndentLine()
|
call <SID>SetIndentLine()
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
@@ -96,13 +104,28 @@ endfunction
|
|||||||
function! <SID>Setup()
|
function! <SID>Setup()
|
||||||
if !exists("b:indentLine_set")
|
if !exists("b:indentLine_set")
|
||||||
let b:indentLine_set = 1
|
let b:indentLine_set = 1
|
||||||
call <SID>SetIndentLine()
|
|
||||||
|
if !empty(filter(split(g:indentLine_fileTypeExclude, ','), 'v:val ==? "*.".expand("%:e:e") || v:val == "*"'))
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("b:indentLine_enabled")
|
||||||
|
let b:indentLine_enabled = g:indentLine_enabled
|
||||||
|
endif
|
||||||
|
|
||||||
|
if b:indentLine_enabled
|
||||||
|
call <SID>SetIndentLine()
|
||||||
|
endif
|
||||||
|
|
||||||
|
if &ft == ""
|
||||||
|
call <SID>InitColor()
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"{{{1 commands
|
"{{{1 commands
|
||||||
autocmd BufWinEnter * call <SID>Setup()
|
exec 'autocmd BufWinEnter '.g:indentLine_fileType.' call <SID>Setup()'
|
||||||
autocmd BufRead,ColorScheme * call <SID>InitColor()
|
exec 'autocmd BufRead,ColorScheme '.g:indentLine_fileType.' call <SID>InitColor()'
|
||||||
|
|
||||||
command! -nargs=? IndentLinesReset call <SID>ResetWidth(<f-args>)
|
command! -nargs=? IndentLinesReset call <SID>ResetWidth(<f-args>)
|
||||||
command! IndentLinesToggle call <SID>IndentLinesToggle()
|
command! IndentLinesToggle call <SID>IndentLinesToggle()
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ g:indentLine_loaded *g:loaded_indentLine*
|
|||||||
g:indentLine_char *g:indentLine_char*
|
g:indentLine_char *g:indentLine_char*
|
||||||
Specify a character to be used as indent line.
|
Specify a character to be used as indent line.
|
||||||
You also can use other characters:
|
You also can use other characters:
|
||||||
| ¦ <EFBFBD><EFBFBD>?<3F><>?
|
| ¦ ┆ │
|
||||||
Default value is "|".
|
Default value is "|".
|
||||||
|
|
||||||
g:indentLine_color_term *g:indentLine_color_term*
|
g:indentLine_color_term *g:indentLine_color_term*
|
||||||
@@ -42,13 +42,27 @@ g:indentLine_color_gui *g:indentLine_color_gui*
|
|||||||
g:indentLine_indentLevel *g:indentLine_indentLevel*
|
g:indentLine_indentLevel *g:indentLine_indentLevel*
|
||||||
Specify how much indent level do you want to use for
|
Specify how much indent level do you want to use for
|
||||||
indentLine. Most program will not has bigger indent level than
|
indentLine. Most program will not has bigger indent level than
|
||||||
20.
|
10.
|
||||||
Default value is 20.
|
Default value is 10.
|
||||||
g:indentLine_enabled
|
|
||||||
|
g:indentLine_enabled *g:indentLine_enabled*
|
||||||
Specify whether to enable indentLine plugin by default.
|
Specify whether to enable indentLine plugin by default.
|
||||||
If value is not 0, the plugin is on by default, otherwise off.
|
If value is not 0, the plugin is on by default, otherwise off.
|
||||||
Default value is 1.
|
Default value is 1.
|
||||||
|
|
||||||
|
g:indentLine_fileType *g:indentLine_fileType*
|
||||||
|
This variable specify a list of comma separated file types.
|
||||||
|
When opening these types of files, the plugin is enabled by
|
||||||
|
default.
|
||||||
|
e.g. let g:indentLine_fileType = '*.c,*.h'
|
||||||
|
Default value is "*" which means all file types is supported.
|
||||||
|
|
||||||
|
g:indentLine_fileTypeExclude *g:indentLine_fileTypeExclude*
|
||||||
|
This variable specify a list of comma separated file types.
|
||||||
|
When opening these types of files, the plugin is disabled by
|
||||||
|
default.
|
||||||
|
e.g. let g:indentLine_fileType = '*.txt,*.sh'
|
||||||
|
Default value is "" which means no file types is excluded.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
COMMANDS *indentLine-commands*
|
COMMANDS *indentLine-commands*
|
||||||
@@ -75,4 +89,4 @@ NagatoPain
|
|||||||
Salman Halim
|
Salman Halim
|
||||||
Christophe
|
Christophe
|
||||||
==============================================================================
|
==============================================================================
|
||||||
vim:tw=78:ts=8:ft=help:norl:noet
|
vim:tw=78:ts=8:ft=help:norl
|
||||||
|
|||||||
Reference in New Issue
Block a user