Skip to content

Commit 4ced38d

Browse files
committed
fix: Use textRange for PsiElement offset access
- Replace direct startOffset/endOffset with textRange.startOffset/endOffset - Fix range calculation in IDEUtils.kt - Update all CV providers to use proper PsiElement text range access
1 parent 968d94b commit 4ced38d

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

src/main/kotlin/ai/devchat/common/IDEUtils.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ object IDEUtils {
328328
var currentIndex = 0
329329

330330
for (descriptor in sortedDescriptors) {
331-
val range = descriptor.range.shiftRight(-startOffset)
331+
val range = descriptor.range.shiftRight(-this.textRange.startOffset)
332332
if (range.startOffset >= currentIndex) {
333333
builder.append(text, currentIndex, range.startOffset)
334334
builder.append(descriptor.placeholderText)

src/main/kotlin/ai/devchat/plugin/hints/DocStringCVProvider.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ import javax.swing.Icon
1313
class DocStringCVProvider : ChatCVProviderBase() {
1414
override fun buildPayload(editor: Editor, element: PsiElement): JSONObject {
1515
val document = editor.document
16-
val startLine = document.getLineNumber(element.startOffset)
16+
val startLine = document.getLineNumber(element.textRange.startOffset)
1717
val lineStartOffset = document.getLineStartOffset(startLine)
18-
val startOffset = if (document.text.substring(lineStartOffset, element.startOffset).isBlank()) {
18+
val startOffset = if (document.text.substring(lineStartOffset, element.textRange.startOffset).isBlank()) {
1919
lineStartOffset
2020
} else {
21-
element.startOffset
21+
element.textRange.startOffset
2222
}
23-
editor.selectionModel.setSelection(startOffset, null, element.endOffset)
23+
editor.selectionModel.setSelection(startOffset, null, element.textRange.endOffset)
2424
return JSONObject(mapOf("message" to "/docstring"))
2525
}
2626

src/main/kotlin/ai/devchat/plugin/hints/ExplainCodeCVProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import javax.swing.Icon
1111

1212
class ExplainCodeCVProvider : ChatCVProviderBase() {
1313
override fun buildPayload(editor: Editor, element: PsiElement): JSONObject {
14-
editor.selectionModel.setSelection(element.startOffset, null, element.endOffset)
14+
editor.selectionModel.setSelection(element.textRange.startOffset, null, element.textRange.endOffset)
1515
return JSONObject(mapOf("message" to "/explain"))
1616
}
1717

0 commit comments

Comments
 (0)