【问题标题】:Stani's python editor- change syntax coloringStani 的 python 编辑器 - 更改语法着色
【发布时间】:2011-01-26 04:19:12
【问题描述】:

看看Stani's Python IDE,它肯定捆绑了大量有用的功能。除非它不允许我进行自定义语法着色。

来自作者网站上的问答:

"- 不支持更改颜色,除非您手动编辑 sm/wxp/stc.py"

因此,在寻求完美的全功能 IDE 时,我尝试亲自检查该代码。

stc.py 文件似乎是作者对 Robin Dunn 的 wxPython 原代码的修改。隐藏在所有事件处理中的似乎是确定各种语法颜色的代码。

我要做的就是将背景颜色更改为黑色,将黑色文本更改为白色,如果这两种新颜色下其他所有内容仍然显示,我是一个快乐的编码员。

有人试过吗?谢谢

编辑:~441 周围的行

def SetStyles(self)

是那些台词吗?

edit^2:有人能找到光标闪烁颜色设置吗?还是那是一些“更多”的硬编码?

edit^3:到目前为止,我在 SetStyles 函数中修改了第 -441 行的十六进制颜色值。

    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 中)?

【问题讨论】:

    标签: python editor syntax-highlighting customization


    【解决方案1】:

    我上面提到的代码基本解决了这个问题,所以我会关闭这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 2010-11-16
      • 2015-08-21
      相关资源
      最近更新 更多