def parse(self, base): if not self.ft or not base: return [] logger.info('start neoinclude parse: %s', base) input_data = to_bytes(self.input_data, get_encoding()) get_complete_position = vim.Function( 'neoinclude#file_include#get_complete_position') start_column = get_complete_position(input_data) if start_column == -1: return [] get_include_files = vim.Function( 'neoinclude#file_include#get_include_files') try: candidates = [{ 'word': item[b'word'], 'dup': 1, 'menu': b'[include]', 'kind': item[b'kind'] } for item in get_include_files(input_data)[:]] except TypeError as e: logger.exception(e) candidates = [] logger.info(candidates) return candidates
def getftime(nr): try: bufname = vim.Function('bufname') ftime = vim.Function('getftime') return ftime(bufname(nr)) except vim.error: return -1
def get_encoding(nr): try: getbufvar = vim.Function('getbufvar') encoding = getbufvar(nr, '&encoding') except vim.error: encoding = '' return to_unicode(encoding or 'utf-8', 'utf-8')
def parse(self, base): trigger = self.trigger_cache.get(self.ft) if not trigger or not trigger.search(base): return [] cursor = self.cursor try: func_name = vim.current.buffer.options['omnifunc'] logger.info('omnifunc: %s', func_name) if not func_name: return [] omnifunc = vim.Function(func_name) start = omnifunc(1, '') codepoint = self.start_column() logger.info('start: %s,%s', start, codepoint) if start < 0 or start != codepoint: return [] res = omnifunc(0, to_bytes(base, get_encoding())[codepoint:]) for i, e in enumerate(res): if not isinstance(e, dict): res[i] = {'word': e} res[i]['offset'] = codepoint return res except (vim.error, ValueError, KeyboardInterrupt): return [] finally: self.cursor = cursor
def _get_candidates(self): get_candidates = vim.Function('necosyntax#gather_candidates') candidates = [{ 'abbr': word, 'dup': 1, 'menu': b'[S]' } for word in get_candidates()[:]] candidates.sort(key=lambda x: x['abbr']) return candidates
def _gen_ale_completions(input_data): if not vim_exists('g:loaded_ale'): return [] s = vim.Function("ale#completion#GetCompletionPositionForDeoplete")(input_data) # noqa add_offset = 'completor#utils#add_offset(cs, {})'.format(s) args = "{'callback': {cs -> completor#action#trigger(" + add_offset + ")}}" cmd = ":call ale#completion#GetCompletions('ale-callback', " + args + ")" vim.command(cmd)
def gen_entry(self, base): gather_candidates = vim.Function('necovim#gather_candidates') binput_data = to_bytes(self.input_data, get_encoding()) bbase = to_bytes(base, get_encoding()) candidates = gather_candidates(binput_data, bbase) for entry in candidates: score = test_subseq(base, to_unicode(entry[b'word'], 'utf-8')) if score is None: continue yield entry, score
def parse(self, base): trigger = self.trigger_cache.get(self.ft) if not trigger or not trigger.search(base): return [] cursor = self.cursor try: func_name = vim.current.buffer.options['omnifunc'] logger.info('omnifunc: %s', func_name) if not func_name: return [] omnifunc = vim.Function(func_name) start = omnifunc(1, '') codepoint = self.start_column() logger.info('start: %s,%s', start, codepoint) if start < 0 or start != codepoint: return [] return omnifunc(0, to_bytes(base, get_encoding())[codepoint:]) except (vim.error, ValueError, KeyboardInterrupt): return [] finally: self.cursor = cursor
def __init__(self): super(Completor, self).__init__() necosyntax_init = vim.Function('necosyntax#initialize') necosyntax_init()
def get_offset(self): line, col = vim.current.window.cursor line2byte = vim.Function('line2byte') return line2byte(line) + col - 1