Commit Graph

1211 Commits

Author SHA1 Message Date
Diego Lemos
607750eb02 Fix PMD not working with classes without package
PMD is currently not working properly for Java classes that use [unnamed
packages](https://docs.oracle.com/javase/specs/jls/se11/html/jls-7.html#jls-7.4.2).

Consider the following Java class that does not contain a `package`
declaration:

```java
public class App {
  String getGreeting() {
    return "Hello world.";
  }

  static void main(String... args) {
    System.out.println(new App().getGreeting());
  }
}
```

Running PMD in the command line agaist the Java class above produces an
output with empty string `""` in the `"Package"` column:

```sh
$ pmd -R category/java/bestpractices.xml -f csv -d './src/main/java/App.java'
Oct 02, 2018 9:10:39 PM net.sourceforge.pmd.PMD processFiles
WARNING: This analysis could be faster, please consider using Incremental Analysis: https://pmd.github.io/pmd-6.7.0/pmd_userdocs_incremental_analysis.html
"Problem","Package","File","Priority","Line","Description","Rule set","Rule"
"1","","/Users/diego/Projects/github.com/dlresende/kata-fizz-buzz/src/main/java/App.java","2","7","System.out.println is used","Best Practices","SystemPrintln"
```

But the pmd.vim handler's current pattern refuses everything coming
from a Java class that does not have a package name (2nd column):
```vim
let l:pattern = '"\(\d\+\)",".\+","\(.\+\)","\(\d\+\)","\(\d\+\)","\(.\+\)","\(.\+\)","\(.\+\)"$'
```

The solution I am proposing is to also accept empty strings as package names.
2018-10-02 21:34:11 +01:00
Evan Rutledge Borden
2a56475cf7 Remove test vars that cover bug
These test vars were covering up a bug in the hlint linter
implementation. Without these vars we can see the behavior that is
exhibited in `vim` proper.
2018-09-28 11:37:40 -04:00
Evan Borden
a8915d885b Add better support for Haskell stack compiler tools (#1851)
* Add better support for Haskell stack compiler tools

This commit adds support for `stack` as the executable of a tool. This
follows a pattern that has been implemented for `bundler`'s tool chain.

* Move hlint command to linter file
* Add vader test for stack exec handling
* Update ghc-mod to support stack execution

`ghc-mod` was previously broken into 2 linters.

1. ghc_mod
2. stack_ghc_mod

This additional linter is not necessary with proper support for
executable variables and `stack exec` handling.

* Support stack exec in hfmt
* Support stack in hdevtools
2018-09-28 09:05:01 +01:00
w0rp
a26b3319a1
Merge pull request #1950 from yejingchen/ccls
Add ccls support for C/C++/ObjC
2018-09-28 09:02:00 +01:00
w0rp
fd0467f992
Merge pull request #1917 from jpsouzasilva/fix-stylelint-scss
Support options when using Stylelint with SCSS
2018-09-27 16:54:17 +01:00
Richard Marmorstein
947360f714 Add psalm linter for PHP (#1893) 2018-09-27 16:48:47 +01:00
Ye Jingchen
17676f6a6d Add missing files for ccls test 2018-09-26 23:17:19 +08:00
Ye Jingchen
626e47f5c9 Add ccls tests 2018-09-26 22:50:43 +08:00
w0rp
58ceb21cbc
Merge pull request #1908 from KtorZ/master
Allow extra options to be passed to haskell:hlint
2018-09-26 15:38:15 +01:00
Bert JW Regeer
8e7e810db6 Bugfix: python add blank lines (#1944)
* Don't add newlines when not a control statement for Python
* Add test for accidental newline fix
* Add docstring detection to avoid adding unnecessarily newlines
* Add tests for docstring detection
2018-09-25 10:02:01 +01:00
w0rp
aa5c82b171
Merge pull request #1932 from rhysd/shfmt-default-indent
shfmt: Use Vim's indent config as default indent width
2018-09-20 09:30:59 +01:00
w0rp
169a6e26b2
Merge pull request #1719 from elebow/auto-pipenv-option-for-python-linters
Add python_[linter]_auto_pipenv options for python linters (fixes #1656)
2018-09-19 19:46:13 +01:00
Martin Tournoij
e82bcdb8a6 Add fixer for Go modules (#1873)
* Add fixer for Go modules
2018-09-19 19:33:23 +01:00
w0rp
a6c6e24d61
#1872 Remove extra carriage returns when fixing files on Windows 2018-09-19 19:28:57 +01:00
Daniel Wennberg
d50e603177 Support both old (<0.7) and new Julia versions
Closes #1931
2018-09-19 07:34:11 -07:00
w0rp
6bbbb9456c
Merge pull request #1926 from gnustomp/master
c#ParseCFlags: don't index empty list
2018-09-19 13:22:43 +01:00
w0rp
e5b920e387
Merge pull request #1934 from meunierd/solargraph-stdio
Support Solargraph stdio
2018-09-19 13:12:41 +01:00
w0rp
993f02ad80
Merge pull request #1928 from felipesere/master
To avoid blocking build tools, suspend ALE when suspending vim
2018-09-18 17:46:45 +01:00
w0rp
213a901ccd
Stop tsserver from causing errors to be rendered redundantly 2018-09-18 17:43:17 +01:00
Devon Meunier
4025030d86
Solargraph stdio 2018-09-18 11:20:29 -04:00
rhysd
532686102e shfmt: Use Vim's indent config as default indent width 2018-09-18 17:51:00 +09:00
KtorZ
bd32b7c856
Add command_callback tests to cover hlint config variables 2018-09-18 08:25:49 +02:00
James Ye
3c067941f1 add test for arguments with '--' 2018-09-18 10:59:26 +10:00
Felipe Sere
f09e6d638f
Test that we CleanupEveryBuffer when vim supports it 2018-09-17 21:26:25 +01:00
w0rp
ddb3e6d57a
Handle failing to connect to eslint_d 2018-09-17 17:32:57 +01:00
w0rp
a4a4bba884
Merge pull request #1927 from jparise/thrift-includes-default
thrift: default thrift_thrift_includes to ['.']
2018-09-17 11:21:30 +01:00
w0rp
f9e99d81a4
#1794 - Handle LSP documentation content as a Dictionary 2018-09-17 11:16:46 +01:00
w0rp
0b163ec656
Fix the Julia languagserver linter for Julia 0.7 2018-09-17 09:16:41 +01:00
Jon Parise
b7fcec4d17 thrift: default thrift_thrift_includes to ['.']
In a lint context, it's useful to assume that included files sit next to
the current file by default. Users can still further customize this
configuration variable to add more include paths.
2018-09-16 08:21:18 -07:00
Eddie Lebow
56e67c5811 Add python_[linter]_auto_pipenv options for python linters (fixes #1656)
When set to true, and the buffer is currently inside a pipenv,
GetExecutable will return "pipenv", which will trigger the existing
functionality to append the correct pipenv arguments to run each linter.

Defaults to false.

I was going to implement ale#python#PipenvPresent by invoking
`pipenv --venv` or `pipenv --where`, but it seemed to be abominably
slow, even to the point where the test suite wasn't even finishing
("Tried to run tests 3 times"). The diff is:

diff --git a/autoload/ale/python.vim b/autoload/ale/python.vim
index 7baae079..8c100d41 100644
--- a/autoload/ale/python.vim
+++ b/autoload/ale/python.vim
@@ -106,5 +106,9 @@ endfunction

" Detects whether a pipenv environment is present.
function! ale#python#PipenvPresent(buffer) abort
-    return findfile('Pipfile.lock', expand('#' . a:buffer . ':p:h') . ';') isnot# ''
+    let l:cd_string = ale#path#BufferCdString(a:buffer)
+    let l:output = systemlist(l:cd_string . 'pipenv --where')[0]
+    " `pipenv --where` returns the path to the dir containing the Pipfile
+    " if in a pipenv, or some error text otherwise.
+    return strpart(l:output, 0, 18) !=# "No Pipfile present"
 endfunction

Using vim's `findfile` is much faster, behaves correctly in the majority
of situations, and also works reliably when the `pipenv` command doesn't
exist.
2018-09-15 22:10:46 -04:00
jpsouzasilva
9bbea8b830 Add tests for assuring the SCSS stylelint options work 2018-09-14 13:32:42 -03:00
w0rp
0868cb769d
Merge pull request #1906 from ngavalas/autocomplete-trigger-prefix
fix non-. prefix triggers overfiltering results
2018-09-14 13:32:25 +01:00
w0rp
7f1c411b5e
Merge pull request #1850 from rrosenblum/ruby_linters
Update all Ruby linters to work consistently with bundler
2018-09-14 13:27:07 +01:00
w0rp
b01470cbbc
Test for bundle paths with spaces again 2018-09-14 13:26:29 +01:00
w0rp
5c86ffd321
Return only the unescaped executables from executable callbacks 2018-09-14 13:24:59 +01:00
Sascha Grunert
c48106f484
Adapt tests 2018-09-14 10:47:33 +02:00
Ryan Rosenblum
9e09b7ca35 Update all Ruby linters to work consistently with bundler 2018-09-12 16:53:28 -04:00
Nick Gavalas
b4513fc4b0 fix non-. prefix triggers overfiltering results 2018-09-12 15:47:57 -04:00
Nick Gavalas
44070d8a45 fix tsserver className parsing 2018-09-11 10:56:58 -04:00
w0rp
99e9417ef9
Add support for Julia Language Server (#1894) 2018-09-10 17:24:04 +01:00
Daniel Jones
150015d0dc Fixed NASM tests 2018-09-10 09:23:47 +10:00
Bartolomeo Stellato
97ed25a8bf Escape julia command + reorder table in README 2018-09-09 10:09:05 -04:00
w0rp
0948dcc435
Merge pull request #1897 from LEI/add-sqlfmt-fixer
Add support for sqlfmt
2018-09-09 11:55:42 +01:00
w0rp
395aba19c3
Merge pull request #1885 from dsifford/dsifford-fixer-uncrustify
add uncrustify fixer for several languages
2018-09-09 11:30:30 +01:00
Bartolomeo Stellato
91bb948b90 Try to fix CI 2018-09-08 14:11:11 -04:00
LEI
a97ef49c51
Add support for sqlfmt 2018-09-08 01:34:10 +02:00
w0rp
0ae4ea23c8
#1888 Support names with minuses in Clojure and Lisp 2018-09-07 19:27:42 +01:00
Bartolomeo Stellato
68ac4d1095 Fix julia escaping + minor edits 2018-09-07 14:13:44 -04:00
Bartolomeo Stellato
f64f0bb48c Added tests 2018-09-07 13:16:22 -04:00
w0rp
e0fe97e0a8
Merge pull request #1883 from hsanson/add-solargraph-yml-to-root-path-search
Add solargraph.yml file as root path search file.
2018-09-06 20:34:34 +01:00