Model for chat panel data, parses file paths into repository URIs and position ranges, integrates Git file metadata.
package com.tabbyml.intellijtabby.chat
import com.google.gson.Gson
abstract class Filepath(
val kind: String
) {
sealed class Kind {
companion object {
const val GIT = "git"
const val URI = "uri"
}
}
}
data class FilepathInGitRepository(
val filepath: String,
val gitUrl: String,
val revision: String? = null,
) : Filepath(Kind.GIT)
data class FilepathUri(
val uri: String,
) : Filepath(Kind.URI)
data class Position(
// 1-based
val line: Int,
val character: Int,
)
abstract class Range
data class LineRange(
// 1-based
val start: Int,
val end: Int,
) : Range()
data class PositionRange(
val start: Position,
val end: Position,
) : Range()
data class EditorFileContext(
val kind: String = "file",
val filepath: Filepath,
val range: Rang
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key