summaryrefslogtreecommitdiff
path: root/ale_linters/swift/swiftformat.vim
diff options
context:
space:
mode:
authorbosr <bosr@users.noreply.github.com>2021-04-07 12:34:34 +0200
committerGitHub <noreply@github.com>2021-04-07 19:34:34 +0900
commitf0887d3e6178482255f11aa378124aef3699245f (patch)
treece9b0300de08ab7220ab63ed4e857da876367f9f /ale_linters/swift/swiftformat.vim
parent06f57ca9733aab6e6b67015917fdfd4bf1c70c48 (diff)
downloadale-f0887d3e6178482255f11aa378124aef3699245f.zip
apple-swift-format: linter and fixer with config swiftpm support (#3671)
Diffstat (limited to 'ale_linters/swift/swiftformat.vim')
-rw-r--r--ale_linters/swift/swiftformat.vim62
1 files changed, 0 insertions, 62 deletions
diff --git a/ale_linters/swift/swiftformat.vim b/ale_linters/swift/swiftformat.vim
deleted file mode 100644
index 2504511a..00000000
--- a/ale_linters/swift/swiftformat.vim
+++ /dev/null
@@ -1,62 +0,0 @@
-" Author: Klaas Pieter Annema <https://github.com/klaaspieter>
-" Description: Support for swift-format https://github.com/apple/swift-format
-
-let s:default_executable = 'swift-format'
-call ale#Set('swift_swiftformat_executable', s:default_executable)
-
-function! ale_linters#swift#swiftformat#UseSwift(buffer) abort
- let l:swift_config = ale#path#FindNearestFile(a:buffer, 'Package.swift')
- let l:executable = ale#Var(a:buffer, 'swift_swiftformat_executable')
-
- return !empty(l:swift_config) && l:executable is# s:default_executable
-endfunction
-
-function! ale_linters#swift#swiftformat#GetExecutable(buffer) abort
- if ale_linters#swift#swiftformat#UseSwift(a:buffer)
- return 'swift'
- endif
-
- return ale#Var(a:buffer, 'swift_swiftformat_executable')
-endfunction
-
-function! ale_linters#swift#swiftformat#GetCommand(buffer) abort
- let l:executable = ale_linters#swift#swiftformat#GetExecutable(a:buffer)
- let l:args = '--mode lint %t'
-
- if ale_linters#swift#swiftformat#UseSwift(a:buffer)
- let l:args = 'run swift-format' . ' ' . l:args
- endif
-
- return ale#Escape(l:executable) . ' ' . l:args
-endfunction
-
-function! ale_linters#swift#swiftformat#Handle(buffer, lines) abort
- " Matches lines of the following pattern:
- "
- " Sources/main.swift:4:21: warning: [DoNotUseSemicolons]: remove ';' and move the next statement to the new line
- " Sources/main.swift:3:12: warning: [Spacing]: remove 1 space
- let l:pattern = '\v^.*:(\d+):(\d+): (\S+) \[(\S+)\]: (.*)$'
- let l:output = []
-
- for l:match in ale#util#GetMatches(a:lines, l:pattern)
- call add(l:output, {
- \ 'lnum': l:match[1] + 0,
- \ 'col': l:match[2] + 0,
- \ 'type': l:match[3] is# 'error' ? 'E' : 'W',
- \ 'code': l:match[4],
- \ 'text': l:match[5],
- \})
- endfor
-
- return l:output
-endfunction
-
-
-call ale#linter#Define('swift', {
-\ 'name': 'swift-format',
-\ 'executable': function('ale_linters#swift#swiftformat#GetExecutable'),
-\ 'command': function('ale_linters#swift#swiftformat#GetCommand'),
-\ 'output_stream': 'stderr',
-\ 'language': 'swift',
-\ 'callback': 'ale_linters#swift#swiftformat#Handle'
-\})