Linter: tslint for typescript
This commit is contained in:
		
							parent
							
								
									60a03cb933
								
							
						
					
					
						commit
						de64c9d76f
					
				| @ -35,6 +35,7 @@ name. That seems to be the fairest way to arrange this table. | |||||||
| | JavaScript | [eslint](http://eslint.org/), [jscs](http://jscs.info/), [jshint](http://jshint.com/) | | | JavaScript | [eslint](http://eslint.org/), [jscs](http://jscs.info/), [jshint](http://jshint.com/) | | ||||||
| | Python | [flake8](http://flake8.pycqa.org/en/latest/) | | | Python | [flake8](http://flake8.pycqa.org/en/latest/) | | ||||||
| | Ruby   | [rubocop](https://github.com/bbatsov/rubocop) | | | Ruby   | [rubocop](https://github.com/bbatsov/rubocop) | | ||||||
|  | | TypeScript | [tslint](https://github.com/palantir/tslint)^ | | ||||||
| | Vim | [vint](https://github.com/Kuniwak/vint)^ | | | Vim | [vint](https://github.com/Kuniwak/vint)^ | | ||||||
| 
 | 
 | ||||||
| *^ Supported only on Unix machines via a wrapper script.* | *^ Supported only on Unix machines via a wrapper script.* | ||||||
|  | |||||||
							
								
								
									
										51
									
								
								ale_linters/typescript/tslint.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								ale_linters/typescript/tslint.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | " Author: Prashanth Chandra https://github.com/prashcr | ||||||
|  | " Description: tslint for TypeScript files | ||||||
|  | 
 | ||||||
|  | if exists('g:loaded_ale_linters_typescript_tslint') | ||||||
|  |     finish | ||||||
|  | endif | ||||||
|  | 
 | ||||||
|  | let g:loaded_ale_linters_typescript_tslint = 1 | ||||||
|  | 
 | ||||||
|  | function! ale_linters#typescript#tslint#Handle(buffer, lines) | ||||||
|  |     " Matches patterns like the following: | ||||||
|  |     " | ||||||
|  |     " hello.ts[7, 41]: trailing whitespace | ||||||
|  |     " hello.ts[5, 1]: Forbidden 'var' keyword, use 'let' or 'const' instead | ||||||
|  |     " | ||||||
|  |     let pattern = '.\+.ts\[\(\d\+\), \(\d\+\)\]: \(.\+\)' | ||||||
|  |     let output = [] | ||||||
|  | 
 | ||||||
|  |     for line in a:lines | ||||||
|  |         let l:match = matchlist(line, pattern) | ||||||
|  | 
 | ||||||
|  |         if len(l:match) == 0 | ||||||
|  |             continue | ||||||
|  |         endif | ||||||
|  | 
 | ||||||
|  |         let line = l:match[1] + 0 | ||||||
|  |         let column = l:match[2] + 0 | ||||||
|  |         let type = 'E' | ||||||
|  |         let text = l:match[3] | ||||||
|  | 
 | ||||||
|  |         " vcol is Needed to indicate that the column is a character. | ||||||
|  |         call add(output, { | ||||||
|  |         \   'bufnr': a:buffer, | ||||||
|  |         \   'lnum': line, | ||||||
|  |         \   'vcol': 0, | ||||||
|  |         \   'col': column, | ||||||
|  |         \   'text': text, | ||||||
|  |         \   'type': type, | ||||||
|  |         \   'nr': -1, | ||||||
|  |         \}) | ||||||
|  |     endfor | ||||||
|  | 
 | ||||||
|  |     return output | ||||||
|  | endfunction | ||||||
|  | 
 | ||||||
|  | call ALEAddLinter('typescript', { | ||||||
|  | \   'name': 'tslint', | ||||||
|  | \   'executable': 'tslint', | ||||||
|  | \   'command': g:ale#util#stdin_wrapper . ' .ts tslint', | ||||||
|  | \   'callback': 'ale_linters#typescript#tslint#Handle', | ||||||
|  | \}) | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Prashanth Chandra
						Prashanth Chandra