Language.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package de.jplag.kotlin;
  2. import java.io.File;
  3. import de.jplag.ErrorConsumer;
  4. import de.jplag.TokenList;
  5. /**
  6. * This represents the Kotlin language as a language supported by JPlag.
  7. */
  8. public class Language implements de.jplag.Language {
  9. private static final String NAME = "Kotlin Parser";
  10. private static final String SHORT_NAME = "Kotlin";
  11. private static final int DEFAULT_MIN_TOKEN_MATCH = 8;
  12. private static final String[] FILE_EXTENSIONS = {".kt"};
  13. private final KotlinParserAdapter parserAdapter;
  14. public Language(ErrorConsumer consumer) {
  15. this.parserAdapter = new KotlinParserAdapter(consumer);
  16. }
  17. @Override
  18. public String[] suffixes() {
  19. return FILE_EXTENSIONS;
  20. }
  21. @Override
  22. public String getName() {
  23. return NAME;
  24. }
  25. @Override
  26. public String getShortName() {
  27. return SHORT_NAME;
  28. }
  29. @Override
  30. public int minimumTokenMatch() {
  31. return DEFAULT_MIN_TOKEN_MATCH;
  32. }
  33. @Override
  34. public TokenList parse(File directory, String[] files) {
  35. return parserAdapter.parse(directory, files);
  36. }
  37. @Override
  38. public boolean hasErrors() {
  39. return parserAdapter.hasErrors();
  40. }
  41. @Override
  42. public boolean supportsColumns() {
  43. return true;
  44. }
  45. @Override
  46. public boolean isPreformatted() {
  47. return true;
  48. }
  49. @Override
  50. public boolean usesIndex() {
  51. return false;
  52. }
  53. @Override
  54. public int numberOfTokens() {
  55. return KotlinTokenConstants.NUMBER_DIFF_TOKENS;
  56. }
  57. }