diff --git a/README.md b/README.md
index 4d09bdc..29b4c82 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ Install the Flog gem like this: `gem install flog`.
To install the plugin just run this command in your Terminal:
-`curl https://github.com/fousa/vim-flog/raw/master/plugin/flog.vim -o ~/.vim/plugin/flog.vim`
+`curl https://raw.github.com/fousa/vim-flog/master/plugin/flog.vim -o ~/.vim/plugin/flog.vim`
When this is done add `:silent exe "g:flog_enable"` to your .vimrc file.
@@ -39,16 +39,16 @@ Configuration
You can set the colors for the complexity indication with the following commands in your .vimrc:
* Set the color of for low complexity:
- `:silent exe "let g:flog_low_color=#a5c261"`
+ `:let g:flog_low_color_hl = "term=standout ctermfg=118 ctermbg=235 guifg=#999999 guibg=#323232"`
* Set the color of for medium complexity:
- `:silent exe "let g:flog_medium_color=#ffc66d"`
+ `:let g:flog_medium_color_hl = "term=standout ctermfg=81 ctermbg=235 guifg=#66D9EF guibg=#323232"`
* Set the color of for high complexity:
- `:silent exe "let g:flog_high_color=#cc7833"`
+ `:let g:flog_high_color_hl = "term=standout cterm=bold ctermfg=199 ctermbg=16 gui=bold guifg=#F92672 guibg=#232526"`
* Set the background color:
- `:silent exe "let g:flog_background_color=#323232"`
+ `:let s:background_hl = "guifg=#999999 guibg=#323232 gui=NONE"`
You can set the limits for the complexity indication with the following commands in your .vimrc:
@@ -58,6 +58,28 @@ You can set the limits for the complexity indication with the following commands
* Set the limit to switch to a high complexity:
:silent exe "`let g:flog_high_limit=20"`
+You can hide some levels of complexity:
+
+* Hide low complexity:
+ `:silent exe "let g:flog_hide_low=1"`
+
+* Hide medium complexity:
+ `:silent exe "let g:flog_hide_medium=1"`
+
+You can also turn flog off and on:
+
+* Turn on flog
+ `:call EnableFlog()`
+
+* Turn off flog
+ `:call DisableFlog()`
+
+* Toggle flog
+ `:call ToggleFlog()`
+
+Additionally, you can map this in your .vimrc:
+ `:map ,f :call ToggleFlog()`
+
Credits
-------
diff --git a/plugin/flog.vim b/plugin/flog.vim
index b760909..4aafcbc 100644
--- a/plugin/flog.vim
+++ b/plugin/flog.vim
@@ -9,27 +9,37 @@ if !has('signs') || !has('ruby')
finish
endif
-let s:low_color = "#a5c261"
-let s:medium_color = "#ffc66d"
-let s:high_color = "#cc7833"
-let s:background_color = "#323232"
+let s:low_color_hl = "term=standout ctermfg=118 ctermbg=235 guifg=#a5c261 guibg=#323232"
+let s:medium_color_hl = "term=standout ctermfg=81 ctermbg=235 guifg=#ffc66d guibg=#323232"
+let s:high_color_hl = "term=standout cterm=bold ctermfg=199 ctermbg=16 gui=bold guifg=#cc7833 guibg=#232526"
+let s:background_hl = "guifg=#999999 guibg=#323232 gui=NONE"
let s:medium_limit = 10
let s:high_limit = 20
+let s:hide_low = 0
+let s:hide_medium = 0
-if exists("g:flog_low_color")
- let s:low_color = g:flog_low_color
+if exists("g:flog_hide_low")
+ let s:hide_low = g:flog_hide_low
endif
-if exists("g:flog_medium_color")
- let s:medium_color = g:flog_medium_color
+if exists("g:flog_hide_medium")
+ let s:hide_medium = g:flog_hide_medium
endif
-if exists("g:flog_high_color")
- let s:high_color = g:flog_high_color
+if exists("g:flog_low_color_hl")
+ let s:low_color_hl = g:flog_low_color_hl
endif
-if exists("g:flog_background_color")
- let s:background_color = g:flog_background_color
+if exists("g:flog_medium_color_hl")
+ let s:medium_color_hl = g:flog_medium_color_hl
+endif
+
+if exists("g:flog_high_color_hl")
+ let s:high_color_hl = g:flog_high_color_hl
+endif
+
+if exists("g:flog_background_hl")
+ let s:high_background_hl = g:flog_high_background_hl
endif
if exists("g:flog_medium_limit")
@@ -132,9 +142,19 @@ def show_complexity(results = {})
when medium_limit..high_limit then "medium_complexity"
else "high_complexity"
end
- value = rest[0].to_i
- value = "9+" if value >= 100
- VIM.command ":sign define #{value.to_s} text=#{value.to_s} texthl=#{complexity}"
+ value = rest[0].to_i
+ value = "9+" if value >= 100
+ VIM.command ":sign define #{value.to_s} text=#{value.to_s} texthl=#{complexity}"
+ render_score line_number, value, medium_limit, high_limit
+ end
+end
+
+def render_score(line_number, value, medium_limit, high_limit)
+ hide_medium = VIM::evaluate 's:hide_medium'
+ hide_low = VIM::evaluate 's:hide_low'
+ if (hide_low == 1 && value < medium_limit) || (hide_medium == 1 && value < high_limit)
+ VIM.command ":sign unplace #{line_number}"
+ else
VIM.command ":sign place #{line_number} line=#{line_number} name=#{value.to_s} file=#{VIM::Buffer.current.name}"
end
end
@@ -142,10 +162,10 @@ end
EOF
function! s:UpdateHighlighting()
- exe 'hi low_complexity guifg='.s:low_color
- exe 'hi medium_complexity guifg='.s:medium_color
- exe 'hi high_complexity guifg='.s:high_color
- exe 'hi SignColumn guifg=#999999 guibg='.s:background_color.' gui=NONE'
+ exe 'hi low_complexity '.s:low_color_hl
+ exe 'hi medium_complexity '.s:medium_color_hl
+ exe 'hi high_complexity '.s:high_color_hl
+ exe 'hi SignColumn '.s:background_hl
endfunction
function! ShowComplexity()
@@ -168,13 +188,40 @@ call s:UpdateHighlighting()
endfunction
+function! HideComplexity()
+ sign unplace *
+call s:UpdateHighlighting()
+
+endfunction
+
+function! EnableFlog()
+ let g:flog_enable=1
+ if &filetype == 'ruby'
+ call ShowComplexity()
+ endif
+ autocmd! BufReadPost,BufWritePost,FileReadPost,FileWritePost *.rb call ShowComplexity()
+endfunction
+
+function! DisableFlog()
+ let g:flog_enable=0
+ call HideComplexity()
+ autocmd! BufReadPost,BufWritePost,FileReadPost,FileWritePost *.rb
+endfunction
+
+function! ToggleFlog()
+ if !exists("g:flog_enable") || g:flog_enable
+ call DisableFlog()
+ else
+ call EnableFlog()
+ end
+endfunction
+
call s:UpdateHighlighting()
sign define low_color text=XX texthl=low_complexity
sign define medium_color text=XX texthl=medium_complexity
sign define high_color text=XX texthl=high_complexity
-
-if !exists("g:flow_enable") || g:flog_enable
- autocmd! BufReadPost,BufWritePost,FileReadPost,FileWritePost *.rb call ShowComplexity()
+if !exists("g:flog_enable") || g:flog_enable
+ call EnableFlog()
endif