mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-14 11:39:16 +08:00
b2b2856e52
* Upgraded projects to target .NET 8 * Updated .NET runtime package targets to use latest .NET 8 build * Updated PowerToys Interop to target .NET 8 * Switch to use ArgumentNullException.ThrowIfNull * ArgumentNullException.ThrowIfNull for CropAndLockViewModel * Switching to ObjectDisposedException.ThrowIf * Upgrade System.ComponentModel.Composition to 8.0 * ArgumentNullException.ThrowIfNull in Helper * Switch to StartsWith using StringComparison.Ordinal * Disabled CA1859, CA1716, SYSLIB1096 analyzers * Update RIDs to reflect breaking changes in .NET 8 * Updated Microsoft NuGet packages to RC1 * Updated Analyzer package to latest .NET 8 preview package * CA1854: Use TryGetValue instead of ContainsKey * [Build] Update TFM to .NET 8 for publish profiles * [Analyzers] Remove CA1309, CA1860-CA1865, CA1869, CA2208 from warning. * [Analyzers] Fix for C26495 * [Analyzers] Disable CS1615, CS9191 * [CI] Target .NET 8 in YAML * [CI] Add .NET preview version flag temporarily. * [FileLocksmith] Update TFM to .NET 8 * [CI] Switch to preview agent * [CI] Update NOTICE.md * [CI] Update Release to target .NET 8 and use Preview agent * [Analyzers] Disable CA1854 * Fix typo * Updated Microsoft.CodeAnalysis.NetAnalyzers to latest preview Updated packages to rc2 * [Analyzers][CPP] Turn off warning for 5271 * [Analyzers][CPP] Turn off warning for 26493 * [KeyboardListener] Add mutex include to resolve error * [PT Run][Folder] Use static SearchValues to resolve CA1870 * [PowerLauncher] Fix TryGetValue * [MouseJumpSettings] Use ArgumentNullException.ThrowIfNull * [Build] Disable parallel dotnet tool restore * [Build] No cache of dotnet tool packages * [Build] Temporarily move .NET 8 SDK task before XAML formatting * [Build][Temp] Try using .NET 7 prior to XAML formatting and then switch to .NET 8 after * [Build] Use .NET 6 for XAML Styler * [CI] Updated NOTICE.md * [FancyZones] Update TFM to .NET 8 * [EnvVar] Update TFM to .NET 8 and update RID * [EnvVar] Use ArgumentNullException.ThrowIfNull * [Dev] Updated packages to .NET 8 RTM version * [Dev] Updated Microsoft.CodeAnalysis.NetAnalyzers to latest * [CI] Updated NOTICE.md with latest package versions * Fix new utility target fameworks and runtimeids * Don't use preview images anymore * [CI] Add script to update VCToolsVersion environment variable * [CI] Add Step to Verify VCToolsVersion * [CI] Use latest flag for vswhere to set proper VCToolsVersion * Add VCToolsVersion checking to release.yml * Remove net publishing from local/ PR CI builds * Revert "Remove net publishing from local/ PR CI builds" This reverts commitf469778996
. * Only publish necessary projects * Add verbosity to release pipelines builds of PowerTOys * Set VCToolsVersion for publish.cmd when called from installer * [Installer] Moved project publish logic to MSBuild Task * [CI] Revert using publish.cmd * [CI] Set VCToolsVersion and unset ClearDevCommandPromptEnvVars property * Installer publishes for x64 too * Revert "Add verbosity to release pipelines builds of PowerTOys" This reverts commit654d4a7f78
. * [Dev] Update CodeAnalysis library to non-preview package * Remove unneeded warning removal * Fix Notice.md * Rename VCToolsVersion file and task name * Remove unneeded mutex header include --------- Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
129 lines
4.0 KiB
PowerShell
129 lines
4.0 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
Modify XAML files to adhere to XAML Styler settings.
|
|
|
|
.DESCRIPTION
|
|
The Apply XAML Stying Script can be used to check or modify XAML files with the repo's XAML Styler settings.
|
|
Learn more about XAML Styler at https://github.com/Xavalon/XamlStyler
|
|
|
|
By default, uses git status to check all new or modified files.
|
|
|
|
Use "PS> Help .\applyXamlStyling.ps1 -Full" for more details on parameters.
|
|
|
|
.PARAMETER LastCommit
|
|
Runs against last commit vs. current changes
|
|
|
|
.PARAMETER Unstaged
|
|
Runs against unstaged changed files
|
|
|
|
.PARAMETER Staged
|
|
Runs against staged files vs. current changes
|
|
|
|
.PARAMETER Main
|
|
Runs against main vs. current branch
|
|
|
|
.PARAMETER Passive
|
|
Runs a passive check against all files in the repo for the CI
|
|
|
|
.EXAMPLE
|
|
PS> .\applyXamlStyling.ps1 -Main
|
|
#>
|
|
param(
|
|
[switch]$LastCommit = $false,
|
|
[switch]$Unstaged = $false,
|
|
[switch]$Staged = $false,
|
|
[switch]$Main = $false,
|
|
[switch]$Passive = $false
|
|
)
|
|
|
|
Write-Output "Use 'Help .\applyXamlStyling.ps1' for more info or '-Main' to run against all files."
|
|
Write-Output ""
|
|
Write-Output "Restoring dotnet tools..."
|
|
dotnet tool restore --disable-parallel --no-cache
|
|
|
|
if (-not $Passive)
|
|
{
|
|
# Look for unstaged changed files by default
|
|
$gitDiffCommand = "git status -s --porcelain"
|
|
|
|
if ($Main)
|
|
{
|
|
Write-Output 'Checking Current Branch against `main` Files Only'
|
|
$branch = git status | Select-String -Pattern "On branch (?<branch>.*)$"
|
|
if ($null -eq $branch.Matches)
|
|
{
|
|
$branch = git status | Select-String -Pattern "HEAD detached at (?<branch>.*)$"
|
|
if ($null -eq $branch.Matches)
|
|
{
|
|
Write-Error 'Don''t know how to fetch branch from `git status`:'
|
|
git status | Write-Error
|
|
exit 1
|
|
}
|
|
}
|
|
$branch = $branch.Matches.groups[1].Value
|
|
$gitDiffCommand = "git diff origin/main $branch --name-only --diff-filter=ACM"
|
|
}
|
|
elseif ($Unstaged)
|
|
{
|
|
# Look for unstaged files
|
|
Write-Output "Checking Unstaged Files"
|
|
$gitDiffCommand = "git diff --name-only --diff-filter=ACM"
|
|
}
|
|
elseif ($Staged)
|
|
{
|
|
# Look for staged files
|
|
Write-Output "Checking Staged Files Only"
|
|
$gitDiffCommand = "git diff --cached --name-only --diff-filter=ACM"
|
|
}
|
|
elseif ($LastCommit)
|
|
{
|
|
# Look at last commit files
|
|
Write-Output "Checking the Last Commit's Files Only"
|
|
$gitDiffCommand = "git diff HEAD^ HEAD --name-only --diff-filter=ACM"
|
|
}
|
|
else
|
|
{
|
|
Write-Output "Checking Git Status Files Only"
|
|
}
|
|
|
|
Write-Output "Running Git Diff: $gitDiffCommand"
|
|
$files = Invoke-Expression $gitDiffCommand | Select-String -Pattern "\.xaml$"
|
|
|
|
if (-not $Passive -and -not $Main -and -not $Unstaged -and -not $Staged -and -not $LastCommit)
|
|
{
|
|
# Remove 'status' column of 3 characters at beginning of lines
|
|
$files = $files | ForEach-Object { $_.ToString().Substring(3) }
|
|
}
|
|
|
|
if ($files.count -gt 0)
|
|
{
|
|
dotnet tool run xstyler -c "$PSScriptRoot\..\Settings.XamlStyler" -f $files
|
|
}
|
|
else
|
|
{
|
|
Write-Output "No XAML Files found to style..."
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Write-Output "Checking all files (passively)"
|
|
$files = Get-ChildItem -Path "$PSScriptRoot\..\src\*.xaml" -Recurse | Select-Object -ExpandProperty FullName | Where-Object { $_ -notmatch "(\\obj\\)|(\\bin\\)|(\\x64\\)|(\\Generated Files\\PowerRenameXAML\\)|(\\launcher\\PowerLauncher\\)|(\\launcher\\Wox.Plugin\\)|(\\colorPicker\\ColorPickerUI\\)" }
|
|
|
|
if ($files.count -gt 0)
|
|
{
|
|
dotnet tool run xstyler -p -c "$PSScriptRoot\..\Settings.XamlStyler" -f $files
|
|
|
|
if ($lastExitCode -eq 1)
|
|
{
|
|
Write-Error 'XAML Styling is incorrect, please run `.\.pipelines\applyXamlStyling.ps1 -Main` locally.'
|
|
}
|
|
|
|
# Return XAML Styler Status
|
|
exit $lastExitCode
|
|
}
|
|
else
|
|
{
|
|
exit 0
|
|
}
|
|
}
|