Skip to content

Commit

Permalink
Add scalafmt rule names basing on rules_scala docs
Browse files Browse the repository at this point in the history
If you define a scalafmt rule as documented in rules_scala it won't be
recognized by intellij plugin as a Scala target, as the rule names for
rules_scala is hard-coded.

In effect the external dependencies for such targets are not discovered by
IntelliJ.

The reason is that the Scala targets generated by rules_scala do not expose
a jdeps interface, hence intellij BlazeJavaWorkspaceImporter cannot find
the dependencies for them (assuming they are not in the working set).

Docs for rules_scala scalafmt support:
https://github.com/bazelbuild/rules_scala/blob/master/docs/phase_scalafmt.md
  • Loading branch information
gergelyfabian committed May 13, 2020
1 parent 4dc3115 commit 265d376
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion scala/src/com/google/idea/blaze/scala/ScalaBlazeRules.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,16 @@ public final class ScalaBlazeRules implements Kind.Provider {
/** Scala-specific blaze rule types. */
public enum RuleTypes {
SCALA_BINARY("scala_binary", LanguageClass.SCALA, RuleType.BINARY),
SCALAFMT_SCALA_BINARY("scalafmt_scala_binary", LanguageClass.SCALA, RuleType.BINARY),
SCALA_IMPORT("scala_import", LanguageClass.SCALA, RuleType.UNKNOWN),
SCALA_LIBRARY("scala_library", LanguageClass.SCALA, RuleType.LIBRARY),
SCALAFMT_SCALA_LIBRARY("scalafmt_scala_library", LanguageClass.SCALA, RuleType.LIBRARY),
SCALA_MACRO_LIBRARY("scala_macro_library", LanguageClass.SCALA, RuleType.LIBRARY),
SCALAFMT_SCALA_MACRO_LIBRARY("scalafmt_scala_macro_library", LanguageClass.SCALA, RuleType.LIBRARY),
SCALA_TEST("scala_test", LanguageClass.SCALA, RuleType.TEST),
SCALA_JUNIT_TEST("scala_junit_test", LanguageClass.SCALA, RuleType.TEST);
SCALAFMT_SCALA_TEST("scalafmt_scala_test", LanguageClass.SCALA, RuleType.TEST),
SCALA_JUNIT_TEST("scala_junit_test", LanguageClass.SCALA, RuleType.TEST),
SCALAFMT_SCALA_JUNIT_TEST("scalafmt_scala_junit_test", LanguageClass.SCALA, RuleType.TEST);

private final String name;
private final LanguageClass languageClass;
Expand Down

0 comments on commit 265d376

Please sign in to comment.