Ejemplo n.º 1
0
    def get_complete_position(self, context):
        # Check member prefix pattern.
        if self.vim.eval('&l:omnifunc') == '':
            return -1
        for input_pattern in convert2list(
            get_default_buffer_config(
                self.vim, context,
                'b:deoplete_omni_input_patterns',
                'g:deoplete#omni#input_patterns',
                'g:deoplete#omni#_input_patterns')):

            m = re.search(input_pattern, context['input'])
            if m is None or input_pattern == '':
                continue

            pos = self.vim.eval('getpos(".")')
            try:
                complete_pos = self.vim.eval('call(&l:omnifunc, [1, ""])')
            except:
                self.vim.command(
                    'call deoplete#util#print_error('
                    + '"Error occurred calling omnifunction: "'
                    + '. &l:omnifunc)')
                self.vim.command(
                    'call deoplete#util#print_error(v:throwpoint)')
                self.vim.command(
                    'call deoplete#util#print_error(v:exception)')

                return -1
            finally:
                if pos != self.vim.eval('getpos(".")'):
                    self.vim.command(
                        'call setpos(".", {0})'.format(str(pos)))
            return complete_pos
        return -1
Ejemplo n.º 2
0
    def get_complete_position(self, context):
        # Check member prefix pattern.
        if self.vim.eval('&l:omnifunc') == '':
            return -1
        for input_pattern in convert2list(
            get_default_buffer_config(
                self.vim, context,
                'b:deoplete_omni_input_patterns',
                'g:deoplete#omni#input_patterns',
                'g:deoplete#omni#_input_patterns')):

            m = re.search('(' + input_pattern + ')$', context['input'])
            if m is None or input_pattern == '':
                continue

            try:
                complete_pos = self.vim.call(
                    self.vim.eval('&l:omnifunc'), 1, '')
            except:
                error(self.vim, 'Error occurred calling omnifunction: '
                      + self.vim.eval('&l:omnifunc'))

                return -1
            return complete_pos
        return -1
Ejemplo n.º 3
0
    def get_complete_position(self, context):
        # Check member prefix pattern.
        if self.vim.eval('&l:omnifunc') == '':
            return -1
        for input_pattern in convert2list(
                get_default_buffer_config(self.vim, context,
                                          'b:deoplete_omni_input_patterns',
                                          'g:deoplete#omni#input_patterns',
                                          'g:deoplete#omni#_input_patterns')):

            m = re.search('(' + input_pattern + ')$', context['input'])
            if m is None or input_pattern == '':
                continue

            try:
                complete_pos = self.vim.call(self.vim.eval('&l:omnifunc'), 1,
                                             '')
            except:
                error(
                    self.vim, 'Error occurred calling omnifunction: ' +
                    self.vim.eval('&l:omnifunc'))

                return -1
            return complete_pos
        return -1
Ejemplo n.º 4
0
    def get_complete_position(self, context):
        # Check member prefix pattern.
        if self.vim.eval('&l:omnifunc') == '':
            return -1
        for input_pattern in convert2list(
            get_default_buffer_config(
                self.vim, context,
                'b:deoplete_omni_input_patterns',
                'g:deoplete#omni#input_patterns',
                'g:deoplete#omni#_input_patterns')):

            m = re.search('('+input_pattern+')$', context['input'])
            if m is None or input_pattern == '':
                continue

            pos = self.vim.current.window.cursor
            try:
                complete_pos = self.vim.call(
                    self.vim.eval('&l:omnifunc'), 1, '')
            except:
                error(self.vim, 'Error occurred calling omnifunction: '
                    + self.vim.eval('&l:omnifunc'))

                return -1
            finally:
                if pos != self.vim.current.window.cursor:
                    error(self.vim, 'omnifunction: '
                        + self.vim.eval('&l:omnifunc') + ' moves cursor!')
                    error(self.vim, 'Deoplete cannot support it in omni source.'
                        + ' You should use g:deoplete#omni_patterns.')
            return complete_pos
        return -1
Ejemplo n.º 5
0
 def get_complete_position(self, context):
     # Check member prefix pattern.
     for prefix_pattern in convert2list(
             get_default_buffer_config(
                 self.vim, context, 'b:deoplete_member_prefix_patterns',
                 'g:deoplete#member#prefix_patterns',
                 'g:deoplete#member#_prefix_patterns')):
         m = re.search(self.object_pattern + prefix_pattern + r'\w*$',
                       context['input'])
         if m is None or prefix_pattern == '':
             continue
         self.prefix = re.sub(r'\w*$', '', m.group(0))
         return re.search(r'\w*$', context['input']).start()
     return -1
Ejemplo n.º 6
0
 def get_complete_position(self, context):
     # Check member prefix pattern.
     for prefix_pattern in convert2list(
             get_default_buffer_config(
                 self.vim, context,
                 'b:deoplete_member_prefix_patterns',
                 'g:deoplete#member#prefix_patterns',
                 'g:deoplete#member#_prefix_patterns')):
         m = re.search(self.object_pattern + prefix_pattern + r'\w*$',
                       context['input'])
         if m is None or prefix_pattern == '':
             continue
         self.prefix = re.sub(r'\w*$', '', m.group(0))
         return re.search(r'\w*$', context['input']).start()
     return -1
Ejemplo n.º 7
0
 def get_complete_position(self, context):
     # Check member prefix pattern.
     for prefix_pattern in convert2list(
         get_default_buffer_config(
             self.vim,
             context,
             "b:deoplete_member_prefix_patterns",
             "g:deoplete#member#prefix_patterns",
             "g:deoplete#member#_prefix_patterns",
         )
     ):
         m = re.search(self.object_pattern + prefix_pattern + r"\w*$", context["input"])
         if m is None or prefix_pattern == "":
             continue
         self.prefix = re.sub(r"\w*$", "", m.group(0))
         return re.search(r"\w*$", context["input"]).start()
     return -1
Ejemplo n.º 8
0
    def get_complete_position(self, context):
        # Check member prefix pattern.
        if self.vim.eval('&l:omnifunc') == '':
            return -1
        for input_pattern in convert2list(
            get_default_buffer_config(
                self.vim, context,
                'b:deoplete_omni_input_patterns',
                'g:deoplete#omni#input_patterns',
                'g:deoplete#omni#_input_patterns')):

            m = re.search('('+input_pattern+')$', context['input'])
            if m is None or input_pattern == '':
                continue

            pos = self.vim.eval('getpos(".")')
            try:
                complete_pos = self.vim.eval('call(&l:omnifunc, [1, ""])')
            except:
                self.vim.command(
                    'call deoplete#util#print_error('
                    + '"Error occurred calling omnifunction: "'
                    + '. &l:omnifunc)')

                return -1
            finally:
                if pos != self.vim.eval('getpos(".")'):
                    self.vim.command(
                        'call deoplete#util#print_error('
                        + '"omnifunction: "'
                        + '. &l:omnifunc . " moves cursor!")')
                    self.vim.command(
                        'call deoplete#util#print_error('
                        + '"Deoplete cannot support it in omni source. "'
                        + '. "You should use g:deoplete#omni_patterns.")')
            return complete_pos
        return -1