Option to set min length for suggestions
Only works with the identifier completer. Fixes #387.
This commit is contained in:
parent
6df01471d8
commit
5496984931
15
README.md
15
README.md
@ -598,6 +598,21 @@ Default: `2`
|
|||||||
|
|
||||||
let g:ycm_min_num_of_chars_for_completion = 2
|
let g:ycm_min_num_of_chars_for_completion = 2
|
||||||
|
|
||||||
|
### The `g:ycm_min_num_identifier_candidate_chars` option
|
||||||
|
|
||||||
|
This option controls the minimum number of characters that a completion
|
||||||
|
candidate coming from the identifier completer must have to be shown in the
|
||||||
|
popup menu.
|
||||||
|
|
||||||
|
A special value of `0` means there is no limit.
|
||||||
|
|
||||||
|
NOTE: This option only applies to the identifier completer; it has no effect on
|
||||||
|
the various semantic completers.
|
||||||
|
|
||||||
|
Default: `0`
|
||||||
|
|
||||||
|
let g:ycm_min_num_identifier_candidate_chars = 0
|
||||||
|
|
||||||
### The `g:ycm_filetype_whitelist` option
|
### The `g:ycm_filetype_whitelist` option
|
||||||
|
|
||||||
This option controls for which Vim filetypes (see `:h filetype`) should YCM be
|
This option controls for which Vim filetypes (see `:h filetype`) should YCM be
|
||||||
|
@ -63,6 +63,9 @@ let g:loaded_youcompleteme = 1
|
|||||||
let g:ycm_min_num_of_chars_for_completion =
|
let g:ycm_min_num_of_chars_for_completion =
|
||||||
\ get( g:, 'ycm_min_num_of_chars_for_completion', 2 )
|
\ get( g:, 'ycm_min_num_of_chars_for_completion', 2 )
|
||||||
|
|
||||||
|
let g:ycm_min_num_identifier_candidate_chars =
|
||||||
|
\ get( g:, 'ycm_min_num_identifier_candidate_chars', 0 )
|
||||||
|
|
||||||
let g:ycm_filetype_whitelist =
|
let g:ycm_filetype_whitelist =
|
||||||
\ get( g:, 'ycm_filetype_whitelist', {
|
\ get( g:, 'ycm_filetype_whitelist', {
|
||||||
\ '*' : 1,
|
\ '*' : 1,
|
||||||
|
@ -27,8 +27,10 @@ from ycm import vimsupport
|
|||||||
from ycm import utils
|
from ycm import utils
|
||||||
|
|
||||||
MAX_IDENTIFIER_COMPLETIONS_RETURNED = 10
|
MAX_IDENTIFIER_COMPLETIONS_RETURNED = 10
|
||||||
MIN_NUM_CHARS = int( vimsupport.GetVariableValue(
|
MIN_NUM_COMPLETION_START_CHARS = int( vimsupport.GetVariableValue(
|
||||||
"g:ycm_min_num_of_chars_for_completion" ) )
|
"g:ycm_min_num_of_chars_for_completion" ) )
|
||||||
|
MIN_NUM_CANDIDATE_SIZE_CHARS = int( vimsupport.GetVariableValue(
|
||||||
|
"g:ycm_min_num_identifier_candidate_chars" ) )
|
||||||
SYNTAX_FILENAME = 'YCM_PLACEHOLDER_FOR_SYNTAX'
|
SYNTAX_FILENAME = 'YCM_PLACEHOLDER_FOR_SYNTAX'
|
||||||
|
|
||||||
|
|
||||||
@ -172,6 +174,8 @@ class IdentifierCompleter( GeneralCompleter ):
|
|||||||
completions = self.completions_future.GetResults()[
|
completions = self.completions_future.GetResults()[
|
||||||
: MAX_IDENTIFIER_COMPLETIONS_RETURNED ]
|
: MAX_IDENTIFIER_COMPLETIONS_RETURNED ]
|
||||||
|
|
||||||
|
completions = _RemoveSmallCandidates( completions )
|
||||||
|
|
||||||
# We will never have duplicates in completions so with 'dup':1 we tell Vim
|
# We will never have duplicates in completions so with 'dup':1 we tell Vim
|
||||||
# to add this candidate even if it's a duplicate of an existing one (which
|
# to add this candidate even if it's a duplicate of an existing one (which
|
||||||
# will never happen). This saves us some expensive string matching
|
# will never happen). This saves us some expensive string matching
|
||||||
@ -204,8 +208,15 @@ def PreviousIdentifier():
|
|||||||
while start_column > 0 and utils.IsIdentifierChar( line[ start_column - 1 ] ):
|
while start_column > 0 and utils.IsIdentifierChar( line[ start_column - 1 ] ):
|
||||||
start_column -= 1
|
start_column -= 1
|
||||||
|
|
||||||
if end_column - start_column < MIN_NUM_CHARS:
|
if end_column - start_column < MIN_NUM_COMPLETION_START_CHARS:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
return line[ start_column : end_column ]
|
return line[ start_column : end_column ]
|
||||||
|
|
||||||
|
|
||||||
|
def _RemoveSmallCandidates( candidates ):
|
||||||
|
if MIN_NUM_CANDIDATE_SIZE_CHARS == 0:
|
||||||
|
return candidates
|
||||||
|
|
||||||
|
return [ x for x in candidates if len( x ) >= MIN_NUM_CANDIDATE_SIZE_CHARS ]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user