mirror of https://github.com/sbt/sbt.git
Add resourcesProvider flag to BuildServerCapabilities in BSP contra
This commit is contained in:
parent
a0e3d89855
commit
f3ec202a06
|
|
@ -42,6 +42,7 @@ object BuildServerProtocol {
|
||||||
TestProvider(BuildServerConnection.languages),
|
TestProvider(BuildServerConnection.languages),
|
||||||
RunProvider(BuildServerConnection.languages),
|
RunProvider(BuildServerConnection.languages),
|
||||||
dependencySourcesProvider = true,
|
dependencySourcesProvider = true,
|
||||||
|
resourcesProvider = true,
|
||||||
canReload = true
|
canReload = true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,22 +16,23 @@ final class BuildServerCapabilities private (
|
||||||
val testProvider: Option[sbt.internal.bsp.TestProvider],
|
val testProvider: Option[sbt.internal.bsp.TestProvider],
|
||||||
val runProvider: Option[sbt.internal.bsp.RunProvider],
|
val runProvider: Option[sbt.internal.bsp.RunProvider],
|
||||||
val dependencySourcesProvider: Option[Boolean],
|
val dependencySourcesProvider: Option[Boolean],
|
||||||
|
val resourcesProvider: Option[Boolean],
|
||||||
val canReload: Option[Boolean]) extends Serializable {
|
val canReload: Option[Boolean]) extends Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
override def equals(o: Any): Boolean = this.eq(o.asInstanceOf[AnyRef]) || (o match {
|
override def equals(o: Any): Boolean = this.eq(o.asInstanceOf[AnyRef]) || (o match {
|
||||||
case x: BuildServerCapabilities => (this.compileProvider == x.compileProvider) && (this.testProvider == x.testProvider) && (this.runProvider == x.runProvider) && (this.dependencySourcesProvider == x.dependencySourcesProvider) && (this.canReload == x.canReload)
|
case x: BuildServerCapabilities => (this.compileProvider == x.compileProvider) && (this.testProvider == x.testProvider) && (this.runProvider == x.runProvider) && (this.dependencySourcesProvider == x.dependencySourcesProvider) && (this.resourcesProvider == x.resourcesProvider) && (this.canReload == x.canReload)
|
||||||
case _ => false
|
case _ => false
|
||||||
})
|
})
|
||||||
override def hashCode: Int = {
|
override def hashCode: Int = {
|
||||||
37 * (37 * (37 * (37 * (37 * (37 * (17 + "sbt.internal.bsp.BuildServerCapabilities".##) + compileProvider.##) + testProvider.##) + runProvider.##) + dependencySourcesProvider.##) + canReload.##)
|
37 * (37 * (37 * (37 * (37 * (37 * (37 * (17 + "sbt.internal.bsp.BuildServerCapabilities".##) + compileProvider.##) + testProvider.##) + runProvider.##) + dependencySourcesProvider.##) + resourcesProvider.##) + canReload.##)
|
||||||
}
|
}
|
||||||
override def toString: String = {
|
override def toString: String = {
|
||||||
"BuildServerCapabilities(" + compileProvider + ", " + testProvider + ", " + runProvider + ", " + dependencySourcesProvider + ", " + canReload + ")"
|
"BuildServerCapabilities(" + compileProvider + ", " + testProvider + ", " + runProvider + ", " + dependencySourcesProvider + ", " + resourcesProvider + ", " + canReload + ")"
|
||||||
}
|
}
|
||||||
private[this] def copy(compileProvider: Option[sbt.internal.bsp.CompileProvider] = compileProvider, testProvider: Option[sbt.internal.bsp.TestProvider] = testProvider, runProvider: Option[sbt.internal.bsp.RunProvider] = runProvider, dependencySourcesProvider: Option[Boolean] = dependencySourcesProvider, canReload: Option[Boolean] = canReload): BuildServerCapabilities = {
|
private[this] def copy(compileProvider: Option[sbt.internal.bsp.CompileProvider] = compileProvider, testProvider: Option[sbt.internal.bsp.TestProvider] = testProvider, runProvider: Option[sbt.internal.bsp.RunProvider] = runProvider, dependencySourcesProvider: Option[Boolean] = dependencySourcesProvider, resourcesProvider: Option[Boolean] = resourcesProvider, canReload: Option[Boolean] = canReload): BuildServerCapabilities = {
|
||||||
new BuildServerCapabilities(compileProvider, testProvider, runProvider, dependencySourcesProvider, canReload)
|
new BuildServerCapabilities(compileProvider, testProvider, runProvider, dependencySourcesProvider, resourcesProvider, canReload)
|
||||||
}
|
}
|
||||||
def withCompileProvider(compileProvider: Option[sbt.internal.bsp.CompileProvider]): BuildServerCapabilities = {
|
def withCompileProvider(compileProvider: Option[sbt.internal.bsp.CompileProvider]): BuildServerCapabilities = {
|
||||||
copy(compileProvider = compileProvider)
|
copy(compileProvider = compileProvider)
|
||||||
|
|
@ -57,6 +58,12 @@ final class BuildServerCapabilities private (
|
||||||
def withDependencySourcesProvider(dependencySourcesProvider: Boolean): BuildServerCapabilities = {
|
def withDependencySourcesProvider(dependencySourcesProvider: Boolean): BuildServerCapabilities = {
|
||||||
copy(dependencySourcesProvider = Option(dependencySourcesProvider))
|
copy(dependencySourcesProvider = Option(dependencySourcesProvider))
|
||||||
}
|
}
|
||||||
|
def withResourcesProvider(resourcesProvider: Option[Boolean]): BuildServerCapabilities = {
|
||||||
|
copy(resourcesProvider = resourcesProvider)
|
||||||
|
}
|
||||||
|
def withResourcesProvider(resourcesProvider: Boolean): BuildServerCapabilities = {
|
||||||
|
copy(resourcesProvider = Option(resourcesProvider))
|
||||||
|
}
|
||||||
def withCanReload(canReload: Option[Boolean]): BuildServerCapabilities = {
|
def withCanReload(canReload: Option[Boolean]): BuildServerCapabilities = {
|
||||||
copy(canReload = canReload)
|
copy(canReload = canReload)
|
||||||
}
|
}
|
||||||
|
|
@ -66,6 +73,6 @@ final class BuildServerCapabilities private (
|
||||||
}
|
}
|
||||||
object BuildServerCapabilities {
|
object BuildServerCapabilities {
|
||||||
|
|
||||||
def apply(compileProvider: Option[sbt.internal.bsp.CompileProvider], testProvider: Option[sbt.internal.bsp.TestProvider], runProvider: Option[sbt.internal.bsp.RunProvider], dependencySourcesProvider: Option[Boolean], canReload: Option[Boolean]): BuildServerCapabilities = new BuildServerCapabilities(compileProvider, testProvider, runProvider, dependencySourcesProvider, canReload)
|
def apply(compileProvider: Option[sbt.internal.bsp.CompileProvider], testProvider: Option[sbt.internal.bsp.TestProvider], runProvider: Option[sbt.internal.bsp.RunProvider], dependencySourcesProvider: Option[Boolean], resourcesProvider: Option[Boolean], canReload: Option[Boolean]): BuildServerCapabilities = new BuildServerCapabilities(compileProvider, testProvider, runProvider, dependencySourcesProvider, resourcesProvider, canReload)
|
||||||
def apply(compileProvider: sbt.internal.bsp.CompileProvider, testProvider: sbt.internal.bsp.TestProvider, runProvider: sbt.internal.bsp.RunProvider, dependencySourcesProvider: Boolean, canReload: Boolean): BuildServerCapabilities = new BuildServerCapabilities(Option(compileProvider), Option(testProvider), Option(runProvider), Option(dependencySourcesProvider), Option(canReload))
|
def apply(compileProvider: sbt.internal.bsp.CompileProvider, testProvider: sbt.internal.bsp.TestProvider, runProvider: sbt.internal.bsp.RunProvider, dependencySourcesProvider: Boolean, resourcesProvider: Boolean, canReload: Boolean): BuildServerCapabilities = new BuildServerCapabilities(Option(compileProvider), Option(testProvider), Option(runProvider), Option(dependencySourcesProvider), Option(resourcesProvider), Option(canReload))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,10 @@ implicit lazy val BuildServerCapabilitiesFormat: JsonFormat[sbt.internal.bsp.Bui
|
||||||
val testProvider = unbuilder.readField[Option[sbt.internal.bsp.TestProvider]]("testProvider")
|
val testProvider = unbuilder.readField[Option[sbt.internal.bsp.TestProvider]]("testProvider")
|
||||||
val runProvider = unbuilder.readField[Option[sbt.internal.bsp.RunProvider]]("runProvider")
|
val runProvider = unbuilder.readField[Option[sbt.internal.bsp.RunProvider]]("runProvider")
|
||||||
val dependencySourcesProvider = unbuilder.readField[Option[Boolean]]("dependencySourcesProvider")
|
val dependencySourcesProvider = unbuilder.readField[Option[Boolean]]("dependencySourcesProvider")
|
||||||
|
val resourcesProvider = unbuilder.readField[Option[Boolean]]("resourcesProvider")
|
||||||
val canReload = unbuilder.readField[Option[Boolean]]("canReload")
|
val canReload = unbuilder.readField[Option[Boolean]]("canReload")
|
||||||
unbuilder.endObject()
|
unbuilder.endObject()
|
||||||
sbt.internal.bsp.BuildServerCapabilities(compileProvider, testProvider, runProvider, dependencySourcesProvider, canReload)
|
sbt.internal.bsp.BuildServerCapabilities(compileProvider, testProvider, runProvider, dependencySourcesProvider, resourcesProvider, canReload)
|
||||||
case None =>
|
case None =>
|
||||||
deserializationError("Expected JsObject but found None")
|
deserializationError("Expected JsObject but found None")
|
||||||
}
|
}
|
||||||
|
|
@ -28,6 +29,7 @@ implicit lazy val BuildServerCapabilitiesFormat: JsonFormat[sbt.internal.bsp.Bui
|
||||||
builder.addField("testProvider", obj.testProvider)
|
builder.addField("testProvider", obj.testProvider)
|
||||||
builder.addField("runProvider", obj.runProvider)
|
builder.addField("runProvider", obj.runProvider)
|
||||||
builder.addField("dependencySourcesProvider", obj.dependencySourcesProvider)
|
builder.addField("dependencySourcesProvider", obj.dependencySourcesProvider)
|
||||||
|
builder.addField("resourcesProvider", obj.resourcesProvider)
|
||||||
builder.addField("canReload", obj.canReload)
|
builder.addField("canReload", obj.canReload)
|
||||||
builder.endObject()
|
builder.endObject()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,7 @@ type BuildServerCapabilities {
|
||||||
|
|
||||||
# The server provides all the resource dependencies
|
# The server provides all the resource dependencies
|
||||||
# via method buildTarget/resources
|
# via method buildTarget/resources
|
||||||
# resourcesProvider: Boolean
|
resourcesProvider: Boolean
|
||||||
|
|
||||||
## Reloading the workspace state through workspace/reload is supported
|
## Reloading the workspace state through workspace/reload is supported
|
||||||
canReload: Boolean
|
canReload: Boolean
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@ object BuildServerTest extends AbstractServerTest {
|
||||||
test("build/initialize") { _ =>
|
test("build/initialize") { _ =>
|
||||||
initializeRequest()
|
initializeRequest()
|
||||||
assert(svr.waitForString(10.seconds) { s =>
|
assert(svr.waitForString(10.seconds) { s =>
|
||||||
s contains """"id":"10""""
|
(s contains """"id":"10"""") &&
|
||||||
|
(s contains """"resourcesProvider":true""")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue