Introduce ts language module

This commit is contained in:
Clément Fournier
2023-02-20 14:09:07 +01:00
parent a12bbf8dde
commit 11e2a97c5f
3 changed files with 27 additions and 1 deletions

View File

@@ -206,7 +206,7 @@ class CpdCliTest extends BaseCliTest {
@Test
void jsShouldFindDuplicatesWithDifferentFileExtensions() throws Exception {
runCli(VIOLATIONS_FOUND, "--minimum-tokens", "5", "--language", "ecmascript",
runCli(VIOLATIONS_FOUND, "--minimum-tokens", "5", "--language", "ts",
"-d", BASE_RES_PATH + "tsFiles/File1.ts", BASE_RES_PATH + "tsFiles/File2.ts")
.checkStdOut(containsString("Found a 9 line (32 tokens) duplication in the following files"));
}

View File

@@ -0,0 +1,25 @@
/**
* 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();
}
}

View File

@@ -1 +1,2 @@
net.sourceforge.pmd.lang.ecmascript.EcmascriptLanguageModule
net.sourceforge.pmd.lang.ecmascript.TsLanguageModule