summaryrefslogtreecommitdiff
path: root/ale_linters
diff options
context:
space:
mode:
authorDiego Lemos <diegolemosderesende@gmail.com>2018-10-02 21:05:14 +0100
committerDiego Lemos <diegolemosderesende@gmail.com>2018-10-02 21:34:11 +0100
commit607750eb02c7343453bd900e93a592c168111265 (patch)
tree27de6ce18ae9ff462ec815dccdeebd177bcf8d08 /ale_linters
parentab3646862cb180d56e079465cdea2830ff172334 (diff)
downloadale-607750eb02c7343453bd900e93a592c168111265.zip
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.
Diffstat (limited to 'ale_linters')
-rw-r--r--ale_linters/java/pmd.vim2
1 files changed, 1 insertions, 1 deletions
diff --git a/ale_linters/java/pmd.vim b/ale_linters/java/pmd.vim
index d461e094..b530ad09 100644
--- a/ale_linters/java/pmd.vim
+++ b/ale_linters/java/pmd.vim
@@ -2,7 +2,7 @@
" Description: PMD for Java files
function! ale_linters#java#pmd#Handle(buffer, lines) abort
- let l:pattern = '"\(\d\+\)",".\+","\(.\+\)","\(\d\+\)","\(\d\+\)","\(.\+\)","\(.\+\)","\(.\+\)"$'
+ let l:pattern = '"\(\d\+\)",".*","\(.\+\)","\(\d\+\)","\(\d\+\)","\(.\+\)","\(.\+\)","\(.\+\)"$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)