Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit eb07dce

Browse files
Include $ in PowerShell word separators
Add to troubleshooting guide how to modify this behavior and the reasoning behind the suggestions.
1 parent 88f9688 commit eb07dce

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

‎docs/troubleshooting.md‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,44 @@ Script analysis is provided by the [PSScriptAnalyzer] project on GitHub. If the
1717
message starts with `[PSScriptAnalyzer]` or if you are getting faulty script diagnostics
1818
(red and green squiggly lines under PowerShell in scripts) please [open an issue there].
1919

20+
## Double-click isn't selecting the whole variable
21+
22+
Visual Studio Code provides a default set of word separators, that is,
23+
characters that split words and so affect double-click selections. The editor's
24+
defaults include both `-` and `$`. In [v2021.5.1] we started providing a default
25+
value for PowerShell files that excludes these two symbols. The intention of
26+
this change was to increase predictability, as double-clicking PowerShell
27+
symbols would now select the same portion that the extension highlights as well
28+
as align with collected user feedback.
29+
30+
Different users have a variety of different preferences around these word
31+
selection settings and you can easily configure your own [word separators] in
32+
Visual Studio Code's settings.
33+
34+
We exclude `-` by default because unlike programming languages that use
35+
`CamelCase` or `snake_case`, PowerShell uses a `Verb-Noun` style where dashes
36+
are part of many symbol names (like underscores in other languages). So by
37+
excluding it we configure Visual Studio Code to treat `Verb-Noun` as one
38+
symbol/word, which matches what the extension semantically highlights when the
39+
cursor is placed within it.
40+
41+
We briefly excluded `$` by default too because PowerShell uses it as a prefix
42+
for variable substition, and many users were already excluding it. However, we
43+
could not find a strong consensus [#3378], so we reverted this exclusion.
44+
45+
To set the word separator behavior to separate words in PowerShell on `-` and
46+
`$` add the following entry to the Visual Studio Code's `settings.json`:
47+
48+
```json
49+
"[powershell]": {
50+
"editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?"
51+
}
52+
```
53+
54+
This will cause `-` and `$` to register as word boundaries, meaning for example
55+
that double-clicking on a letter in `$MyVariable` will not select the `$` and on
56+
the `G` in `Get-Process` will only select `Get` rather than the verb and noun.
57+
2058
## Problems with syntax highlighting
2159

2260
PowerShell syntax highlighting is performed in combintation by the [PowerShell Extension]
@@ -366,9 +404,11 @@ an issue on GitHub is appropriate.
366404
[semantic highlighting]: https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide
367405
[tackling an issue]: ./development.md
368406
[v2021.2.2]: https://github.com/PowerShell/vscode-powershell/releases/tag/v2021.2.2
407+
[v2021.5.1]: https://github.com/PowerShell/vscode-powershell/releases/tag/v2021.5.1
369408
[VSCode issue]: https://github.com/Microsoft/vscode/issues/42356
370409
[VSCode Settings]: https://code.visualstudio.com/docs/getstarted/settings
371410
[will break this compatibility]: https://github.com/PowerShell/vscode-powershell/issues/1310
411+
[word separators]: https://stackoverflow.com/questions/31632351/visual-studio-code-customizing-word-separators
372412
[Your installed PowerShell Extension version]: https://code.visualstudio.com/docs/editor/extension-gallery#_list-installed-extensions
373413
[your PowerShell version table]: http://www.powertheshell.com/topic/learnpowershell/firststeps/psversion/
374414
[Your VSCode version]: https://code.visualstudio.com/docs/supporting/FAQ#_how-do-i-find-the-vs-code-version
@@ -385,3 +425,4 @@ an issue on GitHub is appropriate.
385425
[#984]: https://github.com/PowerShell/vscode-powershell/issues/984
386426
[#3221]: https://github.com/PowerShell/vscode-powershell/issues/3221#issuecomment-810563456
387427
[#3295]: https://github.com/PowerShell/vscode-powershell/issues/3295
428+
[#3378]: https://github.com/PowerShell/vscode-powershell/issues/3378

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -899,7 +899,7 @@
899899
"[powershell]": {
900900
"debug.saveBeforeStart": "nonUntitledEditorsInActiveGroup",
901901
"editor.semanticHighlighting.enabled": false,
902-
"editor.wordSeparators": "`~!@#%^&*()=+[{]}\\|;:'\",.<>/?"
902+
"editor.wordSeparators": "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?"
903903
}
904904
},
905905
"themes": [

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /