Fix groovy columns

This commit is contained in:
Clément Fournier
2020-06-14 01:04:32 +02:00
parent b976d6550d
commit 59dfa15269
2 changed files with 12 additions and 3 deletions

View File

@ -6,6 +6,7 @@ package net.sourceforge.pmd.cpd;
import java.io.StringReader; import java.io.StringReader;
import org.codehaus.groovy.antlr.SourceInfo;
import org.codehaus.groovy.antlr.parser.GroovyLexer; import org.codehaus.groovy.antlr.parser.GroovyLexer;
import net.sourceforge.pmd.lang.ast.TokenMgrError; import net.sourceforge.pmd.lang.ast.TokenMgrError;
@ -31,8 +32,16 @@ public class GroovyTokenizer implements Tokenizer {
while (token.getType() != Token.EOF_TYPE) { while (token.getType() != Token.EOF_TYPE) {
String tokenText = token.getText(); String tokenText = token.getText();
TokenEntry tokenEntry = new TokenEntry(tokenText, sourceCode.getFileName(), token.getLine(),
token.getColumn(), tokenText.length());
int lastCol;
if (token instanceof SourceInfo) {
lastCol = ((SourceInfo) token).getColumnLast();
} else {
// fallback
lastCol = token.getColumn() + tokenText.length();
}
TokenEntry tokenEntry = new TokenEntry(tokenText, sourceCode.getFileName(), token.getLine(), token.getColumn(), lastCol);
tokenEntries.add(tokenEntry); tokenEntries.add(tokenEntry);
token = tokenStream.nextToken(); token = tokenStream.nextToken();

View File

@ -87,7 +87,7 @@ public class ScalaTokenizer implements Tokenizer {
pos.endColumn() + 1); pos.endColumn() + 1);
tokenEntries.add(cpdToken); tokenEntries.add(cpdToken);
} }
} catch (Throwable e) { } catch (@SuppressWarnings("PMD.AvoidInstanceofChecksInCatchClause") Exception e) {
if (e instanceof TokenizeException) { if (e instanceof TokenizeException) {
// cannot catch it as it's a checked exception and Scala sneaky throws // cannot catch it as it's a checked exception and Scala sneaky throws
TokenizeException tokE = (TokenizeException) e; TokenizeException tokE = (TokenizeException) e;