diff options
Diffstat (limited to 'release/scripts/textplugin_templates.py')
-rw-r--r-- | release/scripts/textplugin_templates.py | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/release/scripts/textplugin_templates.py b/release/scripts/textplugin_templates.py deleted file mode 100644 index 8f949563ac0..00000000000 --- a/release/scripts/textplugin_templates.py +++ /dev/null @@ -1,123 +0,0 @@ -#!BPY -""" -Name: 'Template Completion | Tab' -Blender: 246 -Group: 'TextPlugin' -Shortcut: 'Tab' -Tooltip: 'Completes templates based on the text preceding the cursor' -""" - -# Only run if we have the required modules -try: - import bpy - from BPyTextPlugin import * - from Blender import Text -except ImportError: - OK = False -else: - OK = True - -templates = { - 'ie': - 'if ${1:cond}:\n' - '\t${2}\n' - 'else:\n' - '\t${3}\n', - 'iei': - 'if ${1:cond}:\n' - '\t${2}\n' - 'elif:\n' - '\t${3}\n' - 'else:\n' - '\t${4}\n', - 'def': - 'def ${1:name}(${2:params}):\n' - '\t"""(${2}) - ${3:comment}"""\n' - '\t${4}', - 'cls': - 'class ${1:name}(${2:parent}):\n' - '\t"""${3:docs}"""\n' - '\t\n' - '\tdef __init__(self, ${4:params}):\n' - '\t\t"""Creates a new ${1}"""\n' - '\t\t${5}', - 'class': - 'class ${1:name}(${2:parent}):\n' - '\t"""${3:docs}"""\n' - '\t\n' - '\tdef __init__(self, ${4:params}):\n' - '\t\t"""Creates a new ${1}"""\n' - '\t\t${5}' -} - -def main(): - txt = bpy.data.texts.active - if not txt: - return - - row, c = txt.getCursorPos() - line = txt.asLines(row, row+1)[0] - indent=0 - while indent<c and (line[indent]==' ' or line[indent]=='\t'): - indent += 1 - - # Check we are in a normal context - if get_context(txt) != CTX_NORMAL: - return - - targets = get_targets(line, c-1); - if len(targets) != 1: return - - color = (0, 192, 32) - - for trigger, template in templates.items(): - if trigger != targets[0]: continue - inserts = {} - txt.delete(-len(trigger)-1) - y, x = txt.getCursorPos() - first = None - - # Insert template text and parse for insertion points - count = len(template); i = 0 - while i < count: - if i<count-1 and template[i]=='$' and template[i+1]=='{': - i += 2 - e = template.find('}', i) - item = template[i:e].split(':') - if len(item)<2: item.append('') - if not inserts.has_key(item[0]): - inserts[item[0]] = (item[1], [(x, y)]) - else: - inserts[item[0]][1].append((x, y)) - item[1] = inserts[item[0]][0] - if not first: first = (item[1], x, y) - txt.insert(item[1]) - x += len(item[1]) - i = e - else: - txt.insert(template[i]) - if template[i] == '\n': - txt.insert(line[:indent]) - y += 1 - x = indent - else: - x += 1 - i += 1 - - # Insert markers at insertion points - for id, (text, points) in inserts.items(): - for x, y in points: - txt.setCursorPos(y, x) - txt.setSelectPos(y, x+len(text)) - txt.markSelection((hash(text)+int(id)) & 0xFFFF, color, - Text.TMARK_TEMP | Text.TMARK_EDITALL) - if first: - text, x, y = first - txt.setCursorPos(y, x) - txt.setSelectPos(y, x+len(text)) - break - - -# Check we are running as a script and not imported as a module -if __name__ == "__main__" and OK: - main() |