apple-swift-format: linter and fixer with config swiftpm support (#3671)

This commit is contained in:
bosr
2021-04-07 12:34:34 +02:00
committed by GitHub
parent 06f57ca973
commit f0887d3e61
14 changed files with 265 additions and 92 deletions

View File

@@ -0,0 +1,42 @@
Before:
call ale#assert#SetUpLinterTest('swift', 'appleswiftformat')
After:
call ale#assert#TearDownLinterTest()
Execute(Should use default command when use_swiftpm is not set):
call ale#test#SetFilename('../test-files/swift/non-swift-package-project/src/folder/dummy.swift')
let g:ale_swift_appleswiftformat_executable = 'swift-format'
let g:ale_swift_appleswiftformat_use_swiftpm = 0
AssertLinter 'swift-format', ale#Escape('swift-format') . ' lint %t'
Execute(Should use default command and available configuration when use_swiftpm is not set):
call ale#test#SetDirectory('/testplugin/test/test-files/swift/swift-package-project-with-config')
call ale#test#SetFilename('src/folder/dummy.swift')
let g:ale_swift_appleswiftformat_executable = 'swift-format'
let g:ale_swift_appleswiftformat_use_swiftpm = 0
AssertLinter 'swift-format',
\ ale#Escape('swift-format') . ' lint %t ' . '--configuration '
\ . glob(g:dir . '/.swift-format')
call ale#test#RestoreDirectory()
Execute(Should use swift run when use_swiftpm is set to 1):
call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift')
let g:ale_swift_appleswiftformat_use_swiftpm = 1
AssertLinter 'swift', ale#Escape('swift') . ' run swift-format lint %t'
Execute(Should use the provided global executable):
call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift')
let g:ale_swift_appleswiftformat_executable = '/path/to/custom/swift-format'
let g:ale_swift_appleswiftformat_use_swiftpm = 0
AssertLinter '/path/to/custom/swift-format',
\ ale#Escape('/path/to/custom/swift-format') . ' lint %t'

View File

@@ -1,25 +0,0 @@
Before:
call ale#assert#SetUpLinterTest('swift', 'swiftformat')
After:
call ale#assert#TearDownLinterTest()
Execute(Should use default command when not in a swift package):
call ale#test#SetFilename('../test-files/swift/non-swift-package-project/src/folder/dummy.swift')
AssertLinter 'swift-format',
\ ale#Escape('swift-format') . ' --mode lint %t'
Execute(Should use swift run when in a swift package):
call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift')
AssertLinter 'swift',
\ ale#Escape('swift') . ' run swift-format --mode lint %t'
Execute(Should let users configure a global executable and override local paths):
call ale#test#SetFilename('../test-files/swift/swift-package-project/src/folder/dummy.swift')
let g:ale_swift_swiftformat_executable = '/path/to/custom/swift-format'
AssertLinter '/path/to/custom/swift-format',
\ ale#Escape('/path/to/custom/swift-format') . ' --mode lint %t'