Summary
The repository has no .vscode/ folder. Add the standard VS Code workspace configuration files used across DSC Community modules (aligned with SqlServerDsc) to provide a consistent developer experience for all contributors.
Files to create
.vscode/extensions.json
Recommended extensions for contributors:
{
"recommendations": [
"davidanson.vscode-markdownlint",
"pspester.pester-test",
"ms-vscode.powershell",
"streetsidesoftware.code-spell-checker"
]
}
.vscode/tasks.json
Replace the minimal workspace tasks with a comprehensive set aligned to the build.yaml workflow tasks. All tasks should use ./build.ps1 (not &${cwd}/build.ps1) and target pwsh on Linux/macOS and powershell.exe on Windows.
Tasks to include:
| Label |
Build group |
Command |
Notes |
noop |
— |
./build.ps1 -Tasks noop |
Resolves and restores dependencies; run once per pwsh session before testing |
build |
build (default) |
./build.ps1 -AutoRestore -Tasks build |
Full module build |
test |
test (default) |
./build.ps1 -Tasks noop; Invoke-Pester -Path './tests/Unit' -Output Detailed |
Unit tests without coverage |
test-with-coverage |
test |
./build.ps1 -Tasks noop; Invoke-Pester -Path './tests/Unit' -Output Detailed with coverage enabled |
Unit tests with code coverage |
hqrmtest |
— |
./build.ps1 -AutoRestore -Tasks hqrmtest -CodeCoverageThreshold 0 |
High Quality Resource Module (HQRM) QA tests |
Each task should include:
- A
problemMatcher for surfacing Pester failures in the VS Code Problems panel
"panel": "new" for build; "panel": "dedicated" for test tasks
"focus": true and "reveal": "always" on presentation
Use the tasks.json from SqlServerDsc as the reference and adapt the test task commands for this module's test path structure (tests/Unit/DSCResources/ and tests/Unit/Classes/ instead of tests/Unit/Public/, tests/Unit/Private/, etc.).
.vscode/settings.json
Workspace settings to enforce consistent formatting and tooling. Base on the SqlServerDsc settings.json and adapt:
- PowerShell code formatting —
openBraceOnSameLine: false, newLineAfterOpenBrace: true, 4-space indent, preset: Custom etc.
- PSScriptAnalyzer —
powershell.scriptAnalysis.settingsPath pointing to .vscode/analyzersettings.psd1
- Pester integration —
pester.testFilePath patterns covering tests/Unit/**/*.Tests.ps1 and tests/QA/*.Tests.ps1; pester.pesterModulePath: ./output/RequiredModules/Pester; pester.runTestsInNewProcess: true; powershell.pester.useLegacyCodeLens: false
- GitHub Copilot —
github.copilot.chat.codeGeneration.useInstructionFiles: true
- Editor —
files.trimTrailingWhitespace: true, files.insertFinalNewline: true, files.trimFinalNewlines: true
- cSpell —
cSpell.dictionaries: ["powershell"] with project-specific word list cleaned of SQL Server terms; add ComputerManagementDsc-relevant words
- Markdownlint —
markdownlint.ignore: [".github/CODEOWNERS"]
- Terminal profiles — default to
pwsh on Linux/macOS/Windows for consistent behavior with Copilot agent terminal
Remove all SQL Server–specific cSpell.words and cSpell.ignoreRegExpList entries from the SqlServerDsc source.
.vscode/analyzersettings.psd1
PSScriptAnalyzer settings file for the PowerShell extension's inline analysis. Base on the SqlServerDsc analyzersettings.psd1 and adapt:
CustomRulePath — keep ./output/RequiredModules/DscResource.AnalyzerRules and ./output/RequiredModules/Indented.ScriptAnalyzerRules; remove the SqlServerDsc-specific ./tests/QA/AnalyzerRules/SqlServerDsc.AnalyzerRules.psm1 entry (or replace with the equivalent path if this repo has custom analyzer rules)
IncludeDefaultRules: $true
- Keep the full
IncludeRules list of DSC Community standard rules (both default PSScriptAnalyzer rules and DSC-specific rules)
- Keep the
Rules hashtable for PSUseConsistentWhitespace, PSPlaceOpenBrace, PSPlaceCloseBrace, PSAlignAssignmentStatement
Acceptance criteria
References
Summary
The repository has no
.vscode/folder. Add the standard VS Code workspace configuration files used across DSC Community modules (aligned with SqlServerDsc) to provide a consistent developer experience for all contributors.Files to create
.vscode/extensions.jsonRecommended extensions for contributors:
{ "recommendations": [ "davidanson.vscode-markdownlint", "pspester.pester-test", "ms-vscode.powershell", "streetsidesoftware.code-spell-checker" ] }.vscode/tasks.jsonReplace the minimal workspace tasks with a comprehensive set aligned to the
build.yamlworkflow tasks. All tasks should use./build.ps1(not&${cwd}/build.ps1) and targetpwshon Linux/macOS andpowershell.exeon Windows.Tasks to include:
noop./build.ps1 -Tasks nooppwshsession before testingbuild./build.ps1 -AutoRestore -Tasks buildtest./build.ps1 -Tasks noop; Invoke-Pester -Path './tests/Unit' -Output Detailedtest-with-coverage./build.ps1 -Tasks noop; Invoke-Pester -Path './tests/Unit' -Output Detailedwith coverage enabledhqrmtest./build.ps1 -AutoRestore -Tasks hqrmtest -CodeCoverageThreshold 0Each task should include:
problemMatcherfor surfacing Pester failures in the VS Code Problems panel"panel": "new"forbuild;"panel": "dedicated"for test tasks"focus": trueand"reveal": "always"onpresentationUse the
tasks.jsonfrom SqlServerDsc as the reference and adapt the test task commands for this module's test path structure (tests/Unit/DSCResources/andtests/Unit/Classes/instead oftests/Unit/Public/,tests/Unit/Private/, etc.)..vscode/settings.jsonWorkspace settings to enforce consistent formatting and tooling. Base on the SqlServerDsc
settings.jsonand adapt:openBraceOnSameLine: false,newLineAfterOpenBrace: true, 4-space indent,preset: Custometc.powershell.scriptAnalysis.settingsPathpointing to.vscode/analyzersettings.psd1pester.testFilePathpatterns coveringtests/Unit/**/*.Tests.ps1andtests/QA/*.Tests.ps1;pester.pesterModulePath: ./output/RequiredModules/Pester;pester.runTestsInNewProcess: true;powershell.pester.useLegacyCodeLens: falsegithub.copilot.chat.codeGeneration.useInstructionFiles: truefiles.trimTrailingWhitespace: true,files.insertFinalNewline: true,files.trimFinalNewlines: truecSpell.dictionaries: ["powershell"]with project-specific word list cleaned of SQL Server terms; add ComputerManagementDsc-relevant wordsmarkdownlint.ignore: [".github/CODEOWNERS"]pwshon Linux/macOS/Windows for consistent behavior with Copilot agent terminalRemove all SQL Server–specific
cSpell.wordsandcSpell.ignoreRegExpListentries from the SqlServerDsc source..vscode/analyzersettings.psd1PSScriptAnalyzer settings file for the PowerShell extension's inline analysis. Base on the SqlServerDsc
analyzersettings.psd1and adapt:CustomRulePath— keep./output/RequiredModules/DscResource.AnalyzerRulesand./output/RequiredModules/Indented.ScriptAnalyzerRules; remove the SqlServerDsc-specific./tests/QA/AnalyzerRules/SqlServerDsc.AnalyzerRules.psm1entry (or replace with the equivalent path if this repo has custom analyzer rules)IncludeDefaultRules: $trueIncludeRuleslist of DSC Community standard rules (both default PSScriptAnalyzer rules and DSC-specific rules)Ruleshashtable forPSUseConsistentWhitespace,PSPlaceOpenBrace,PSPlaceCloseBrace,PSAlignAssignmentStatementAcceptance criteria
.vscode/extensions.jsoncreated with the four recommended extensions.vscode/tasks.jsoncreated withnoop,build,test,test-with-coverage, andhqrmtesttasks.vscode/tasks.jsontest task paths reflect this repo's unit test folder layout (tests/Unit/DSCResources/,tests/Unit/Classes/).vscode/settings.jsoncreated with PowerShell formatting, Pester, cSpell, Copilot instruction files, and terminal profile settings.vscode/settings.jsoncontains no SQL Server–specific words or patterns.vscode/analyzersettings.psd1created with DSC Community analyzer rules; no SqlServerDsc-specific custom rule pathReferences
.vscode/folder: https://github.com/dsccommunity/SqlServerDsc/tree/main/.vscodebuild.yamltask definitions in this repo