diff options
Diffstat (limited to 'release/scripts/textplugin_membersuggest.py')
-rw-r--r-- | release/scripts/textplugin_membersuggest.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/release/scripts/textplugin_membersuggest.py b/release/scripts/textplugin_membersuggest.py deleted file mode 100644 index 7c0de78b704..00000000000 --- a/release/scripts/textplugin_membersuggest.py +++ /dev/null @@ -1,90 +0,0 @@ -#!BPY -""" -Name: 'Member Suggest | .' -Blender: 246 -Group: 'TextPlugin' -Shortcut: 'Period' -Tooltip: 'Lists members of the object preceding the cursor in the current text space' -""" - -# Only run if we have the required modules -try: - import bpy - from BPyTextPlugin import * -except ImportError: - OK = False -else: - OK = True - -def main(): - txt = bpy.data.texts.active - if not txt: - return - - (line, c) = current_line(txt) - - # Check we are in a normal context - if get_context(txt) != CTX_NORMAL: - return - - targets = get_targets(line, c) - - if targets[0] == '': # Check if we are looking at a constant [] {} '' etc. - i = c - len('.'.join(targets)) - 1 - if i >= 0: - if line[i] == '"' or line[i] == "'": - targets[0] = 'str' - elif line[i] == '}': - targets[0] = 'dict' - elif line[i] == ']': # Could be array elem x[y] or list [y] - i = line.rfind('[', 0, i) - 1 - while i >= 0: - if line[i].isalnum() or line[i] == '_': - break - elif line[i] != ' ' and line[i] != '\t': - i = -1 - break - i -= 1 - if i < 0: - targets[0] = 'list' - - obj = resolve_targets(txt, targets[:-1]) - if not obj: - return - - items = [] - - if isinstance(obj, VarDesc): - obj = obj.type - - if isinstance(obj, Definition): # Locally defined - if hasattr(obj, 'classes'): - items.extend([(s, 'f') for s in obj.classes.keys()]) - if hasattr(obj, 'defs'): - items.extend([(s, 'f') for s in obj.defs.keys()]) - if hasattr(obj, 'vars'): - items.extend([(s, 'v') for s in obj.vars.keys()]) - - else: # Otherwise we have an imported or builtin object - try: - attr = obj.__dict__.keys() - except AttributeError: - attr = dir(obj) - else: - if not attr: attr = dir(obj) - - for k in attr: - try: - v = getattr(obj, k) - except (AttributeError, TypeError): # Some attributes are not readable - pass - else: - items.append((k, type_char(v))) - - if items != []: - items.sort(cmp = suggest_cmp) - txt.suggest(items, targets[-1]) - -# Check we are running as a script and not imported as a module -if __name__ == "__main__" and OK: - main() |