我们从Python开源项目中,提取了以下31个代码示例,用于说明如何使用readline.get_endidx()。
def generate_parameters(self, text, state): if state == 0: self.available = [] self.current = 0 try: line = readline.get_line_buffer()[:readline.get_endidx()].split(' ') cmd = self.manager.find(line[0]) except: return 0 current_params = list(filter(lambda x: len(x.strip()) > 0, line[1:-1] if len(line) > 2 else [])) if ',' in text: text = text.split(',')[-1] for i in cmd.parameters(self.mole, current_params): if i[:len(text)] == text: self.available.append(i) self.available.sort() if len(self.available) == 1: text = self.available[0] self.available = [] self.current = len(self.available) return text + cmd.parameter_separator(current_params) return self.get_completion(text, state)
def complete(self, text, state): """Return the next possible completion for 'text'. If a command has not been entered, then complete against command list. Otherwise try to call complete_<command> to get list of completions. """ if state == 0: import readline origline = readline.get_line_buffer() line = origline.lstrip() stripped = len(origline) - len(line) begidx = readline.get_begidx() - stripped endidx = readline.get_endidx() - stripped if begidx>0: cmd, args, foo = self.parseline(line) if cmd == '': compfunc = self.completedefault else: try: compfunc = getattr(self, 'complete_' + cmd) except AttributeError: compfunc = self.completedefault else: compfunc = self.completenames self.completion_matches = compfunc(text, line, begidx, endidx) try: return self.completion_matches[state] except IndexError: return None
def complete(self, text, state): """Return the next possible completion for 'text'. If a command has not been entered, then complete against command list. Otherwise try to call complete_<command> to get list of completions. """ if state == 0: original_line = readline.get_line_buffer() line = original_line.lstrip() stripped = len(original_line) - len(line) start_index = readline.get_begidx() - stripped end_index = readline.get_endidx() - stripped if start_index > 0: cmd, args = self.parse_line(line) if cmd == '': complete_function = self.default_completer else: try: complete_function = getattr(self, 'complete_' + cmd) except AttributeError: complete_function = self.default_completer else: complete_function = self.raw_command_completer self.completion_matches = complete_function(text, line, start_index, end_index) try: return self.completion_matches[state] except IndexError: return None
def complete(self, text, state): if state == 0: import readline origline = readline.get_line_buffer() line = origline.lstrip() stripped = len(origline) - len(line) begidx = readline.get_begidx() - stripped endidx = readline.get_endidx() - stripped if begidx>0: cmd, args, foo = self.parseline(line) if cmd == '': compfunc = self.completedefault else: try: #compfunc = getattr(self, 'complete_' + cmd) compfunc = self.pupy_completer.complete except AttributeError: compfunc = self.completedefault else: compfunc = self.completenames self.completion_matches = compfunc(text, line, begidx, endidx) try: if self.completion_matches: return self.completion_matches[state] except IndexError: return None
def complete(self, text, state): """Return the next possible completion for 'text'. If a command has not been entered, then complete against command list. Otherwise try to call complete_<command> to get list of completions. """ if state == 0: import readline origline = readline.get_line_buffer() # Offer completion just for commands that starts # with the trigger : if origline and not origline.startswith(':'): return None line = origline.lstrip().lstrip(':') stripped = len(origline) - len(line) begidx = readline.get_begidx() - stripped endidx = readline.get_endidx() - stripped if begidx>0: cmd, args, foo = self.parseline(line) if cmd == '': compfunc = self.completedefault else: try: compfunc = getattr(self, 'complete_' + cmd) except AttributeError: compfunc = self.completedefault else: compfunc = self.completenames self.completion_matches = compfunc(text, line, begidx, endidx) try: return self.completion_matches[state] except IndexError: return None
def _GetNextCompletion(self, state): if state == 0: # TODO: Tokenize it according to our language. If this is $PS2, we also # need previous lines! Could make a VirtualLineReader instead of # StringLineReader? buf = readline.get_line_buffer() # Begin: the index of the first char of the 'word' in the line. Words # are parsed according to readline delims (which we won't use). begin = readline.get_begidx() # The current position of the cursor. The thing being completed. end = readline.get_endidx() if self.debug: self.status_out.Write(0, 'line: %r / begin - end: %d - %d, part: %r', buf, begin, end, buf[begin:end]) self.comp_iter = self.root_comp.Matches(buf, self.status_out) if self.comp_iter is None: self.status_out.Write(0, "ASSERT comp_iter shouldn't be None") try: next_completion = self.comp_iter.next() except StopIteration: next_completion = None # sentinel? return next_completion
def complete(self, text, state): if state == 0: self._build_match_list( readline.get_line_buffer(), readline.get_begidx(), readline.get_endidx() ) try: return self.matches[state] except IndexError: pass #except Exception as e: # print 'Error: {0}'.format(repr(e)) return None # vim: :ai:sw=4:ts=4:sts=4:et:ft=python:fo=corqj2:sm:tw=79:
def complete(self, text, state): """Return the next possible completion for 'text'.""" if state == 0: origline = readline.get_line_buffer() begidx = readline.get_begidx() endidx = readline.get_endidx() if begidx > 0: cmd, args, foo = self.parseline(origline) if cmd == '': compfunc = self.completedefault else: try: compfunc = getattr(self, 'complete_' + cmd.lower()) except AttributeError: try: compfunc = self.ctx.lookup_compfunction(cmd) except AttributeError: compfunc = self.completedefault else: compfunc = self.completenames arglist = [item.strip() for item in origline.strip().split()] comp_state = self.get_compstate(text, arglist) self.completion_matches = compfunc(text, origline, arglist, comp_state, begidx, endidx) try: return self.completion_matches[state] except: return None #def get_names(self): # names = [] # classes = [self.__class__] # while classes: # aclass = classes.pop(0) # if aclass.__bases__: # classes = classes + list(aclass.__bases__) # names = names + dir(aclass) # return names
def complete(self, text, state): response = None if state == 0: # This is the first time for this text, # so build a match list. origline = readline.get_line_buffer() begin = readline.get_begidx() end = readline.get_endidx() being_completed = origline[begin:end] words = origline.split() logging.debug('origline=%s', repr(origline)) logging.debug('begin=%s', begin) logging.debug('end=%s', end) logging.debug('being_completed=%s', being_completed) logging.debug('words=%s', words) if not words: self.current_candidates = sorted( self.options.keys() ) else: try: if begin == 0: # first word candidates = self.options.keys() else: # later word first = words[0] candidates = self.options[first] if being_completed: # match options with portion of input # being completed self.current_candidates = [ w for w in candidates if w.startswith(being_completed) ] else: # matching empty string, # use all candidates self.current_candidates = candidates logging.debug('candidates=%s', self.current_candidates) except (KeyError, IndexError) as err: logging.error('completion error: %s', err) self.current_candidates = [] try: response = self.current_candidates[state] except IndexError: response = None logging.debug('complete(%s, %s) => %s', repr(text), state, response) return response
def main_completer_handler(self, text, state): """ Handler of all input entries, tabs, and history :param text: input text :type text: string. :param state: current state :type state: string. """ response = None # Build match list on first iteration else continue if state == 0: origline = readline.get_line_buffer() begin = readline.get_begidx() end = readline.get_endidx() being_completed = origline[begin:end] words = origline.split() if not words: # option for words list self.current_candidates = sorted(self.options.keys()) else: # traverse all words entries and passing accordingly try: if begin == 0: # first word candidates = self.options.keys() else: # later word first = words[0] candidates = self.options[first] if being_completed: # match options with portion of input being completed self.current_candidates = [w for w in candidates\ if w.lower().startswith(being_completed.lower())] else: # matching empty string so use all candidates self.current_candidates = candidates except (KeyError, IndexError): self.current_candidates = [] # Return the state from the match list if found otherwise return None. try: response = self.current_candidates[state] except IndexError: # No candidate found for state response = None # Response return return response
def complete(self, text, state): """Return the next possible completion for 'text'.""" if state == 0: try: import readline except ImportError: import pyreadline as readline origline = readline.get_line_buffer() begidx = readline.get_begidx() endidx = readline.get_endidx() if begidx > 0: cmd, args, foo = self.parseline(origline) if cmd == '': compfunc = self.completedefault else: try: compfunc = getattr(self, 'complete_' + cmd.lower()) except AttributeError: try: compfunc = self.ctx.lookup_compfunction(cmd) except AttributeError: compfunc = self.completedefault else: compfunc = self.completenames arglist = [item.strip() for item in origline.strip().split()] comp_state = self.get_compstate(text, arglist) self.completion_matches = compfunc(text, origline, arglist, comp_state, begidx, endidx) try: return self.completion_matches[state] except IndexError: return None #def get_names(self): # names = [] # classes = [self.__class__] # while classes: # aclass = classes.pop(0) # if aclass.__bases__: # classes = classes + list(aclass.__bases__) # names = names + dir(aclass) # return names