在Notepad++中更改函数工具提示的背景颜色

6

我已经阅读了以下内容,但这不是问题所在。

如何在Notepad++文本编辑器中更改背景颜色?

我正在使用Notepad++编写Python代码,并应用了深黑色主题,其中有黑色背景和白色文本颜色。

在输入函数时,它会显示具有白色背景的工具提示中的函数语法,这与Notepad的黑色背景形成对比

GIF explaining flickering effect.

我已经在样式配置器中搜索过了,但没有找到。

我该如何更改工具提示的背景颜色?

1个回答

4
Notepad++使用Scintilla作为其编辑器组件。调用提示功能直接来自Scintilla。对于在Notepad++ GUI中没有直接配置选项的scintilla功能(调用提示样式似乎是这样的一个功能),您需要一种方法向Scintilla发送消息。除了编写插件之外,我所知道的唯一方法是使用NppExec插件。它提供了SCI_SENDMSG命令。scintilla网站提供了有关每个可能消息的详细文档。对于您的用例,它说:
调用提示是显示函数参数的小窗口,用户键入函数名称后显示。它们通常使用由STYLE_DEFAULT定义的字体facename、大小和字符集来显示字符。您可以选择使用STYLE_CALLTIP来定义facename、大小、前景色和背景颜色以及字符集,并使用SCI_CALLTIPUSESTYLE启用对Tab字符的支持。调用提示与自动完成列表之间存在一些交互作用,即显示调用提示会取消任何活动的自动完成列表,反之亦然。
因此,我们需要发送SCI_CALLTIPUSESTYLE消息,并继续阅读网站上的内容,我们可以使用SCI_CALLTIPSETBACK和SCI_CALLTIPSETFORE来配置前景色和背景颜色。
因此,要通过向Scintilla编辑器组件发送消息来设置调用提示的颜色,您需要执行以下操作:
  1. install NppExec with the PluginManager or from PluginCentral. The NppExec zip file contains the dll and some subdirectories. When installing/upgrading into Notepad++ plugin directory, take care that the subdirectories NppExec is created under the plugins directory (just unzip the file into the plugins directory). The NppExec directory contains the file Scintilla.hwhich has all the definitions for the possible messages.

  2. store these lines as a NppExec script (Plugins -> NppExec -> Execute... , enter the following lines and select save, e.g. as SetCallTipStlye):

    // use CALLTIPSTYLE instead DEFAULT
    SCI_SENDMSG SCI_CALLTIPUSESTYLE 0
    // background to black ( 0 )
    SCI_SENDMSG SCI_CALLTIPSETBACK 0
    // foreground to white ( 0xffffff )
    SCI_SENDMSG SCI_CALLTIPSETFORE 0xffffff
    
  3. execute the script with OK

现在你的提示窗口应该是黑底白字的,如果需要,您可以通过更改参数来采用这些颜色。
如果一切都按照您的期望工作,那么在高级选项中Plugins->NppExec中,配置对话框的右上角将提供选项“Notepad ++启动时执行此脚本”。选择您保存该行的脚本名称(例如SetCallTipStlye)。
不幸的是,我还没有找到如何配置自动完成样式的方法。我希望它使用与提示窗口样式相同的样式,但是自动完成仍然是黑底白字的。

我按照所有步骤安装了插件。当NPP在控制台中启动时,它显示以下错误:[- uMsg为0(没有消息发送)](https://s26.postimg.org/vbupc28eh/Untitled.png) - Rahul
当我使用SCI_SENDMSG FOO时,例如未知/无效消息,我会收到相同的错误消息。 我正在使用版本为NppExec ver. 0.5.3 Unicode for Notepad++ ver. 5.1+(插件-> NppExec-> 帮助/关于)的Notepad++ v7.5.1(32位)(?->关于Notepad ++)。 您获得了哪个版本信息以获取Notepad ++和NppExec? - Lars Fischer
我有相同的版本,即“NppExec ver. 0.5.3 Unicode for Notepad++ ver. 5.1+在Notepad++ v7.5.1(32位)中”。 - Rahul
1
除此之外,我在Scintilla上找不到SCI_SENDMSG的文档。你能告诉我在哪里可以找到吗? - Rahul
在更改目录结构后,它可以工作了。我已经在答案中添加了这个。非常感谢您的研究。 - Rahul
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接