java.util.concurrent.ExecutionException: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: DecodingFailure(Attempt to decode value on failed cursor, List(DownField(providesFileWatching), DownField(capabilities)))
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)
at scala.meta.internal.metals.BuildServerConnection$.initialize(BuildServerConnection.scala:176)
at scala.meta.internal.metals.BuildServerConnection$.fromStreams(BuildServerConnection.scala:129)
at scala.meta.internal.metals.BloopServers.$anonfun$newServer$1(BloopServers.scala:71)
at scala.util.Success.$anonfun$map$1(Try.scala:255)
at scala.util.Success.map(Try.scala:213)
at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)
at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)
at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: DecodingFailure(Attempt to decode value on failed cursor, List(DownField(providesFileWatching), DownField(capabilities)))
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:209)
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:193)
at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
sbt:OrderService> scalafix RemoveUnused
[info] Running scalafix on 10 Scala sources
[info] Running scalafix on 6 Scala sources
[info] Running scalafix on 3 Scala sources
[info] Running scalafix on 50 Scala sources
[success] Total time: 1 s, completed Dec 17, 2019 12:35:41 PM
@BBartosz you can generate programs by constructing trees and printing them with Scalameta. Macros allow you to do roughly the same thing, except you do it during the compilation of your program
How exactly you generate them? I understand that you use quasiquotes to build your tree and then you save it to file, kinda like string?
Hi all, wondering if someone could clarify the behavior of the semanticdb-scalac plugin for me. I'm running this command:
$ ~/Downloads/scala-2.13.1/bin/scalac -Xplugin:$(realpath ~/Downloads/semanticdb-scalac_2.13.1-4.3.0.jar) -Yrangepos -Xplugin-require:semanticdb HelloWorld.scala
I'm expecting to see semanticdb files in META-INF/semanticdb
, but I do not. In fact, if I create the META-INF/semanticdb
directory before running the above command, the semanticdb
directory is deleted.
targetroot
option as well❯ cs launch scala:2.13.1 -- -Xplugin:$(cs fetch --intransitive org.scalameta:semanticdb-scalac_2.13.1:4.3.7) -Yrangepos -Xplugin-require:semanticdb -P:semanticdb:targetroot:$(pwd) foo.scala
❯ tree
.
├── foo.scala
└── META-INF
└── semanticdb
└── foo.scala.semanticdb
cs
is coursier from https://get-coursier.io/docs/cli-overview
Source.toString
gives you the code that you can feed to eval
trait NullaryEtaExpansionScala[A] {
def prop: A
def meth(): A
def def_prop = prop _
def def_meth = meth _
}
$ type metac
metac is aliased to `coursier launch org.scalameta:metac_2.12.11:4.3.7 -- -cp /Users/dnw/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.11/scala-library-2.12.11.jar'
$ type metap
metap is aliased to `coursier launch -M scala.meta.cli.Metap org.scalameta:scalameta_2.12:4.3.7 --'
$ metac -P:semanticdb:synthetics:on NullaryEtaExpansionScala.scala
$ tree META-INF/
META-INF/
└── semanticdb
└── NullaryEtaExpansionScala.scala.semanticdb
1 directory, 1 file
$ metap .
NullaryEtaExpansionScala.scala
------------------------------
Summary:
Schema => SemanticDB v4
Uri => NullaryEtaExpansionScala.scala
Text => empty
Language => Scala
Symbols => 6 entries
Occurrences => 10 entries
Symbols:
_empty_/NullaryEtaExpansionScala# => trait NullaryEtaExpansionScala[A] extends AnyRef { +4 decls }
_empty_/NullaryEtaExpansionScala#[A] => typeparam A
_empty_/NullaryEtaExpansionScala#def_meth(). => method def_meth: Function0[A]
_empty_/NullaryEtaExpansionScala#def_prop(). => method def_prop: Function0[A]
_empty_/NullaryEtaExpansionScala#meth(). => abstract method meth(): A
_empty_/NullaryEtaExpansionScala#prop(). => abstract method prop: A
Occurrences:
[0:6..0:30) <= _empty_/NullaryEtaExpansionScala#
[0:31..0:32) <= _empty_/NullaryEtaExpansionScala#[A]
[1:6..1:10) <= _empty_/NullaryEtaExpansionScala#prop().
[1:12..1:13) => _empty_/NullaryEtaExpansionScala#[A]
[2:6..2:10) <= _empty_/NullaryEtaExpansionScala#meth().
[2:14..2:15) => _empty_/NullaryEtaExpansionScala#[A]
[4:6..4:14) <= _empty_/NullaryEtaExpansionScala#def_prop().
[4:17..4:21) => local0
[5:6..5:14) <= _empty_/NullaryEtaExpansionScala#def_meth().
[5:17..5:21) => local1
$
prop().
and no link from symbol local0
, right?