DebugClients/Python3/DebugClientBase.py

branch
6_1_x
changeset 4835
371c03e08f7b
parent 4644
99699903c454
child 4848
36b1d9bec8f6
equal deleted inserted replaced
4812:18b938177946 4835:371c03e08f7b
1935 1935
1936 @param text the text to be completed (string) 1936 @param text the text to be completed (string)
1937 """ 1937 """
1938 completerDelims = ' \t\n`~!@#$%^&*()-=+[{]}\\|;:\'",<>/?' 1938 completerDelims = ' \t\n`~!@#$%^&*()-=+[{]}\\|;:\'",<>/?'
1939 1939
1940 completions = [] 1940 completions = set()
1941 state = 0
1942 # find position of last delim character 1941 # find position of last delim character
1943 pos = -1 1942 pos = -1
1944 while pos >= -len(text): 1943 while pos >= -len(text):
1945 if text[pos] in completerDelims: 1944 if text[pos] in completerDelims:
1946 if pos == -1: 1945 if pos == -1:
1948 else: 1947 else:
1949 text = text[pos + 1:] 1948 text = text[pos + 1:]
1950 break 1949 break
1951 pos -= 1 1950 pos -= 1
1952 1951
1952 # Get local and global completions
1953 try: 1953 try:
1954 comp = self.complete(text, state) 1954 localdict = self.currentThread.getFrameLocals(self.framenr)
1955 except: 1955 localCompleter = Completer(localdict).complete
1956 self.__getCompletionList(text, localCompleter, completions)
1957 except AttributeError:
1958 pass
1959 self.__getCompletionList(text, self.complete, completions)
1960
1961 self.write("{0}{1}||{2}\n".format(DebugProtocol.ResponseCompletion,
1962 str(list(completions)), text))
1963
1964 def __getCompletionList(self, text, completer, completions):
1965 """
1966 Private method to create a completions list.
1967
1968 @param text text to complete (string)
1969 @param completer completer methode
1970 @param completions set where to add new completions strings (set)
1971 """
1972 state = 0
1973 try:
1974 comp = completer(text, state)
1956 comp = None 1975 comp = None
1957 while comp is not None: 1976 while comp is not None:
1958 completions.append(comp) 1977 completions.add(comp)
1959 state += 1 1978 state += 1
1960 try: 1979 try:
1961 comp = self.complete(text, state) 1980 comp = completer(text, state)
1962 except: 1981 except:
1963 comp = None 1982 comp = None
1964
1965 self.write("{0}{1}||{2}\n".format(DebugProtocol.ResponseCompletion,
1966 str(completions), text))
1967 1983
1968 def startDebugger(self, filename=None, host=None, port=None, 1984 def startDebugger(self, filename=None, host=None, port=None,
1969 enableTrace=True, exceptions=True, tracePython=False, 1985 enableTrace=True, exceptions=True, tracePython=False,
1970 redirect=True): 1986 redirect=True):
1971 """ 1987 """

eric ide

mercurial