Commit Graph

30 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
w0rp
d476578a40
Improve ALE project style checking
* The project style linter now runs while you type.
* Now the scripts for checking the project require blank lines.
* Many style issues have been found and fixed.
2018-09-04 16:51:18 +01:00
Horacio Sanson
261c29c3d0 Add vader test and fix command callback. 2018-08-26 22:11:36 +09:00
Horacio Sanson
3afff5a24c Add vscode-java-language-server linter 2018-08-24 16:28:15 +09:00
w0rp
217284360d
Simplify the code for most linters and tests with closures 2018-08-02 23:44:12 +01:00
w0rp
a42999a639
Massively reduce the amount of code needed for linter tests 2018-07-15 18:28:28 +01:00
Johannes Wienke
49c4bfde14 Add support for the java PMD linter 2018-04-09 17:48:00 +02:00
w0rp
2f2dcb8444
Close #1476 - Make the javac executable configurable 2018-04-08 20:35:06 +01:00
w0rp
c9e203e620 Fix #859 Include test and jaxb Java source paths when available 2017-11-20 18:54:57 +00:00
w0rp
7455e2e97d #852 - Capture error codes for checkstyle 2017-11-18 18:29:12 +00:00
w0rp
34674e088d Fix #1061 - Handle the filenames returned by javac 2017-11-05 15:33:31 +00:00
Brayden Banks
d08d2dac79 Gradle support for javac
Based off of #745.
2017-08-29 15:39:23 -07:00
w0rp
a535d07f28 Ban use of ==# or ==? in the codebase, and prefer is# or is? instead 2017-08-08 08:39:13 +01:00
oaue
b44bd4e24f handle column number in javac linter (#660)
* handle column number in javac linter

* Updated tests with column number for javac errors.

* Updated tests with column number for javac errors.
2017-06-19 11:45:09 +01:00
w0rp
dc775f236c Revert "Fix #501 - Do not run javac when it is just a stub asking you to install Java on Mac OSX"
This reverts commit 528355e2c6.
2017-05-28 00:52:04 +01:00
Devon Meunier
9baae52d1a Add checkstyle linter 2017-05-15 15:41:04 -04:00
w0rp
07b2542c0d #549 Temporarily revert shell escaping changes, just for Windows 2017-05-12 09:20:16 +01:00
w0rp
6ea00af689 #540 Fix shell escaping pretty much everywhere 2017-05-08 22:59:25 +01:00
w0rp
c2a0847f99 #502 Parse more undefined symbol errors 2017-05-04 23:34:52 +01:00
w0rp
8e70dc14f2 Fix #502 - Report undefined symbol errors better for javac 2017-05-04 23:19:58 +01:00
w0rp
528355e2c6 Fix #501 - Do not run javac when it is just a stub asking you to install Java on Mac OSX 2017-05-04 17:14:48 +01:00
w0rp
45c2d6b580 Fixes #361, fixes #417 Get classpaths from Maven, and automatically detect src/main/java paths 2017-04-25 22:32:48 +01:00
w0rp
bdad25eefd Add a function for getting matches, and use it to simplify a lot of code 2017-04-18 00:35:53 +01:00
w0rp
e97dada261 #427 Implement buffer variable overrides for all linter options 2017-04-16 01:24:08 +01:00
w0rp
7c736579b7 Fix #438 Create Java .class files for javac in a temporary directory 2017-03-31 20:14:53 +01:00
Adriaan Zonnenberg
4b0f3257dd Remove 'col' from linters where it is hardcoded to 1 (#434)
* Remove 'col' from linters where it is hardcoded to 1

When 'col' is 1, the first column will get highlighted for no reason. It
should be 0 (which is the default).

In the scalac linter there was also a check about the outcome of
`stridx`. It would set l:col to 0 if it was -1, and then it uses
`'col': l:col + 1` to convert the outcome of `stridx` to the actual
column number. This will make 'col' equals 1 when there is no match. We
can remove the check because `-1 + 1 = 0`.

* Remove outdated comments about vcol

vcol was added as a default, and the loclists that follow these comments
do not contain 'vcol' anymore
2017-03-30 23:33:38 +01:00
w0rp
b2fe1b2567 Copy all loclist items returned from handlers, and set up defaults for convenience 2017-02-26 14:51:22 +00:00
w0rp
341ea5f367 Fix the custom check issue. 2017-02-11 22:06:20 +00:00
w0rp
112f71fb17 Make javac work in a basic way 2017-02-11 22:02:38 +00:00
Valentin Finini
8c4846b68a Added support for javac (with eclipse classpath support for now) (#141)
* A try at javac support for ALE

* Small cleanup: moved '/tmp/java_ale' string into script var

* Fixed Travis-CI build failing on autocmd not being in augroup and stupid omission

* One more fix for Travis-CI

* For some reason, expandtab was not set

* Indentation and removal of header guard.

Used examples from ale_linters/c/gcc.vim and
ale_linters/javascript/eslint.vim for the indentation of string concat blocks.
2017-02-11 21:29:48 +00:00