The entrypoint to syntax highlighting in Spyder IDE is located in CodeEditor widget at spyderlib/widgets/sourcecode/codeeditor.py
CodeEditor widget is basically file content in one of main tabs. The whole stack of tabs is called EditorStack. So editors are grouped in editor stacks, each editor renders one file, and each editor has its own highligher created from assigned self.highlighter_class
Highlighers are implemented with Qt's QSyntaxHighlighter. No pygments, nothing like this, so can't say if Qt is faster, but it should be. Default self.highligher_class for every code editor is TextSH. The actual instance is created by set_language() method called from setup_editor(). If setup_editor() is not called, the highlighter can be unset, but frankly I don't know what's the purpose of using such editor.
if set, syntax highlighter (self.highlighter) is responsible for:
- coloring raw text data inside editor on load
- coloring text data when editor is cloned
- updating document highlight on line edits
- providing color palette (scheme) for the editor
- providing data for Outliner
- background highlight for current line
- background highlight for search / current line occurrences
Enjoy hacking.
No comments:
Post a Comment