Add scalastyle linter (#766)

* Add support for scalastyle

* Add scalastyle docs

* scalastyle support for column numbers

* off by one column

* Add tests for scalastyle command and handler

* update readme for scalastyle

* allow full scalastyle options instead of just config file

* fix indentation

* allow scalastyle config file in parent directories by a couple names.

* check for missing match args with empty

* remove echo

* use a for loop
This commit is contained in:
Kevin Kays
2017-07-13 18:41:01 -04:00
committed by w0rp
parent 4c6c5bf84f
commit 4c50aec79c
6 changed files with 177 additions and 2 deletions

View File

@@ -0,0 +1,27 @@
Before:
runtime ale_linters/scala/scalastyle.vim
After:
call ale#linter#Reset()
let g:ale_scala_scalastyle_options = ''
let g:ale_scalastyle_conf_loc = ''
Execute(Should return the correct default command):
AssertEqual
\ 'scalastyle %t',
\ ale_linters#scala#scalastyle#GetCommand(bufnr(''))
Execute(Should allow using a custom config file):
let g:ale_scalastyle_config_loc = '/dooper/config.xml'
AssertEqual
\ 'scalastyle --config ''/dooper/config.xml'' %t',
\ ale_linters#scala#scalastyle#GetCommand(bufnr(''))
Execute(Should allow using custom options):
let g:ale_scala_scalastyle_options = '--warnings false --quiet true'
AssertEqual
\ 'scalastyle --config ''/dooper/config.xml'' --warnings false --quiet true %t',
\ ale_linters#scala#scalastyle#GetCommand(bufnr(''))

View File

@@ -0,0 +1,38 @@
Execute(The scalastyle handler should parse lines correctly):
runtime! ale_linters/scala/scalastyle.vim
AssertEqual
\ [
\ {
\ 'lnum': 190,
\ 'text': 'Missing or badly formed ScalaDoc: Missing @param str',
\ 'type': 'W',
\ },
\ {
\ 'lnum': 200,
\ 'col': 34,
\ 'text': 'There should be a space before the plus (+) sign',
\ 'type': 'E',
\ },
\ {
\ 'lnum': 200,
\ 'col': 1,
\ 'text': 'There should be a space before the plus (+) sign',
\ 'type': 'E',
\ },
\ ],
\ ale_linters#scala#scalastyle#Handle(347, [
\ 'Starting scalastyle',
\ 'start file /home/test/Doop.scala',
\ 'warning file=/home/test/Doop.scala message=Missing or badly formed ScalaDoc: Missing @param str line=190',
\ 'error file=/home/test/Doop.scala message=There should be a space before the plus (+) sign line=200 column=33',
\ 'error file=/home/test/Doop.scala message=There should be a space before the plus (+) sign line=200 column=0',
\ 'end file /home/test/Doop.scala',
\ 'Processed 1 file(s)',
\ 'Found 0 errors',
\ 'Found 3 warnings',
\ 'Finished in 934 ms',
\ ])
After:
call ale#linter#Reset()