Scripting: save inputs stamp and diagnostics to file attributes

Check if they are up to date and initiate configuration update only in case they are out of date

^KT-35205
This commit is contained in:
Natalia Selezneva
2019-12-11 13:25:20 +03:00
parent 13b4e8716c
commit 2f35d6d868
8 changed files with 114 additions and 93 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -10,7 +10,7 @@ package kotlin.script.experimental.api
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.PrintStream
import java.lang.RuntimeException
import java.io.Serializable
/**
* The single script diagnostic report
@@ -25,7 +25,7 @@ data class ScriptDiagnostic(
val sourcePath: String? = null,
val location: SourceCode.Location? = null,
val exception: Throwable? = null
) {
) : Serializable {
/**
* The diagnostic severity
*/
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -36,21 +36,21 @@ interface SourceCode {
* @param col source code position column
* @param absolutePos absolute source code text position, if available
*/
data class Position(val line: Int, val col: Int, val absolutePos: Int? = null)
data class Position(val line: Int, val col: Int, val absolutePos: Int? = null) : Serializable
/**
* The source code positions range
* @param start range start position
* @param end range end position (after the last char)
*/
data class Range(val start: Position, val end: Position)
data class Range(val start: Position, val end: Position) : Serializable
/**
* The source code location, pointing either at a position or at a range
* @param start location start position
* @param end optional range location end position (after the last char)
*/
data class Location(val start: Position, val end: Position? = null)
data class Location(val start: Position, val end: Position? = null) : Serializable
}
/**