You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by sh...@apache.org on 2023/06/16 13:01:50 UTC
[daffodil-vscode] branch main updated: Throw parse errors
This is an automated email from the ASF dual-hosted git repository.
shanedell pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil-vscode.git
The following commit(s) were added to refs/heads/main by this push:
new 818dfc1 Throw parse errors
818dfc1 is described below
commit 818dfc1ba2cdd931441e8dc7ea7753438cb7ae2f
Author: Shane Dell <sh...@gmail.com>
AuthorDate: Thu Jun 15 13:52:46 2023 -0400
Throw parse errors
- Update debugger to check if the parse errored. If it does it will throw the error.
- Add some notes to the typescript for code that possibly be removed and moved.
Closes #648
---
.gitignore | 3 +++
.../org.apache.daffodil.debugger.dap/Parse.scala | 29 ++++++++++++++++++----
src/adapter/activateDaffodilDebug.ts | 1 +
src/adapter/debugAdapter.ts | 2 ++
src/adapter/extension.ts | 3 +++
5 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/.gitignore b/.gitignore
index f1104d6..d05bd99 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,6 +37,9 @@ src/version.ts
# scala metals vscode extension compiled folder
.metals
+.bloop
+project
+metals.sbt
# application build
# todo;; the build logic needs refactored to write these elsewhere
diff --git a/server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala b/server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala
index bd74dbc..8ac32aa 100644
--- a/server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala
+++ b/server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala
@@ -50,6 +50,9 @@ import org.typelevel.log4cats.Logger
import org.typelevel.log4cats.slf4j.Slf4jLogger
import scala.collection.JavaConverters._
import scala.util.Try
+import cats.effect.kernel.Resource.ExitCase.Errored
+import cats.effect.kernel.Resource.ExitCase.Canceled
+import cats.effect.kernel.Resource.ExitCase.Succeeded
trait Parse {
@@ -97,12 +100,22 @@ object Parse {
val parse =
IO.interruptibleMany {
- dp.parse(
+ val parse_res = dp.parse(
new InputSourceDataInputStream(data),
infosetOutputter
- ) // WARNING: parse doesn't close the OutputStream, so closed below
- }.guaranteeCase(outcome => Logger[IO].debug(s"parse finished: $outcome"))
- .void
+ )
+
+ parse_res.isError match {
+ case true =>
+ throw new Error(
+ parse_res.getDiagnostics
+ .map(d => d.toString)
+ .mkString("\n")
+ )
+ case _ => parse_res
+ }
+ // WARNING: parse doesn't close the OutputStream, so closed below
+ }.void
stopper &> parse.guarantee(IO(os.close) *> done.set(true))
}
@@ -731,7 +744,13 @@ object Parse {
.concurrently(
Stream(
Stream.eval(startup),
- parsing.onFinalizeCase(ec => Logger[IO].debug(s"parsing: $ec")),
+ parsing.onFinalizeCase(ec =>
+ Logger[IO].debug(s"parsing: ${ec match {
+ case Errored(_) => "Errored"
+ case Canceled => "Canceled"
+ case Succeeded => "Succeeded"
+ }}")
+ ),
deliverParseData.onFinalizeCase {
case ec @ Resource.ExitCase.Errored(e) =>
Logger[IO].warn(e)(s"deliverParseData: $ec")
diff --git a/src/adapter/activateDaffodilDebug.ts b/src/adapter/activateDaffodilDebug.ts
index f642db1..a1c57b2 100644
--- a/src/adapter/activateDaffodilDebug.ts
+++ b/src/adapter/activateDaffodilDebug.ts
@@ -474,6 +474,7 @@ export const workspaceFileAccessor: FileAccessor = {
},
}
+// TODO: Move to extension.ts
class InlineDebugAdapterFactory
implements vscode.DebugAdapterDescriptorFactory
{
diff --git a/src/adapter/debugAdapter.ts b/src/adapter/debugAdapter.ts
index ba729f9..85ce9b8 100644
--- a/src/adapter/debugAdapter.ts
+++ b/src/adapter/debugAdapter.ts
@@ -1,3 +1,5 @@
+// NOTE: Might be able to removed. Only used for a test
+
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
diff --git a/src/adapter/extension.ts b/src/adapter/extension.ts
index c550d48..bedd81d 100644
--- a/src/adapter/extension.ts
+++ b/src/adapter/extension.ts
@@ -66,6 +66,7 @@ export function deactivate() {
position.deactivate()
}
+// NOTE: Can this be removed? Its never used we only ever use inline and provide no way to change it
class DebugAdapterExecutableFactory
implements vscode.DebugAdapterDescriptorFactory
{
@@ -102,6 +103,7 @@ class DebugAdapterExecutableFactory
}
}
+// NOTE: Can this be removed? Its never used we only ever use inline and provide no way to change it
class DaffodilDebugAdapterServerDescriptorFactory
implements vscode.DebugAdapterDescriptorFactory
{
@@ -140,6 +142,7 @@ class DaffodilDebugAdapterServerDescriptorFactory
}
}
+// NOTE: Can this be removed? Its never used we only ever use inline and provide no way to change it
class DaffodilDebugAdapterNamedPipeServerDescriptorFactory
implements vscode.DebugAdapterDescriptorFactory
{