VSCode - 有没有办法自定义双击 select 行为?

VSCode - Is there a way to customise double-click select behaviour?

特别适用于 php,传统上在其他编辑器(例如 np++)中,当您双击一个变量名称时,例如,它会 select 只是没有 '$' 的名称。在 VSCode 中,它 select 是变量名加上“$”,如果有的话,通常还有一个尾部“-”。

$foo->bar();

当前行为:

双击 'foo' selects:

$foo-

期望的行为:

双击 'foo' selects:

foo

编辑:这是 github 问题:https://github.com/Microsoft/vscode/issues/2036

extensibility API for changing double click behavior. Its a good request though. I suggest opening an issue on Github 中没有关于它的内容。现在没有,团队可以使用反馈。

由于这个 issue 已经解决,所以值得添加这个答案。

您现在可以通过修改 "editor.wordSeparators" 设置在您的设置中完成此操作。

这里是默认值:

"editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\|;:'\",.<>/?"

要允许选择 $foo,您可以从上面的字符串中删除 $

如果您想获得与 Douglas Gaskill 在他的回答中分享的结果相同的结果,但在每种语言的基础上,这也是可能的。

您只需指定语言,如下所示(在您的用户设置中)。因为最初的发帖者想要这个 php 我将使用那个例子:

 "[php]": {
            "editor.wordSeparators": "`~!@#%^&*()=+[{]}\|;:'\",.<>/?",
        }

在这个具体的例子中,只有当编辑器是设置为 PHP 语言模式。

此外,对于那些刚接触这个的人...

在某个阶段 VSCode 开始显示用于编辑设置的 GUI(我不记得以前见过),这将不允许您编辑 editor.wordSeparators 中的值按照我指出的方式。

要按照我指出的方式进行更改,您需要从 [=15] 打开 设置 not =](在 Mac 上,不确定它在其他操作系统上的外观),而是从命令托盘(在 Mac 上,即 Command-shift-P)或 View > Command Pallet。命令为>Preferences: Open Settings (JSON).

然后您可以添加我提供的代码或您的版本。

要了解在其他设置的上下文中是什么样子,请看下面的示例:

// Place your settings in this file to overwrite the default settings
{
    "composer.executablePath": "/usr/local/bin/composer",
    "terminal.integrated.shell.osx": "/usr/local/bin/powershell",
    "editor.wordWrap": "on",
    "extensions.autoUpdate": false
    "[php]": {
            "editor.wordSeparators": "`~!@#%^&*()=+[{]}\|;:'\",.<>/?",
        }
}