Fix merge
This commit is contained in:
@ -101,7 +101,7 @@ public final class CpdAnalysis implements AutoCloseable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int doTokenize(TextDocument document, Tokenizer tokenizer, Tokens tokens) throws IOException, TokenMgrError {
|
private int doTokenize(TextDocument document, Tokenizer tokenizer, Tokens tokens) throws IOException, TokenMgrError {
|
||||||
LOGGER.trace("Tokenizing {}", document.getFileId().toAbsolutePath());
|
LOGGER.trace("Tokenizing {}", document.getFileId().getAbsolutePath());
|
||||||
int lastTokenSize = tokens.size();
|
int lastTokenSize = tokens.size();
|
||||||
Tokenizer.tokenize(tokenizer, document, tokens);
|
Tokenizer.tokenize(tokenizer, document, tokens);
|
||||||
return tokens.size() - lastTokenSize - 1; /* EOF */
|
return tokens.size() - lastTokenSize - 1; /* EOF */
|
||||||
|
@ -26,7 +26,7 @@ class SourceManager implements AutoCloseable {
|
|||||||
private final Map<TextFile, SoftReference<TextDocument>> files = new ConcurrentHashMap<>();
|
private final Map<TextFile, SoftReference<TextDocument>> files = new ConcurrentHashMap<>();
|
||||||
private final Map<FileId, TextFile> fileByPathId = new HashMap<>();
|
private final Map<FileId, TextFile> fileByPathId = new HashMap<>();
|
||||||
private final List<TextFile> textFiles;
|
private final List<TextFile> textFiles;
|
||||||
private FileNameRenderer fileNameRenderer = FileId::toAbsolutePath;
|
private FileNameRenderer fileNameRenderer = FileId::getAbsolutePath;
|
||||||
|
|
||||||
SourceManager(List<? extends TextFile> files) {
|
SourceManager(List<? extends TextFile> files) {
|
||||||
textFiles = new ArrayList<>(files);
|
textFiles = new ArrayList<>(files);
|
||||||
|
@ -22,7 +22,7 @@ import net.sourceforge.pmd.lang.document.TextDocument;
|
|||||||
public abstract class AntlrTokenizer extends TokenizerBase<AntlrToken> {
|
public abstract class AntlrTokenizer extends TokenizerBase<AntlrToken> {
|
||||||
@Override
|
@Override
|
||||||
protected final TokenManager<AntlrToken> makeLexerImpl(TextDocument doc) throws IOException {
|
protected final TokenManager<AntlrToken> makeLexerImpl(TextDocument doc) throws IOException {
|
||||||
CharStream charStream = CharStreams.fromReader(doc.newReader(), doc.getFileId().toAbsolutePath());
|
CharStream charStream = CharStreams.fromReader(doc.newReader(), doc.getFileId().getAbsolutePath());
|
||||||
return new AntlrTokenManager(getLexerForSource(charStream), doc);
|
return new AntlrTokenManager(getLexerForSource(charStream), doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ class XMLRendererTest {
|
|||||||
}
|
}
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
assertEquals("1", file.getAttributes().getNamedItem("line").getNodeValue());
|
assertEquals("1", file.getAttributes().getNamedItem("line").getNodeValue());
|
||||||
assertEquals(foo1.toAbsolutePath(), file.getAttributes().getNamedItem("path").getNodeValue());
|
assertEquals(foo1.getAbsolutePath(), file.getAttributes().getNamedItem("path").getNodeValue());
|
||||||
assertEquals("6", file.getAttributes().getNamedItem("endline").getNodeValue());
|
assertEquals("6", file.getAttributes().getNamedItem("endline").getNodeValue());
|
||||||
assertEquals("1", file.getAttributes().getNamedItem("column").getNodeValue());
|
assertEquals("1", file.getAttributes().getNamedItem("column").getNodeValue());
|
||||||
assertEquals("1", file.getAttributes().getNamedItem("endcolumn").getNodeValue());
|
assertEquals("1", file.getAttributes().getNamedItem("endcolumn").getNodeValue());
|
||||||
@ -146,7 +146,7 @@ class XMLRendererTest {
|
|||||||
}
|
}
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
assertEquals("1", file.getAttributes().getNamedItem("line").getNodeValue());
|
assertEquals("1", file.getAttributes().getNamedItem("line").getNodeValue());
|
||||||
assertEquals(fileName.toAbsolutePath(), file.getAttributes().getNamedItem("path").getNodeValue());
|
assertEquals(fileName.getAbsolutePath(), file.getAttributes().getNamedItem("path").getNodeValue());
|
||||||
assertEquals("2", file.getAttributes().getNamedItem("endline").getNodeValue());
|
assertEquals("2", file.getAttributes().getNamedItem("endline").getNodeValue());
|
||||||
assertEquals("2", file.getAttributes().getNamedItem("column").getNodeValue());
|
assertEquals("2", file.getAttributes().getNamedItem("column").getNodeValue());
|
||||||
assertEquals("3", file.getAttributes().getNamedItem("endcolumn").getNodeValue());
|
assertEquals("3", file.getAttributes().getNamedItem("endcolumn").getNodeValue());
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
/**
|
|
||||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.sourceforge.pmd.lang.ecmascript;
|
|
||||||
|
|
||||||
import net.sourceforge.pmd.cpd.Tokenizer;
|
|
||||||
import net.sourceforge.pmd.lang.LanguagePropertyBundle;
|
|
||||||
import net.sourceforge.pmd.lang.ecmascript.cpd.EcmascriptTokenizer;
|
|
||||||
import net.sourceforge.pmd.lang.impl.CpdOnlyLanguageModuleBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CPD only language to recognize TypeScript files.
|
|
||||||
*/
|
|
||||||
public class TsLanguageModule extends CpdOnlyLanguageModuleBase {
|
|
||||||
|
|
||||||
public TsLanguageModule() {
|
|
||||||
super(LanguageMetadata.withId("ts").name("TypeScript").extensions("ts"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Tokenizer createCpdTokenizer(LanguagePropertyBundle bundle) {
|
|
||||||
return new EcmascriptTokenizer();
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sourceforge.pmd.lang.typescript;
|
||||||
|
|
||||||
|
import net.sourceforge.pmd.cpd.Tokenizer;
|
||||||
|
import net.sourceforge.pmd.lang.LanguagePropertyBundle;
|
||||||
|
import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||||
|
import net.sourceforge.pmd.lang.impl.CpdOnlyLanguageModuleBase;
|
||||||
|
import net.sourceforge.pmd.lang.typescript.cpd.TypeScriptTokenizer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author pguyot@kallisys.net
|
||||||
|
*/
|
||||||
|
public class TsLanguageModule extends CpdOnlyLanguageModuleBase {
|
||||||
|
|
||||||
|
public TsLanguageModule() {
|
||||||
|
super(LanguageMetadata.withId("typescript")
|
||||||
|
.name("TypeScript")
|
||||||
|
.extensions("ts"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Tokenizer createCpdTokenizer(LanguagePropertyBundle bundle) {
|
||||||
|
return new TypeScriptTokenizer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TsLanguageModule getInstance() {
|
||||||
|
return (TsLanguageModule) LanguageRegistry.CPD.getLanguageById("typescript");
|
||||||
|
}
|
||||||
|
}
|
@ -1,17 +0,0 @@
|
|||||||
/**
|
|
||||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.sourceforge.pmd.lang.typescript.cpd;
|
|
||||||
|
|
||||||
import net.sourceforge.pmd.cpd.AbstractLanguage;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author pguyot@kallisys.net
|
|
||||||
*/
|
|
||||||
public class TypeScriptLanguage extends AbstractLanguage {
|
|
||||||
|
|
||||||
public TypeScriptLanguage() {
|
|
||||||
super("TypeScript", "typescript", new TypeScriptTokenizer(), ".ts");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,2 +1,2 @@
|
|||||||
net.sourceforge.pmd.lang.ecmascript.EcmascriptLanguageModule
|
net.sourceforge.pmd.lang.ecmascript.EcmascriptLanguageModule
|
||||||
net.sourceforge.pmd.lang.ecmascript.TsLanguageModule
|
net.sourceforge.pmd.lang.typescript.TsLanguageModule
|
||||||
|
@ -4,27 +4,15 @@
|
|||||||
|
|
||||||
package net.sourceforge.pmd.lang.typescript.cpd;
|
package net.sourceforge.pmd.lang.typescript.cpd;
|
||||||
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import net.sourceforge.pmd.cpd.Tokenizer;
|
|
||||||
import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest;
|
import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest;
|
||||||
|
import net.sourceforge.pmd.lang.typescript.TsLanguageModule;
|
||||||
|
|
||||||
class TypeScriptTokenizerTest extends CpdTextComparisonTest {
|
class TypeScriptTokenizerTest extends CpdTextComparisonTest {
|
||||||
|
|
||||||
TypeScriptTokenizerTest() {
|
TypeScriptTokenizerTest() {
|
||||||
super(".ts");
|
super(TsLanguageModule.getInstance(), ".ts");
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Tokenizer newTokenizer(Properties properties) {
|
|
||||||
return new TypeScriptTokenizer();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getResourcePrefix() {
|
|
||||||
return "../cpd/testdata";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sourceforge.pmd.lang.julia;
|
||||||
|
|
||||||
|
import net.sourceforge.pmd.cpd.Tokenizer;
|
||||||
|
import net.sourceforge.pmd.lang.LanguagePropertyBundle;
|
||||||
|
import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||||
|
import net.sourceforge.pmd.lang.impl.CpdOnlyLanguageModuleBase;
|
||||||
|
import net.sourceforge.pmd.lang.julia.cpd.JuliaTokenizer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Language implementation for Julia.
|
||||||
|
*/
|
||||||
|
public class JuliaLanguageModule extends CpdOnlyLanguageModuleBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new Julia Language instance.
|
||||||
|
*/
|
||||||
|
public JuliaLanguageModule() {
|
||||||
|
super(LanguageMetadata.withId("julia").name("Julia").extensions("jl"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Tokenizer createCpdTokenizer(LanguagePropertyBundle bundle) {
|
||||||
|
return new JuliaTokenizer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JuliaLanguageModule getInstance() {
|
||||||
|
return (JuliaLanguageModule) LanguageRegistry.CPD.getLanguageById("julia");
|
||||||
|
}
|
||||||
|
}
|
@ -1,20 +0,0 @@
|
|||||||
/**
|
|
||||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.sourceforge.pmd.lang.julia.cpd;
|
|
||||||
|
|
||||||
import net.sourceforge.pmd.cpd.AbstractLanguage;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Language implementation for Julia.
|
|
||||||
*/
|
|
||||||
public class JuliaLanguage extends AbstractLanguage {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new Julia Language instance.
|
|
||||||
*/
|
|
||||||
public JuliaLanguage() {
|
|
||||||
super("Julia", "julia", new JuliaTokenizer(), ".jl");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
net.sourceforge.pmd.lang.julia.cpd.JuliaLanguage
|
|
@ -0,0 +1 @@
|
|||||||
|
net.sourceforge.pmd.lang.julia.JuliaLanguageModule
|
@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.sourceforge.pmd.cpd;
|
|
||||||
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest;
|
|
||||||
import net.sourceforge.pmd.lang.julia.cpd.JuliaTokenizer;
|
|
||||||
|
|
||||||
class JuliaTokenizerTest extends CpdTextComparisonTest {
|
|
||||||
JuliaTokenizerTest() {
|
|
||||||
super(".jl");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getResourcePrefix() {
|
|
||||||
return "../lang/julia/cpd/testdata";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Tokenizer newTokenizer(Properties properties) {
|
|
||||||
JuliaTokenizer tok = new JuliaTokenizer();
|
|
||||||
return tok;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testMathExample() {
|
|
||||||
doTest("mathExample");
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sourceforge.pmd.lang.julia.cpd;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest;
|
||||||
|
import net.sourceforge.pmd.lang.julia.JuliaLanguageModule;
|
||||||
|
|
||||||
|
class JuliaTokenizerTest extends CpdTextComparisonTest {
|
||||||
|
JuliaTokenizerTest() {
|
||||||
|
super(JuliaLanguageModule.getInstance(), ".jl");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testMathExample() {
|
||||||
|
doTest("mathExample");
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user