Where is the default settings.json or keybindings.json ? There isn’t one, because it’s dynamically generated.
When you run run the ‘default settings’ command, it builds a new one — this means it’s always up to date. It includes settings from all enabled addons.
Command Palette: The Only Hotkey You Need to Remember.
Can’t remember what key formats without saving? No problem, f1
-> forsave
and it will come up.
Go to Symbol: The Secret to Navigating giant JSON files
It’s better than using a regular search ctrl+f
. If you searched for ‘fontsize’ not only will you get every setting, but, lots of comments as well. When there’s duplicate settings, the bottom one has priority. If you like customizing, you may end up with duplicated keys. This instantly lets shows you which is the final one. Even if they are 3000 lines apart.
Control+Space: The 2nd Best Hotkey
As you’re editing, ctrl+space
will fuzzy search every possible setting. Hit it a 2nd time to toggle the documentation.
Searching Keybindings by Name or Command by name
Suggested PowerShell Config
I tried keeping it short, I recommend checking these settings for PowerShell.
If you want to control autocomplete
or suggestion
s , this config has notes on some properties to check out.
{
// this file is almost the same as
//<https://github.com/ninmonkey/dotfiles_git/blob/614fc06cd8b989e8438cba6cae648605fae2491a/vscode/User/nin10/Code/minimum-config/powershell.settings.json>
"workbench.settings.editor": "json", // good for editing, [ctrl+,]
// will by default open your global settings as JSON instead of UI
// improve code quality
"powershell.codeFormatting.autoCorrectAliases": true,
"powershell.codeFormatting.useConstantStrings": true,
"powershell.codeFormatting.useCorrectCasing": true,
// I have this enabled for most languages
"editor.formatOnSave": true,
// some people are pretty polarized on which style to use,
// So I have both styles and variants to try
"editor.wordSeparators": "`~!@#%^&*()=+[{]}\\|;:'\",.<>/?", // combine $ and -
"editor.wordSeparators": "`~!@#%^&*()-=+[{]}\\|;:'\",.<>/?", // causes splat-expression etc to break
"editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?", // break on $ and -
"editor.wordSeparators": "`~!@#%^&*()=+[{]}\\|;:'\",.<>/?", // combine $ and -
"editor.wordSeparators": "`~!@#%^&*()-=+[{]}\\|;:'\",.<>/?",
// If you don't like snippets, you can disable them for as specific language, leaving the others
// the blog isn't rendering the next line, it should say
// "[power shell]" as the key If you don't like snippets, you can disable them for as specific language, leaving the others
"[powershell]": {
"editor.semanticHighlighting.enabled": false,
"editor.snippetSuggestions": "bottom",
"editor.snippetSuggestions": "none",
"files.encoding": "utf8bom",
"files.trimTrailingWhitespace": true,
},
/*
Adds autocompletion and validation to any .Format.ps1xml and .Types.ps1xml files.
It uses the addon: 'redhat.vscode-xml'
*/
"editor.suggest.preview": true, // interesting but can be jarring
],
"powershell.integratedConsole.suppressStartupBanner": true,
"powershell.powerShellDefaultVersion": "PowerShell (x64)",
"powershell.promptToUpdatePowerShell": false,
// Specifies the path to a PowerShell Script Analyzer settings file. To override the default settings for all projects, enter an absolute path, or enter a path relative to your workspace.
"powershell.scriptAnalysis.settingsPath": "C:/Users/monkey/Documents/2021/dotfiles_git/powershell/PSScriptAnalyzerSettings.psd1",
// "powershell.scriptAnalysis.settingsPath
// Autocomplete and a schema/validation for
// powershell's "types.ps1xml" and "format.ps1xml" files
"xml.fileAssociations": [
{
"systemId": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Format.xsd",
"pattern": "**/*.Format.ps1xml"
},
{
"systemId": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Types.xsd",
"pattern": "**/*.Types.ps1xml"
}
}
Error Lens
"errorLens.followCursor": "closestProblem",
"errorLens.followCursorMore": 2,
One of the extensions from Justin Grote’s addon pack is the error lens. I like it, after reducing the visual noise. You can
- hide or make icons in the gutter smaller and transparent
- only show the closest X messages
- delay a second before running
- my muted error lens theme and Justin Grote’s error lens customizations (discord thread)
See More:
- using Snippets
- Terminal Settings and Commands or Keys to skip the shell
- Keybinding.json config
- My Snippets.json templates
- My muted error lens theme
- My main settings.json ( Warning: I experiment a lot, so it’s huge, and duplicate lines that make toggling between settings quicker )
For customizing themes, check out these settings. There’s different sections depending on if semantic color
is enabled
"editor.semanticTokenColorCustomizations": { ... },
"editor.tokenColorCustomizations": { ... },