def detectSyntax(self, xmlFileName=None, mimeType=None, language=None, sourceFilePath=None, firstLine=None): """Get syntax by next parameters (fill as many, as known): * name of XML file with syntax definition * MIME type of source file * Programming language name * Source file path * First line of source file First parameter in the list has the hightest priority. Old syntax is always cleared, even if failed to detect new. Method returns ``True``, if syntax is detected, and ``False`` otherwise """ oldLanguage = self.language() self.clearSyntax() syntax = self._globalSyntaxManager.getSyntax( SyntaxHighlighter.formatConverterFunction, xmlFileName=xmlFileName, mimeType=mimeType, languageName=language, sourceFilePath=sourceFilePath, firstLine=firstLine) if syntax is not None: self._highlighter = SyntaxHighlighter(syntax, self) self._indenter.setSyntax(syntax) newLanguage = self.language() if oldLanguage != newLanguage: self.languageChanged.emit(newLanguage) return syntax is not None