Setup syntax highlighting for the raw text editor.
(self)
| 1988 | self.buffer.apply_tag(self.tag_changed, start_iter, end_iter) |
| 1989 | |
| 1990 | def _setup_syntax_highlighting(self): |
| 1991 | """Setup syntax highlighting for the raw text editor.""" |
| 1992 | if not self.raw_text_view: |
| 1993 | return |
| 1994 | |
| 1995 | try: |
| 1996 | source_buffer = self.raw_text_view.get_buffer() |
| 1997 | if not source_buffer: |
| 1998 | return |
| 1999 | |
| 2000 | self.buffer = source_buffer |
| 2001 | |
| 2002 | if not isinstance(source_buffer, GtkSource.Buffer): |
| 2003 | return |
| 2004 | |
| 2005 | language_manager = GtkSource.LanguageManager.get_default() |
| 2006 | |
| 2007 | ssh_language_ids = [ |
| 2008 | "ssh-config", |
| 2009 | "ssh_config", |
| 2010 | "sshconfig", |
| 2011 | "ssh", |
| 2012 | "config", |
| 2013 | "ini", |
| 2014 | ] |
| 2015 | |
| 2016 | language = None |
| 2017 | for lang_id in ssh_language_ids: |
| 2018 | language = language_manager.get_language(lang_id) |
| 2019 | if language: |
| 2020 | break |
| 2021 | |
| 2022 | if not language: |
| 2023 | language = language_manager.get_language( |
| 2024 | "ini" |
| 2025 | ) or language_manager.get_language("config") |
| 2026 | |
| 2027 | if language: |
| 2028 | source_buffer.set_language(language) |
| 2029 | |
| 2030 | style_manager = GtkSource.StyleSchemeManager.get_default() |
| 2031 | style_scheme = ( |
| 2032 | style_manager.get_scheme("dark") |
| 2033 | or style_manager.get_scheme("Adwaita-dark") |
| 2034 | or style_manager.get_scheme("default") |
| 2035 | ) |
| 2036 | |
| 2037 | if style_scheme: |
| 2038 | source_buffer.set_style_scheme(style_scheme) |
| 2039 | |
| 2040 | except Exception as e: |
| 2041 | print(f"Warning: Could not setup syntax highlighting: {e}") |
| 2042 | pass |