Skip to content

Commit

Permalink
Merge branch 'fix-maxlinelength' into drop-getLineAndColumnInPsiFile
Browse files Browse the repository at this point in the history
  • Loading branch information
3flex committed May 8, 2024
2 parents b4d8cd0 + 7f61100 commit 6ad6ae7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,9 @@ class MaxLineLength(config: Config) : Rule(
val sourceFileLinesMapping = KtPsiSourceFileLinesMapping(file)

file.text.lines().withIndex()
.filterNot { isValidLine(file, sourceFileLinesMapping.getLineStartOffset(it.index), it.value) }
.forEach {
val offset = sourceFileLinesMapping.getLineStartOffset(it.index)
val line = it.value
.filterNot { (index, line) -> isValidLine(file, sourceFileLinesMapping.getLineStartOffset(index), line) }
.forEach { (index, line) ->
val offset = sourceFileLinesMapping.getLineStartOffset(index)
val ktElement = findFirstMeaningfulKtElementInParents(file, offset, line) ?: file
val textRange = TextRange(offset, offset + line.length)
val lineAndColumnRange = getLineAndColumnRangeInPsiFile(file, textRange)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package io.gitlab.arturbosch.detekt.rules.style

import io.github.detekt.psi.absolutePath
import io.gitlab.arturbosch.detekt.api.CodeSmell
import io.gitlab.arturbosch.detekt.api.Config
import io.gitlab.arturbosch.detekt.api.Entity
import io.gitlab.arturbosch.detekt.api.Location
import io.gitlab.arturbosch.detekt.api.Rule
import io.gitlab.arturbosch.detekt.api.SourceLocation
import io.gitlab.arturbosch.detekt.api.TextLocation
import io.gitlab.arturbosch.detekt.rules.isPartOfString
import org.jetbrains.kotlin.KtPsiSourceFileLinesMapping
import org.jetbrains.kotlin.com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.com.intellij.psi.PsiElement
import org.jetbrains.kotlin.diagnostics.DiagnosticUtils.getLineAndColumnRangeInPsiFile
import org.jetbrains.kotlin.psi.KtFile

/**
Expand All @@ -26,29 +31,29 @@ class TrailingWhitespace(config: Config) : Rule(

override fun visitKtFile(file: KtFile) {
super.visitKtFile(file)
var offset = 0

val sourceFileLinesMapping = KtPsiSourceFileLinesMapping(file)

file.text.lineSequence().forEachIndexed { index, line ->
offset += line.length
val trailingWhitespaces = countTrailingWhitespace(line)
if (trailingWhitespaces > 0) {
val ktElement = findFirstKtElementInParentsOrNull(file, offset, line)
val lineEndOffset = sourceFileLinesMapping.getLineStartOffset(index) + line.length
val ktElement = findFirstKtElementInParentsOrNull(file, lineEndOffset, line)
if (ktElement == null || !ktElement.isPartOfString()) {
val entity = Entity.from(file, offset - trailingWhitespaces).let { entity ->
Entity(
entity.name,
entity.signature,
location = Location(
entity.location.source,
entity.location.endSource,
TextLocation(entity.location.text.start, offset),
entity.location.path
)
val startOffset = lineEndOffset - trailingWhitespaces
val textRange = TextRange(startOffset, lineEndOffset)
val lineAndColumnRange = getLineAndColumnRangeInPsiFile(file, textRange)
val location =
Location(
source = SourceLocation(lineAndColumnRange.start.line, lineAndColumnRange.start.column),
endSource = SourceLocation(lineAndColumnRange.end.line, lineAndColumnRange.end.column),
text = TextLocation(startOffset, lineEndOffset),
path = file.absolutePath(),
)
}
report(CodeSmell(entity, createMessage(index)))

report(CodeSmell(Entity.from(file, location), createMessage(index)))
}
}
offset += 1 // '\n'
}
}

Expand Down

0 comments on commit 6ad6ae7

Please sign in to comment.