c37a013157
Unsurprisingly it doesn't support AngelScript, so the Java language mode is used instead. The overall result seems good, but there's one problem: Long statements starting with `@something = ` (object handle assignment) are broken after the `@`. To work-around this, I had to set `ColumnLimit` to `100`.
38 lines
1.0 KiB
PowerShell
Executable File
38 lines
1.0 KiB
PowerShell
Executable File
#!/usr/bin/env pwsh
|
|
param(
|
|
[string]$SourceDirectory = ".",
|
|
[string]$ClangFormat = "clang-format"
|
|
)
|
|
|
|
# TODO: Run clang-format on C++ source files
|
|
|
|
# Run clang-format on AngelScript source files
|
|
$ScriptDirectory = Join-Path $SourceDirectory "Resources" "Scripts"
|
|
$Scripts = Get-ChildItem -Recurse -Include "*.as" $ScriptDirectory
|
|
|
|
$I = 0
|
|
foreach ($Item in $Scripts) {
|
|
$Path = $Item.FullName
|
|
$TmpPath = $Path.Substring(0, $Path.Length - 3) + ".java"
|
|
|
|
# Make it pretend to be a Java source file (which clang-format understands)
|
|
# I didn't choose C++ mainly due to the difference in how accessibility is
|
|
# specified.
|
|
Copy-Item $Path $TmpPath
|
|
|
|
# Run clang-format
|
|
&$ClangFormat -i -style=file $TmpPath
|
|
|
|
# Rename it back
|
|
Move-Item -Force $TmpPath $Path
|
|
|
|
# Fix `@ this.`
|
|
$Text = Get-Content $Path
|
|
$Text = $Text.Replace("@ this.", "@this.")
|
|
Set-Content $Path $Text
|
|
|
|
$I += 1
|
|
Write-Progress -Activity "Running clang-format on AngelScript source files" `
|
|
-PercentComplete ($I / $Scripts.Count * 100)
|
|
}
|