diff -r 913a08004977 -r 22a6fc33ab6d QScintilla/Editor.py --- a/QScintilla/Editor.py Sat Jul 07 12:01:23 2018 +0200 +++ b/QScintilla/Editor.py Wed Aug 01 19:43:34 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