[lsp] Add Swift / SourceKit-LSP support (#2420)

* [linter] Add LSP support for Swift via sourcekit-lsp
This commit is contained in:
Dan Loman
2019-04-08 08:25:30 -07:00
committed by w0rp
parent 9a0ece1ecb
commit 864d0861e4
7 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
Before:
call ale#assert#SetUpLinterTest('swift', 'sourcekitlsp')
After:
call ale#assert#TearDownLinterTest()
Execute(The default executable path should be correct):
call ale#test#SetFilename('../swift-test-files/swift-package-project/src/folder/dummy.swift')
AssertLinter 'sourcekit-lsp', ale#Escape('sourcekit-lsp')
Execute(Should let users configure a global executable and override local paths):
call ale#test#SetFilename('../swift-test-files/swift-package-project/src/folder/dummy.swift')
let g:ale_sourcekit_lsp_executable = '/path/to/custom/sourcekitlsp'
AssertLinter '/path/to/custom/sourcekitlsp',
\ ale#Escape('/path/to/custom/sourcekitlsp')
Execute(The language should be correct):
AssertLSPLanguage 'swift'

View File

@@ -0,0 +1,18 @@
Before:
call ale#test#SetDirectory('/testplugin/test')
After:
call ale#test#RestoreDirectory()
Execute(Detect root of Swift project with Package.swift correctly):
call ale#test#SetFilename('swift-test-files/swift-package-project/src/folder/dummy.swift')
AssertEqual
\ ale#path#Simplify(g:dir . '/swift-test-files/swift-package-project'),
\ ale#swift#FindProjectRoot(bufnr(''))
Execute(Detect no root in case of non-Package.swift project):
call ale#test#SetFilename('swift-test-files/non-swift-package-project/src/folder/dummy.swift')
AssertEqual
\ '',
\ ale#swift#FindProjectRoot(bufnr(''))