M75IG7WMOCCEJTAPSDEZOZZ62IYZV6VSSDM3CTHL3LP3225LBT7QC
PIXOAM2HBORGH6C4IL5EYNVZ3SZDBJT6Z5NZJIN6AMSQ3WNASHSQC
7M2QIAYK7RM2YDZ3DZMYNJQH26H4676VBINAW3VSBMJQJE4RI4MQC
6RA5UOK73WND7FXI6P4XIXMZMHN6542F2XAZJSESPF4ZLNMMRAQQC
WFJ46TU4R5WDW5IDGWNGFXPRKA4QU46KVLXUBASW3QAV3JOBUNPAC
GGYFPXND4VBCROZZXTKAP7Y4JOP2OOYQAFVLMUE7SLFM225EUSIAC
7L5LODGZ7AN4ZULDJZMLALD7PL6E57VZSNNSG67SFJARUJGCT47QC
37OJKSWJFDRHNWQW6P7HSZX6OWZWVNCJ2IFT42O5TANQF7VOVX6AC
ISO7J5ZH5UB7NFZKTKKJQHQHCP4DWQ3F7SM2NDMVYJAGGIKDLX4QC
FNNW5IEAXQ43WKB6QSQB7DFLG3Y3T5FYPXIUX7KQ2URR2GU3QLTAC
FRFFQV7VNYKGCA7ZAOSRPC2HHYTAIZ6AGGR7A5QEV6QPAQGFDYGAC
VBL5BQH7K5QZH3KCO4JBRDVYAN4YXYNAWETL2WVUD2PYHNZAGMTAC
A7IL6I3VCB3F3QMYQFPXBL33DN5XDGGQPZIBZRHYSQBSIUBBFQJQC
5AUENX2YJVFNKZUSPEPDNLLL7TKZS2WTFC6CABWSZK2EC4MNCRQAC
Q7FXTHVUPVAFMNY277C3NFJO3VXLZU5G6C6UYSD5QPURHSG3A7OQC
QXUEMZ3B2FUHFUC7ZZHJMH5FVWLEMEYXUMFA6JNXTJKIVZNMRIOAC
FSXHAVRFQCAUXEN6IY3D23CFKL6B5ONT6L723DWRMUOSX4SZAPOAC
OMZXJL6QA6INENIEAARSWYFHOPMLTP4WRCVI646GQVJVWCH3LENQC
Q35OTML226J2HZLHOCPV5OY6ZUM2XU4RZBE5E3GDWVHVFASHFEJAC
2N67RQZCVGL6GYJJLM2US4YVCEIUK25AHCLD66C7HR4PPTNUOCWAC
RE4EKNSLYGCITZZEOPIRJAWTKIONGP7IY6S77BQO7JQL2CK27RZAC
PGNTR2EPCZBOWI67LKY6AN5B3RGIEOQ6NTTXGODLESKDSPWV26KQC
MJDBCNFHSHAR4S322TRR2L5MKXPRHDAVCN73H5WECCSOMXKHHWYQC
NTRPUMVQHUIQZ6O72NJ72XFYTZWZOSDA6CSKMUCGKFVNE3KIDYYQC
[2] PGNTR2EPCZBOWI67LKY6AN5B3RGIEOQ6NTTXGODLESKDSPWV26KQC
[3]+FNNW5IEAXQ43WKB6QSQB7DFLG3Y3T5FYPXIUX7KQ2URR2GU3QLTAC
[4]+OPFG6CZ26PPTGTH7ULLRQGZGR3YEIEJOV5W2E3WN7PFRZS62CVLQC
[5]+GGYFPXND4VBCROZZXTKAP7Y4JOP2OOYQAFVLMUE7SLFM225EUSIAC
[*] NTRPUMVQHUIQZ6O72NJ72XFYTZWZOSDA6CSKMUCGKFVNE3KIDYYQC
[2] PGNTR2EPCZBOWI67LKY6AN5B3RGIEOQ6NTTXGODLESKDSPWV26KQC # Improved README and ider roadmap
[3]+FNNW5IEAXQ43WKB6QSQB7DFLG3Y3T5FYPXIUX7KQ2URR2GU3QLTAC # Added more plugin files to Pijul
[4]+OPFG6CZ26PPTGTH7ULLRQGZGR3YEIEJOV5W2E3WN7PFRZS62CVLQC # File status tracking supported.
[5]+GGYFPXND4VBCROZZXTKAP7Y4JOP2OOYQAFVLMUE7SLFM225EUSIAC # Initial plugin
[*] NTRPUMVQHUIQZ6O72NJ72XFYTZWZOSDA6CSKMUCGKFVNE3KIDYYQC # Improved README and added roadmap.
+ val change = this.doExecutionWithMapper("change-""" + "\$hash" + """, this.execPijul(project, rootPath, listOf("change", hash), delay = 10L)) {
+ val change = this.doExecutionWithMapper("change-${"$"}hash", this.execPijul(project, rootPath, listOf("change", hash), delay = 10L)) {
LineChange(type = LineChangeType.ADD, data = "package com.github.jonathanxd.dracon.revision"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "package com.github.jonathanxd.dracon.revision\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "import java.time.LocalDateTime"),
LineChange(type = LineChangeType.ADD, data = "import java.time.ZonedDateTime"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "import java.time.LocalDateTime\n"),
LineChange(type = LineChangeType.ADD, data = "import java.time.ZonedDateTime\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " if (this === other) return 0"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " if (other is PijulRevisionNumber) {"),
LineChange(type = LineChangeType.ADD, data = " if (this === other) return 0\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " if (other is PijulRevisionNumber) {\n"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " return -1"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " override fun asString(): String = this.hash"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " return -1\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " override fun asString(): String = this.hash\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "package com.github.jonathanxd.dracon.provider"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.progress.ProgressIndicator"),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.project.Project"),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.vcs.VcsKey"),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.vcs.changes.*"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "package com.github.jonathanxd.dracon.provider\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.progress.ProgressIndicator\n"),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.project.Project\n"),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.vcs.VcsKey\n"),
LineChange(type = LineChangeType.ADD, data = "import com.intellij.openapi.vcs.changes.*\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " override fun getChanges("),
LineChange(type = LineChangeType.ADD, data = " dirtyScope: VcsDirtyScope,"),
LineChange(type = LineChangeType.ADD, data = " builder: ChangelistBuilder,"),
LineChange(type = LineChangeType.ADD, data = " progress: ProgressIndicator,"),
LineChange(type = LineChangeType.ADD, data = " addGate: ChangeListManagerGate"),
LineChange(type = LineChangeType.ADD, data = " ) {"),
LineChange(type = LineChangeType.ADD, data = " if (project.isDisposed) return"),
LineChange(type = LineChangeType.ADD, data = " override fun getChanges(\n"),
LineChange(type = LineChangeType.ADD, data = " dirtyScope: VcsDirtyScope,\n"),
LineChange(type = LineChangeType.ADD, data = " builder: ChangelistBuilder,\n"),
LineChange(type = LineChangeType.ADD, data = " progress: ProgressIndicator,\n"),
LineChange(type = LineChangeType.ADD, data = " addGate: ChangeListManagerGate\n"),
LineChange(type = LineChangeType.ADD, data = " ) {\n"),
LineChange(type = LineChangeType.ADD, data = " if (project.isDisposed) return\n"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " println(dirtDirs)"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " println(dirtDirs)\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " @RequiresBackgroundThread"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " @RequiresBackgroundThread\n"),
LineChange(type = LineChangeType.ADD, data = "package com.github.jonathanxd.dracon.log"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "import java.time.LocalDateTime"),
LineChange(type = LineChangeType.ADD, data = "import java.time.ZonedDateTime"),
LineChange(type = LineChangeType.ADD, data = "import java.time.format.DateTimeFormatter"),
LineChange(type = LineChangeType.ADD, data = "import java.time.format.ResolverStyle"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "package com.github.jonathanxd.dracon.log\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "import java.time.LocalDateTime\n"),
LineChange(type = LineChangeType.ADD, data = "import java.time.ZonedDateTime\n"),
LineChange(type = LineChangeType.ADD, data = "import java.time.format.DateTimeFormatter\n"),
LineChange(type = LineChangeType.ADD, data = "import java.time.format.ResolverStyle\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "class PijulLog(val entries: List<PijulLogEntry>)"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "class PijulLogEntry("),
LineChange(type = LineChangeType.ADD, data = " val changeHash: String,"),
LineChange(type = LineChangeType.ADD, data = " val message: String,"),
LineChange(type = LineChangeType.ADD, data = " val date: ZonedDateTime,"),
LineChange(type = LineChangeType.ADD, data = " val authors: List<Author>"),
LineChange(type = LineChangeType.ADD, data = ")"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "val MESSAGE_PATTERN = Regex(\"message = '(.*)'\\\\n\")"),
LineChange(type = LineChangeType.ADD, data = "val TIME_PATTERN = Regex(\"timestamp = '(.*)'\\\\n\")"),
LineChange(type = LineChangeType.ADD, data = "class PijulLog(val entries: List<PijulLogEntry>)\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "class PijulLogEntry(\n"),
LineChange(type = LineChangeType.ADD, data = " val changeHash: String,\n"),
LineChange(type = LineChangeType.ADD, data = " val message: String,\n"),
LineChange(type = LineChangeType.ADD, data = " val date: ZonedDateTime,\n"),
LineChange(type = LineChangeType.ADD, data = " val authors: List<Author>\n"),
LineChange(type = LineChangeType.ADD, data = ")\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "val MESSAGE_PATTERN = Regex(\"message = '(.*)'\\\\n\")\n"),
LineChange(type = LineChangeType.ADD, data = "val TIME_PATTERN = Regex(\"timestamp = '(.*)'\\\\n\")\n"),
LineChange(type = LineChangeType.ADD, data = "val AUTHOR_PATTERN = Regex(\"name = '(.*)'\\\\n\")"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "fun String.parseChange(hash: String): PijulLogEntry {"),
LineChange(type = LineChangeType.ADD, data = "val AUTHOR_PATTERN = Regex(\"name = '(.*)'\\\\n\")\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "fun String.parseChange(hash: String): PijulLogEntry {\n"),
LineChange(type = LineChangeType.ADD, data = " val authors = mutableListOf<Author>()"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " if (authorsSection != null) {"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " var lastFound: Int? = authorsSection"),
LineChange(type = LineChangeType.ADD, data = " while (lastFound != null) {"),
LineChange(type = LineChangeType.ADD, data = " val authors = mutableListOf<Author>()\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " if (authorsSection != null) {\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " var lastFound: Int? = authorsSection\n"),
LineChange(type = LineChangeType.ADD, data = " while (lastFound != null) {\n"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " if (foundAuthorGroup != null) {"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " if (foundAuthorGroup != null) {\n"),
LineChange(type = LineChangeType.ADD, data = " null"),
LineChange(type = LineChangeType.ADD, data = " } else {"),
LineChange(type = LineChangeType.ADD, data = " foundAuthor.range.last"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = " } else {"),
LineChange(type = LineChangeType.ADD, data = " lastFound = null"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " null\n"),
LineChange(type = LineChangeType.ADD, data = " } else {\n"),
LineChange(type = LineChangeType.ADD, data = " foundAuthor.range.last\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = " } else {\n"),
LineChange(type = LineChangeType.ADD, data = " lastFound = null\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " .withResolverStyle(ResolverStyle.LENIENT)"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "fun String.parseAsLocalDateTime(): ZonedDateTime {"),
LineChange(type = LineChangeType.ADD, data = " return ZonedDateTime.parse(this, RFC3339_FORMATTER)"),
LineChange(type = LineChangeType.ADD, data = "}")
LineChange(type = LineChangeType.ADD, data = " .withResolverStyle(ResolverStyle.LENIENT)\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = "fun String.parseAsLocalDateTime(): ZonedDateTime {\n"),
LineChange(type = LineChangeType.ADD, data = " return ZonedDateTime.parse(this, RFC3339_FORMATTER)\n"),
LineChange(type = LineChangeType.ADD, data = "}\n")
data = "import com.github.jonathanxd.dracon.log.PijulLog"
), LineChange(type = LineChangeType.ADD, data = "import com.github.jonathanxd.dracon.log.PijulLogEntry")
data = "import com.github.jonathanxd.dracon.log.PijulLog\n"
), LineChange(type = LineChangeType.ADD, data = "import com.github.jonathanxd.dracon.log.PijulLogEntry\n")
LineChange(type = LineChangeType.ADD, data = " it.lines()"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " if (hashes.statusCode !is SuccessStatusCode) {"),
LineChange(type = LineChangeType.ADD, data = " it.lines()\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " if (hashes.statusCode !is SuccessStatusCode) {\n"),
data = " val change = this.doExecutionWithMapper(\"change-\$hash, this.execPijul(project, rootPath, listOf(\"change\", hash), delay = 10L)) {"
data = " val change = this.doExecutionWithMapper(\"change-\$hash\", this.execPijul(project, rootPath, listOf(\"change\", hash), delay = 10L)) {\n"
LineChange(type = LineChangeType.ADD, data = " it.parseChange(hash)"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " it.parseChange(hash)\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
data = " override fun latestRevisionNumber(project: Project, root: VirtualFile): PijulOperationResult<PijulRevisionNumber> {"
data = " override fun latestRevisionNumber(project: Project, root: VirtualFile): PijulOperationResult<PijulRevisionNumber> {\n"
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = " val log = this.log(project, root)"),
LineChange(type = LineChangeType.ADD, data = ""),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " val log = this.log(project, root)\n"),
LineChange(type = LineChangeType.ADD, data = "\n"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = " )"),
LineChange(type = LineChangeType.ADD, data = " }"),
LineChange(type = LineChangeType.ADD, data = "")
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = " )\n"),
LineChange(type = LineChangeType.ADD, data = " }\n"),
LineChange(type = LineChangeType.ADD, data = "\n")
LineChange(type = LineChangeType.ADD, data = " PijulChangeProvider(this.project, KEY)"),
LineChange(type = LineChangeType.ADD, data = "")
LineChange(type = LineChangeType.ADD, data = " PijulChangeProvider(this.project, KEY)\n"),
LineChange(type = LineChangeType.ADD, data = "\n")
LineChange(type = LineChangeType.ADD, data = " exclude(group = \"org.jetbrains\")"),
LineChange(type = LineChangeType.ADD, data = " }")
LineChange(type = LineChangeType.ADD, data = " exclude(group = \"org.jetbrains\")\n"),
LineChange(type = LineChangeType.ADD, data = " }\n")
* Mode is ignored as it is not needed for this plugin work.
*
* However, we still read metadata and store them, as they are useful to keep changelog reading consistent.
*/
data class Mode(val plain: String): Serializable {
companion object {
private const val serialVersionUID: Long = 1L
}
}
/**
class PijulAsyncFileListener(val project: Project) : AsyncFileChangeListenerBase(), AsyncFileListener {
private val fileStatusCache by lazy { this.project.service<FileStatusCache>() }
private val pijulLogEntryChangeCache by lazy { this.project.service<PijulLogEntryChangeCache>() }
private val pijulLogRevisionCache by lazy { this.project.service<PijulLogRevisionCache>() }
override fun apply() {
}
override fun init() {
class PijulAsyncFileListener(val project: Project) : AsyncFileListener {
override fun prepareChange(events: MutableList<out VFileEvent>): AsyncFileListener.ChangeApplier {
val interested = events.filter { it.file != null }.filter { ProjectRootManager.getInstance(this.project).fileIndex.isInContent(it.file!!) }
return ChangeApplierImpl(this.project, interested)
override fun isRelevant(file: VirtualFile, event: VFileEvent): Boolean {
return ProjectRootManager.getInstance(this.project).fileIndex.isInContent(file)
}
class ChangeApplierImpl(val project: Project, val events: List<VFileEvent>) : AsyncFileListener.ChangeApplier {
private val fileStatusCache by lazy { this.project.service<FileStatusCache>() }
private val pijulLogEntryChangeCache by lazy { this.project.service<PijulLogEntryChangeCache>() }
private val pijulLogRevisionCache by lazy { this.project.service<PijulLogRevisionCache>() }
override fun updateFile(file: VirtualFile, event: VFileEvent) {
if (ProjectRootManager.getInstance(this.project).fileIndex.isInContent(file)) {
this.fileStatusCache.unload(Paths.get(VcsUtil.getFilePath(file).path))
this.pijulLogEntryChangeCache.unload(Paths.get(VcsUtil.getFilePath(file).path))
this.pijulLogRevisionCache.unload(Paths.get(VcsUtil.getFilePath(file).path))
override fun afterVfsChange() {
val paths = this.events.filter { it.file != null }.map { Paths.get(VcsUtil.getFilePath(it.file!!).path) }
fileStatusCache.unloadAll(paths)
pijulLogEntryChangeCache.unloadAll(paths)
pijulLogRevisionCache.unloadAll(paths)
}
/**
* Invalidates multiple keys in [cache], this is a good way to invalidate data in cache (but not the best one), as it does not
* cause all the cache to be recomputed, however, if you already know the new value for the cache, or a function
* to compute it, use [updateCache] function.
*
*/
fun invalidateAll(keys: Iterable<K>) {
this.cache.invalidateAll(keys)
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
implementation("org.tomlj:tomlj:1.0.0")
implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.4")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
implementation("org.jetbrains.kotlin:kotlin-reflect:1.5.31")
implementation("org.tomlj:tomlj:1.1.1")
implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
implementation("org.jetbrains.kotlin:kotlin-reflect:1.9.23")
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.18.1")
testImplementation(platform("org.junit:junit-bom:5.7.1"))
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.23.5")
testImplementation(platform("org.junit:junit-bom:5.10.2"))
testImplementation("io.kotest:kotest-runner-junit5:4.4.3")
testImplementation("io.kotest:kotest-assertions-core:4.4.3")
testImplementation("io.kotest:kotest-property:4.4.3")
testImplementation("io.kotest:kotest-runner-junit5:5.8.1")
testImplementation("io.kotest:kotest-assertions-core:5.8.1")
testImplementation("io.kotest:kotest-property:5.8.1")