我们从Python开源项目中,提取了以下32个代码示例,用于说明如何使用readline.get_begidx()。
def complete(self,text,index): if text != self.text or not text: self.text = text if not readline.get_begidx(): self.matches = [ w for w in self.cmdcomplete if w.startswith(text) ] else: context = readline.get_line_buffer().split(" ") #check first word, see if it's an atrophy command if context[0] in self.cmdcomplete and context[0] != "run": self.matches = [ s for s in self.symbols if s.startswith(text)] else: self.matches = [ f for f in glob.glob(context[-1]+'*')] else: try: return self.matches[index] except: pass try: return self.matches[index] except: 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() 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 completer(self, text, state): if readline.get_begidx() == 0: # means it's the first word on buffer return self.generate_commands(text, state) else: # not the first word on buffer, may be a parameter return self.generate_parameters(text, state)
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