7189 Public method to perform a simple editor command. |
7189 Public method to perform a simple editor command. |
7190 |
7190 |
7191 @param cmd the scintilla command to be performed |
7191 @param cmd the scintilla command to be performed |
7192 """ |
7192 """ |
7193 if cmd == QsciScintilla.SCI_TAB: |
7193 if cmd == QsciScintilla.SCI_TAB: |
7194 line, index = self.getCursorPosition() |
7194 try: |
7195 tmplName = self.getWordLeft(line, index) |
7195 templateViewer = e5App().getObject("TemplateViewer") |
7196 if tmplName: |
7196 except KeyError: |
7197 if e5App().getObject("TemplateViewer").hasTemplate( |
7197 # template viewer is not active |
7198 tmplName, self.getLanguage()): |
7198 templateViewer = None |
7199 self.__applyTemplate(tmplName, self.getLanguage()) |
7199 |
7200 return |
7200 if templateViewer is not None: |
7201 else: |
7201 line, index = self.getCursorPosition() |
7202 templateNames = \ |
7202 tmplName = self.getWordLeft(line, index) |
7203 e5App().getObject("TemplateViewer").getTemplateNames( |
7203 if tmplName: |
|
7204 if templateViewer.hasTemplate(tmplName, |
|
7205 self.getLanguage()): |
|
7206 self.__applyTemplate(tmplName, self.getLanguage()) |
|
7207 return |
|
7208 else: |
|
7209 templateNames = templateViewer.getTemplateNames( |
7204 tmplName, self.getLanguage()) |
7210 tmplName, self.getLanguage()) |
7205 if len(templateNames) == 1: |
7211 if len(templateNames) == 1: |
7206 self.__applyTemplate(templateNames[0], |
7212 self.__applyTemplate(templateNames[0], |
7207 self.getLanguage()) |
7213 self.getLanguage()) |
7208 return |
7214 return |
7209 elif len(templateNames) > 1: |
7215 elif len(templateNames) > 1: |
7210 self.showUserList( |
7216 self.showUserList( |
7211 TemplateCompletionListID, |
7217 TemplateCompletionListID, |
7212 ["{0}?{1:d}".format(t, self.TemplateImageID) |
7218 ["{0}?{1:d}".format(t, self.TemplateImageID) |
7213 for t in templateNames]) |
7219 for t in templateNames]) |
7214 return |
7220 return |
7215 |
7221 |
7216 super(Editor, self).editorCommand(cmd) |
7222 super(Editor, self).editorCommand(cmd) |
7217 |
7223 |
7218 def __applyTemplate(self, templateName, language): |
7224 def __applyTemplate(self, templateName, language): |
7219 """ |
7225 """ |
7221 |
7227 |
7222 @param templateName name of the template to apply (string) |
7228 @param templateName name of the template to apply (string) |
7223 @param language name of the language (group) to get the template |
7229 @param language name of the language (group) to get the template |
7224 from (string) |
7230 from (string) |
7225 """ |
7231 """ |
7226 if e5App().getObject("TemplateViewer").hasTemplate( |
7232 try: |
7227 templateName, self.getLanguage()): |
7233 templateViewer = e5App().getObject("TemplateViewer") |
|
7234 except KeyError: |
|
7235 # template viewer is not active |
|
7236 return |
|
7237 |
|
7238 if templateViewer.hasTemplate(templateName, self.getLanguage()): |
7228 self.extendSelectionWordLeft() |
7239 self.extendSelectionWordLeft() |
7229 e5App().getObject("TemplateViewer").applyNamedTemplate( |
7240 templateViewer.applyNamedTemplate(templateName, |
7230 templateName, self.getLanguage()) |
7241 self.getLanguage()) |
7231 |
7242 |
7232 ####################################################################### |
7243 ####################################################################### |
7233 ## Project related methods |
7244 ## Project related methods |
7234 ####################################################################### |
7245 ####################################################################### |
7235 |
7246 |