This section covers .deepsource.toml
configuration specific to the scala
analyzer. Please make sure to read the general configuration guide first.
name
enabled
meta
cyclomatic_complexity_threshold
low
will flag all functions that have a cyclomatic complexity of more than 5
, while setting the threshold to critical
will not flag any function.low
, medium
, high
, very-high
and critical
Risk category | Cyclomatic complexity range | Recommended action |
---|---|---|
low | 1-5 | No action is needed. |
medium | 6-15 | Review and monitor. |
high | 16-25 | Review and refactor. Recommended to add detailed comments if the function absolutely needs to be kept as it is. |
very-high | 26-50 | Refactor to reduce the complexity. |
critical | >50 | Must refactor this. This can make the code untestable and very difficult to understand. |
medium
Add sbt-jacoco
to your project by adding the following line to your project/plugins.sbt
:
Then run sbt jacoco
to generate the coverage report. By default, you’ll find the report in /target/scala-{version}/jacoco/report
.
Note: To customize Jacoco’s coverage behavior, you’ll need to make changes to your build.sbt
. Refer to Jacoco’s documentation for more information.
Once you have a coverage report, you can upload it to DeepSource with the following commands:
You can also use Cobertura format coverage reports with the Scala analyzer. Generate your Cobertura report according to your build setup, then submit it using similar steps to the Jacoco example above.
scalafmt
Transform all incoming Scala code with scalafmt, the official Scala code formatter.
This section covers .deepsource.toml
configuration specific to the scalafmt
transformer. Please make sure to read the general configuration guide first.
name
enabled
Vulnerability scanning is not supported for the Scala at this time.
This section covers .deepsource.toml
configuration specific to the scala
analyzer. Please make sure to read the general configuration guide first.
name
enabled
meta
cyclomatic_complexity_threshold
low
will flag all functions that have a cyclomatic complexity of more than 5
, while setting the threshold to critical
will not flag any function.low
, medium
, high
, very-high
and critical
Risk category | Cyclomatic complexity range | Recommended action |
---|---|---|
low | 1-5 | No action is needed. |
medium | 6-15 | Review and monitor. |
high | 16-25 | Review and refactor. Recommended to add detailed comments if the function absolutely needs to be kept as it is. |
very-high | 26-50 | Refactor to reduce the complexity. |
critical | >50 | Must refactor this. This can make the code untestable and very difficult to understand. |
medium
Add sbt-jacoco
to your project by adding the following line to your project/plugins.sbt
:
Then run sbt jacoco
to generate the coverage report. By default, you’ll find the report in /target/scala-{version}/jacoco/report
.
Note: To customize Jacoco’s coverage behavior, you’ll need to make changes to your build.sbt
. Refer to Jacoco’s documentation for more information.
Once you have a coverage report, you can upload it to DeepSource with the following commands:
You can also use Cobertura format coverage reports with the Scala analyzer. Generate your Cobertura report according to your build setup, then submit it using similar steps to the Jacoco example above.
scalafmt
Transform all incoming Scala code with scalafmt, the official Scala code formatter.
This section covers .deepsource.toml
configuration specific to the scalafmt
transformer. Please make sure to read the general configuration guide first.
name
enabled
Vulnerability scanning is not supported for the Scala at this time.