Merge pull request #1063 from aurieh/master
Add dart LSP (resolves #1006)
This commit is contained in:
		
						commit
						e4cd371621
					
				@ -87,7 +87,7 @@ formatting.
 | 
			
		||||
| CSS | [csslint](http://csslint.net/), [stylelint](https://github.com/stylelint/stylelint), [prettier](https://github.com/prettier/prettier) |
 | 
			
		||||
| Cython (pyrex filetype) | [cython](http://cython.org/) |
 | 
			
		||||
| D | [dmd](https://dlang.org/dmd-linux.html) |
 | 
			
		||||
| Dart | [dartanalyzer](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) !! |
 | 
			
		||||
| Dart | [dartanalyzer](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) !!, [language_server](https://github.com/natebosch/dart_language_server) |
 | 
			
		||||
| Dockerfile | [hadolint](https://github.com/lukasmartinelli/hadolint) |
 | 
			
		||||
| Elixir | [credo](https://github.com/rrrene/credo), [dogma](https://github.com/lpil/dogma) !! |
 | 
			
		||||
| Elm | [elm-format](https://github.com/avh4/elm-format), [elm-make](https://github.com/elm-lang/elm-make) |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										30
									
								
								ale_linters/dart/language_server.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								ale_linters/dart/language_server.vim
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
" Author: aurieh <me@aurieh.me>
 | 
			
		||||
" Description: A language server for dart
 | 
			
		||||
 | 
			
		||||
call ale#Set('dart_language_server_executable', 'dart_language_server')
 | 
			
		||||
 | 
			
		||||
function! ale_linters#dart#language_server#GetExecutable(buffer) abort
 | 
			
		||||
    return ale#Var(a:buffer, 'dart_language_server_executable')
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
function! ale_linters#dart#language_server#GetLanguage(buffer) abort
 | 
			
		||||
    return 'dart'
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
function! ale_linters#dart#language_server#GetProjectRoot(buffer) abort
 | 
			
		||||
    " Note: pub only looks for pubspec.yaml, there's no point in adding
 | 
			
		||||
    " support for pubspec.yml
 | 
			
		||||
    let l:pubspec = ale#path#FindNearestFile(a:buffer, 'pubspec.yaml')
 | 
			
		||||
 | 
			
		||||
    return !empty(l:pubspec) ? fnamemodify(l:pubspec, ':h:h') : ''
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
call ale#linter#Define('dart', {
 | 
			
		||||
\   'name': 'language_server',
 | 
			
		||||
\   'lsp': 'stdio',
 | 
			
		||||
\   'executable_callback': 'ale_linters#dart#language_server#GetExecutable',
 | 
			
		||||
\   'command_callback': 'ale_linters#dart#language_server#GetExecutable',
 | 
			
		||||
\   'language_callback': 'ale_linters#dart#language_server#GetLanguage',
 | 
			
		||||
\   'project_root_callback': 'ale_linters#dart#language_server#GetProjectRoot',
 | 
			
		||||
\})
 | 
			
		||||
 | 
			
		||||
@ -270,7 +270,7 @@ Notes:
 | 
			
		||||
* CSS: `csslint`, `stylelint`, `prettier`
 | 
			
		||||
* Cython (pyrex filetype): `cython`
 | 
			
		||||
* D: `dmd`
 | 
			
		||||
* Dart: `dartanalyzer`!!
 | 
			
		||||
* Dart: `dartanalyzer`!!, `language_server`
 | 
			
		||||
* Dockerfile: `hadolint`
 | 
			
		||||
* Elixir: `credo`, `dogma`!!
 | 
			
		||||
* Elm: `elm-format, elm-make`
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user