firefly-compiler 0.5.67 → 0.5.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core/Lock.ff CHANGED
@@ -82,7 +82,7 @@ extend self: LockCondition {
82
82
  error = e!
83
83
  }
84
84
  }
85
- if(error.isUndefined()) {Js.throw(error)}
85
+ if(!error.isUndefined()) {Js.throw(error)}
86
86
  }
87
87
  }
88
88
 
package/lsp/Handler.ff CHANGED
@@ -76,6 +76,7 @@ extend self: Handler {
76
76
  let diagnostics = self.handleFocusDiagnostic(system, parameters, version)
77
77
  [Pair("textDocument/publishDiagnostics", diagnostics)]
78
78
  | "custom/focusDocument" =>
79
+ self.importSymbolsCache = Pair("", [])
79
80
  let diagnostics = self.handleFocusDiagnostic(system, parameters, version)
80
81
  [Pair("textDocument/publishDiagnostics", diagnostics)]
81
82
  | "workspace/didRenameFiles" =>
@@ -240,7 +241,6 @@ extend self: Handler {
240
241
  }*/
241
242
 
242
243
  handleFocusDiagnostic(system: NodeSystem, parameters: Map[String, Json], version: Int): Json {
243
- self.importSymbolsCache = Pair("", [])
244
244
  let js = system.js()
245
245
  let uri = parameters.grab("textDocument").field("uri").grabString()
246
246
  let path = system.pathFromUrl(uri)
@@ -63,26 +63,40 @@ main(system: NodeSystem) {
63
63
  let request = requestPair.first
64
64
  let message = parseRequestMessage(request.object)
65
65
  logDirectory.each {logMessage(_, "request", request.object, message.method)}
66
- spawn(message.id) {_ =>
66
+ spawn(message.id) {task =>
67
67
  try {
68
68
  if(message.method == "$/cancelRequest") {
69
69
  abort(Some(parseMessageId(message.parameters.grab("id"))))
70
70
  }
71
71
  handleRequestMessage(system, handler, message, version).each {body =>
72
+ //task.sleep(Duration(1.0))
72
73
  responseChannel.write(Pair(body, message.method))
73
74
  }
74
75
  } catchAny {error =>
75
- let problem = if(error.name() == "AbortError") {
76
+ // TODO: Sometimes the "Error" is an "Event" instead of type "abort" - why?
77
+ let problem = if(error.name() == "AbortError" || error!->type === "abort") {
76
78
  Log.trace("LS ABORT")
77
79
  Error(-32800, "Request cancelled")
78
80
  } else {
79
81
  Log.trace("LS ERROR " + error.name() + ": " + error.message())
82
+ // Log.trace("LS ERROR MORE: " + error!->type?)
83
+ Log.trace("BEGIN LS ERROR STACK TRACE")
80
84
  Log.trace(error.stack())
85
+ Log.trace("END LS ERROR STACK TRACE")
81
86
  Error(-32603, "Internal error")
82
87
  }
83
88
  message.id.each {id =>
84
89
  let body = makeResponseMessage(id, problem)
85
- responseChannel.write(Pair(body, message.method))
90
+ try {
91
+ responseChannel.write(Pair(body, message.method))
92
+ } catchAny {error =>
93
+ if(error.name() == "AbortError") {
94
+ Log.trace("LS ABORT WRITE")
95
+ let writeProblem = Error(-32800, "Request cancelled")
96
+ let writeMessage = makeResponseMessage(id, problem)
97
+ responseChannel.write(Pair(writeMessage, message.method))
98
+ }
99
+ }
86
100
  }
87
101
  }
88
102
  }
@@ -225,7 +225,7 @@ acquired_ = true
225
225
  error_ = e_
226
226
  }
227
227
  };
228
- if(ff_core_JsValue.JsValue_isUndefined(error_)) {
228
+ if((!ff_core_JsValue.JsValue_isUndefined(error_))) {
229
229
  throw error_
230
230
  }
231
231
  }
@@ -299,7 +299,7 @@ acquired_ = true
299
299
  error_ = e_
300
300
  }
301
301
  };
302
- if(ff_core_JsValue.JsValue_isUndefined(error_)) {
302
+ if((!ff_core_JsValue.JsValue_isUndefined(error_))) {
303
303
  throw error_
304
304
  }
305
305
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "description": "Firefly compiler",
5
5
  "author": "Firefly team",
6
6
  "license": "MIT",
7
- "version": "0.5.67",
7
+ "version": "0.5.69",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/Ahnfelt/firefly-boot"
@@ -4,7 +4,7 @@
4
4
  "description": "Firefly language support",
5
5
  "author": "Firefly team",
6
6
  "license": "MIT",
7
- "version": "0.5.67",
7
+ "version": "0.5.69",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/Ahnfelt/firefly-boot"