Kotlin
The Kotlin analyzer scans your Kotlin code, and raises issues if best practices are not followed. The analyzer is compatible with detekt, and will respect the detekt configuration files present in your project.
Configuration - .deepsource.toml
.deepsource.toml
This section covers configuration specific to the Kotlin
analyzer. Please make sure you read the general configuration guide first.
name
name
- Type: String
- Presence: mandatory
- Description: Shortcode of the analyzer.
- Example:
name = "kotlin"
enabled
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this analyzer should be run.
- Example:
enabled = true
meta
meta
- Type: Table
- Presence: optional
- Description: Any supported metadata to pass to the analyzer.
- Example:
[analyzers.meta]
language_version = "1.9"
runtime_version = "18"
language_version
language_version
- Type: String
- Presence: optional
- Description: The version of Kotlin that is being used by your project. This information is used to fine-tune the analysis and report issues that are more relevant to the mentioned version of Kotlin.
- Available Values:
1.0
,1.1
,1.2
,1.3
,1.4
,1.5
,1.6
,1.7
,1.8
,1.9
- Default Value: "1.7"
- Example:
[analyzers.meta]
language_version = "1.2"
runtime_version
runtime_version
- Type: String
- Presence: optional
- Description: The version of Java runtime to use. This information is used to fine-tune the analysis and report issues that are more relevant to the Java runtime being used.
- Available Values:
1.8
,9
,10
,11
,12
,13
,14
,15
,16
,17
,18
,19
- Default Value: "1.8"
- Example:
[analyzers.meta]
runtime_version = "13"
cyclomatic_complexity_threshold
cyclomatic_complexity_threshold
-
Type: String
-
Presence: optional
-
Description: Specify the acceptable risk category for your project as the threshold. All functions with complexity beyond this threshold will raise an issue. For example, setting the threshold to
low
will flag all functions that have a cyclomatic complexity of more than5
, while setting the threshold tocritical
will not flag any function. -
Available Values:
low
,medium
,high
,very-high
andcritical
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. |
- Default Value:
medium
- Example:
[analyzers.meta]
cyclomatic_complexity_threshold = "high"
Sample config
version = 1
test_patterns = [
"**/test/**"
]
exclude_patterns = [
"build/**"
]
[[analyzers]]
name = "kotlin"
enabled = true
[analyzers.meta]
language_version = "1.9"
runtime_version = "16"
Updated about 1 year ago