Редактор Python от Stani - изменение цвета синтаксиса - PullRequest
3 голосов
/ 11 марта 2010

Глядя на Stani Python IDE , он определенно поставляется с множеством полезных функций. За исключением того, что это не позволяет мне делать пользовательские раскраски синтаксиса.

Из вопросов и ответов на сайте автора:

"- изменение цвета не поддерживается, если вы не редактируете вручную sm / wxp / stc.py"

Итак, я попытался проверить этот код самостоятельно в своем поиске идеальной полнофункциональной IDE.

Файл stc.py, похоже, является модификациями автора оригинального кода Робина Данна для wxPython. Кажется, во всей обработке событий скрыт код, определяющий цвет различных синтаксисов.

Все, что я хочу сделать, это изменить цвет фона на черный, изменить черные тексты на белый, и если все остальное отображается в этих двух новых цветах, я счастливый кодер.

Кто-нибудь пробовал это? Спасибо

редактировать: линии вокруг ~ 441

def SetStyles(self)

это те строки?

edit ^ 2: сможет ли кто-нибудь найти настройку цвета мигающего курсора? Или это что-то более "жесткое"?

edit ^ 3: Что у меня есть, изменяя шестнадцатеричные значения цвета из строки -441, в функции SetStyles.

    def SetStyles(self):
    # anti-aliasing
    if hasattr(self,'SetUseAntiAliasing'):
        self.SetUseAntiAliasing(True)

    #INDICATOR STYLES FOR ERRORS (self.errorMark)
    self.IndicatorSetStyle(2, wx_stc.STC_INDIC_SQUIGGLE)
    self.IndicatorSetForeground(2, wx.RED)

    #import dialogs.stcStyleEditor
    if 1:#dialogs.stcStyleEditor.SetStyles(self, self.config):
        self.StyleSetSpec(wx_stc.STC_P_DEFAULT, "face:%(mono)s,fore:#B0B0B0,size:%(size)d" % self.faces)
        self.StyleClearAll()

        # Global default styles for all languages  B0B0B0= gray
        self.StyleSetSpec(wx_stc.STC_STYLE_DEFAULT,     "face:%(mono)s,fore:#B0B0B0,back:#00000,size:%(size)d" % self.faces)
        self.StyleSetSpec(wx_stc.STC_STYLE_LINENUMBER,  "back:#C0C0C0,face:%(mono)s,size:%(size)d" % self.faces)
        self.StyleSetSpec(wx_stc.STC_STYLE_CONTROLCHAR, "face:%(mono)s,fore:#B0B0B0" % self.faces)
        self.StyleSetSpec(wx_stc.STC_STYLE_BRACELIGHT,  "fore:#B0B0B0,back:#0000FF,bold")
        self.StyleSetSpec(wx_stc.STC_STYLE_BRACEBAD,    "fore:#B0B0B0,back:#FF0000,bold")

        # Python styles
        # White space
        self.StyleSetSpec(wx_stc.STC_P_DEFAULT, "face:%(mono)s,fore:#000000,back:#000000,size:%(size)d" % self.faces)
        # Comment
        self.StyleSetSpec(wx_stc.STC_P_COMMENTLINE, "face:%(mono)s,fore:#F70909,back:#000000,italic,size:%(size)d" % self.faces)
        # Number
        self.StyleSetSpec(wx_stc.STC_P_NUMBER, "face:%(mono)s,fore:#FFFFFF,size:%(size)d" % self.faces)
        # String
        self.StyleSetSpec(wx_stc.STC_P_STRING, "face:%(mono)s,fore:#34C640,size:%(size)d" % self.faces)
        # Single quoted string
        self.StyleSetSpec(wx_stc.STC_P_CHARACTER, "face:%(mono)s,fore:#43AB4E,size:%(size)d" % self.faces)
        # Keyword (Class, def, etc.)
        self.StyleSetSpec(wx_stc.STC_P_WORD, "face:%(mono)s,fore:#FF9100,bold,size:%(size)d" % self.faces)
        # Triple quotes
        self.StyleSetSpec(wx_stc.STC_P_TRIPLE, "face:%(mono)s,fore:#7F0000,size:%(size)d" % self.faces)
        # Triple double quotes
        self.StyleSetSpec(wx_stc.STC_P_TRIPLEDOUBLE, "face:%(mono)s,fore:#7F0000,size:%(size)d" % self.faces)
        # Class name definition (Name of the class)
        self.StyleSetSpec(wx_stc.STC_P_CLASSNAME, "face:%(mono)s,fore:#00AEFF,bold,size:%(size)d" % self.faces)
        # Function or method name definition (bright blue = #0011FF)
        self.StyleSetSpec(wx_stc.STC_P_DEFNAME, "face:%(mono)s,fore:#FFFF00,bold,size:%(size)d" % self.faces)
        # Operators (+ - /)
        self.StyleSetSpec(wx_stc.STC_P_OPERATOR, "face:%(mono)s,fore:#FFFFFF,bold,size:%(size)d" % self.faces)
        # Identifiers (this was all the same color - > self.SetTopWindow(self.frame))
        self.StyleSetSpec(wx_stc.STC_P_IDENTIFIER, "fore:#FFFFFF")
        # Comment-blocks
        self.StyleSetSpec(wx_stc.STC_P_COMMENTBLOCK, "face:%(mono)s,fore:#990000,back:#C0C0C0,italic,size:%(size)d" % self.faces)
        # End of line where string is not closed
        self.StyleSetSpec(wx_stc.STC_P_STRINGEOL, "face:%(mono)s,fore:#B1CCB0,face:%(mono)s,back:#E0C0E0,eol,size:%(size)d" % self.faces)

при этом используется черный фон, а другие цвета становятся ярче.

Осталось вопросов:

1. Идентификаторы классов («self.», «Classname.» И т. Д.) Имеют тот же цвет, что и текст после «.», Но таков исходный идентификатор, не думаю, что это изменилось (легко, во всяком случае) 2. Маркер положения курсора мыши (мигающий «|») по-прежнему черный, который становится невидимым на новом фоне. 3. Поддерживает ли это приложение переменные с наведением мыши и всплывающее описание происхождения переменных (как в pyscripter)?

1 Ответ

0 голосов
/ 18 марта 2010

Код, который я упоминал выше, в основном решает проблему, поэтому я закрою проблему.

...