QScintilla/Editor.py

changeset 6426
f072dd2edb0f
parent 6306
af71f34a0cfb
child 6455
22a6fc33ab6d
child 6481
9fd81275aaf2
diff -r 2f37e52a6c70 -r f072dd2edb0f QScintilla/Editor.py
--- a/QScintilla/Editor.py	Wed Jul 11 19:06:33 2018 +0200
+++ b/QScintilla/Editor.py	Wed Jul 11 19:08:59 2018 +0200
@@ -7191,27 +7191,33 @@
         @param cmd the scintilla command to be performed
         """
         if cmd == QsciScintilla.SCI_TAB:
-            line, index = self.getCursorPosition()
-            tmplName = self.getWordLeft(line, index)
-            if tmplName:
-                if e5App().getObject("TemplateViewer").hasTemplate(
-                        tmplName, self.getLanguage()):
-                    self.__applyTemplate(tmplName, self.getLanguage())
-                    return
-                else:
-                    templateNames = \
-                        e5App().getObject("TemplateViewer").getTemplateNames(
+            try:
+                templateViewer = e5App().getObject("TemplateViewer")
+            except KeyError:
+                # template viewer is not active
+                templateViewer = None
+            
+            if templateViewer is not None:
+                line, index = self.getCursorPosition()
+                tmplName = self.getWordLeft(line, index)
+                if tmplName:
+                    if templateViewer.hasTemplate(tmplName,
+                                                  self.getLanguage()):
+                        self.__applyTemplate(tmplName, self.getLanguage())
+                        return
+                    else:
+                        templateNames = templateViewer.getTemplateNames(
                             tmplName, self.getLanguage())
-                    if len(templateNames) == 1:
-                        self.__applyTemplate(templateNames[0],
-                                             self.getLanguage())
-                        return
-                    elif len(templateNames) > 1:
-                        self.showUserList(
-                            TemplateCompletionListID,
-                            ["{0}?{1:d}".format(t, self.TemplateImageID)
-                             for t in templateNames])
-                        return
+                        if len(templateNames) == 1:
+                            self.__applyTemplate(templateNames[0],
+                                                 self.getLanguage())
+                            return
+                        elif len(templateNames) > 1:
+                            self.showUserList(
+                                TemplateCompletionListID,
+                                ["{0}?{1:d}".format(t, self.TemplateImageID)
+                                 for t in templateNames])
+                            return
         
         super(Editor, self).editorCommand(cmd)
     
@@ -7223,11 +7229,16 @@
         @param language name of the language (group) to get the template
             from (string)
         """
-        if e5App().getObject("TemplateViewer").hasTemplate(
-                templateName, self.getLanguage()):
+        try:
+            templateViewer = e5App().getObject("TemplateViewer")
+        except KeyError:
+            # template viewer is not active
+            return
+        
+        if templateViewer.hasTemplate(templateName, self.getLanguage()):
             self.extendSelectionWordLeft()
-            e5App().getObject("TemplateViewer").applyNamedTemplate(
-                templateName, self.getLanguage())
+            templateViewer.applyNamedTemplate(templateName,
+                                              self.getLanguage())
     
     #######################################################################
     ## Project related methods

eric ide

mercurial