import sys
import tokenize
import types
+import wx
def getAutoCompleteList(command='', locals=None, includeMagic=1,
includeSingle=1, includeDouble=1):
line = token[4]
if tokentype is tokenize.ENDMARKER:
continue
- if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \
- and laststring != '.':
- # We've reached something that's not part of the root.
- if prefix and line[token[3][1]] != ' ':
- # If it doesn't have a space after it, remove the prefix.
- prefix = ''
- break
- if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \
+ #if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \
+ # and laststring != '.':
+ # # We've reached something that's not part of the root.
+ # if prefix and line[token[3][1]] != ' ':
+ # # If it doesn't have a space after it, remove the prefix.
+ # prefix = ''
+ # break
+ if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER, tokenize.OP) \
or (tokentype is tokenize.OP and tokenstring == '.'):
if prefix:
# The prefix isn't valid because it comes after a dot.
def getTokens(command):
"""Return list of token tuples for command."""
- command = str(command) # In case the command is unicode, which fails.
+
+ # In case the command is unicode try encoding it
+ if type(command) == unicode:
+ try:
+ command = command.encode(wx.GetDefaultPyEncoding())
+ except UnicodeEncodeError:
+ pass # otherwise leave it alone
+
f = cStringIO.StringIO(command)
# tokens is a list of token tuples, each looking like:
# (type, string, (srow, scol), (erow, ecol), line)