Skip to content

Commit

Permalink
Fix #821 prompt icon features
Browse files Browse the repository at this point in the history
  • Loading branch information
Shougo committed Jan 15, 2015
1 parent b95e8f9 commit 8f12efd
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 13 deletions.
3 changes: 3 additions & 0 deletions autoload/unite/variables.vim
Expand Up @@ -227,6 +227,7 @@ function! s:initialize_default() "{{{
\ 'short_source_names' : 0,
\ 'candidate_icon' : ' ',
\ 'marked_icon' : '*',
\ 'hide_icon' : 1,
\ 'cursor_line_time' : '0.10',
\ 'is_redraw' : 0,
\ 'wipe' : 0,
Expand Down Expand Up @@ -262,6 +263,8 @@ function! s:initialize_default() "{{{
\ ['abbr_highlight', 'g:unite_abbr_highlight'],
\ ['update_time', 'g:unite_update_time'],
\ ['short_source_names', 'g:unite_enable_short_source_names'],
\ ['candidate_icon', 'g:unite_candidate_icon'],
\ ['marked_icon', 'g:unite_marked_icon'],
\ ['cursor_line_time', 'g:unite_cursor_line_time'],
\ ['vertical_preview', 'g:unite_kind_file_vertical_preview'],
\ ], "exists(v:val[1])")
Expand Down
29 changes: 18 additions & 11 deletions autoload/unite/view.vim
Expand Up @@ -129,7 +129,7 @@ function! unite#view#_quick_match_redraw(quick_match_table, is_define) "{{{
for [key, number] in items(a:quick_match_table)
if a:is_define
execute printf(
\ 'silent! sign define unite_quick_match_%d text=%s texthl=uniteQuickMatchMarker',
\ 'silent! sign define unite_quick_match_%d text=%s texthl=uniteQuickMatchText',
\ number, key)
execute printf(
\ 'silent! sign place %d name=unite_quick_match_%d line=%d buffer=%d',
Expand Down Expand Up @@ -255,23 +255,26 @@ function! unite#view#_set_syntax() "{{{
syntax match uniteInputCommand /\\\@<! :\S\+/ contained

let unite = unite#get_current_unite()
let context = unite.context

let candidate_icon = unite#util#escape_pattern(
\ unite.context.candidate_icon)
\ context.candidate_icon)
execute 'syntax region uniteNonMarkedLine start=/^'.
\ candidate_icon.'/ end=''$'' keepend'.
\ ' contains=uniteCandidateMarker,'.
\ ' contains=uniteCandidateIcon,'.
\ 'uniteCandidateSourceName'
execute 'syntax match uniteCandidateMarker /^'.
\ candidate_icon.'/ contained conceal'
execute 'syntax match uniteCandidateIcon /^'.
\ candidate_icon.'/ contained '
\ . (context.hide_icon ? 'conceal' : '')

let marked_icon = unite#util#escape_pattern(
\ unite.context.marked_icon)
\ context.marked_icon)
execute 'syntax region uniteMarkedLine start=/^'.
\ marked_icon.'/ end=''$'' keepend'
\ ' contains=uniteMarkedMarker'
execute 'syntax match uniteMarkedMarker /^'.
\ marked_icon.'/ contained conceal'
\ ' contains=uniteMarkedIcon'
execute 'syntax match uniteMarkedIcon /^'.
\ marked_icon.'/ contained '
\ . (context.hide_icon ? 'conceal' : '')

silent! syntax clear uniteCandidateSourceName
if unite.max_source_name > 0
Expand All @@ -297,7 +300,7 @@ function! unite#view#_set_syntax() "{{{
execute printf('syntax match %s "^\%(['.
\ unite.context.candidate_icon.' ] \|.|\)%s" '.
\ 'nextgroup='.source.syntax. ' keepend
\ contains=uniteCandidateMarker,%s',
\ contains=uniteCandidateIcon,%s',
\ 'uniteSourceLine__'.source.syntax,
\ (name == '' ? '' : name . '\>'),
\ (name == '' ? '' : 'uniteCandidateSourceName')
Expand Down Expand Up @@ -957,7 +960,11 @@ function! unite#view#_convert_lines(candidates) "{{{
let [max_width, max_source_name] = unite#helper#adjustments(
\ winwidth(0), unite.max_source_name, 4)

let padding = repeat(' ', strwidth(context.prompt))
let padding_width = strwidth(context.prompt)
if !unite.context.hide_icon
let padding_width -= strwidth(context.candidate_icon)
endif
let padding = repeat(' ', padding_width)

return map(copy(a:candidates),
\ "(v:val.is_dummy ? ' ' :
Expand Down
12 changes: 12 additions & 0 deletions doc/unite.txt
Expand Up @@ -1686,6 +1686,18 @@ the context dictionary.
Note: If it is "below", |unite-options-auto-resize| is used
automatically. To disable it, you must set "-no-auto-resize"
option.
*unite-options-candidate-icon*
-candidate-icon={icon-text}
Specify the candidate icon text. The default value is ' '.

*unite-options-marked-icon*
-marked-icon={icon-text}
Specify the marked icon text. The default value is '*'.

*unite-options-hide-icon*
-hide-icon
Hide candidates icons.
Note: It is default behavior.

*unite-options-default-action*
-default-action={default-action}
Expand Down
5 changes: 3 additions & 2 deletions syntax/unite.vim
Expand Up @@ -36,8 +36,9 @@ highlight default link uniteError Error

highlight default link uniteMarkedLine Statement
highlight default link uniteCandidateSourceName Type
highlight default link uniteQuickMatchMarker Special
highlight default link uniteCandidateMarker Special
highlight default link uniteQuickMatchText Special
highlight default link uniteCandidateIcon Special
highlight default link uniteMarkedIcon Statement
highlight default link uniteCandidateInputKeyword Function

" The following definitions are for <Plug>(unite-choose-action).
Expand Down

0 comments on commit 8f12efd

Please sign in to comment.