use ? line numbers when position is unknown in --lint
I only did this for compile errors, not parse errors or lint errors.
This commit is contained in:
parent
e2e020e3ba
commit
ad136b00ec
@ -2,17 +2,17 @@
|
||||
(local dispatch (require :fennel-ls.dispatch))
|
||||
(local json-rpc (require :fennel-ls.json-rpc))
|
||||
(local files (require :fennel-ls.files))
|
||||
(local {: severity->string} (require :fennel-ls.message))
|
||||
(local {: severity->string &as message} (require :fennel-ls.message))
|
||||
|
||||
(fn print-diagnostic [filename message ?range ?severity]
|
||||
(fn print-diagnostic [filename msg range ?severity]
|
||||
(print (: "%s:%s:%s: %s: %s" :format
|
||||
filename
|
||||
;; LSP line numbers are zero-indexed, but Emacs and Vim both use
|
||||
;; 1-indexing for this.
|
||||
(+ (or (?. ?range :start :line) 0) 1)
|
||||
(or (?. ?range :start :character) "?")
|
||||
(if (= range message.unknown-range) "?" (+ range.start.line 1))
|
||||
(if (= range message.unknown-range) "?" range.start.character)
|
||||
(or (. severity->string ?severity) "?")
|
||||
message)))
|
||||
msg)))
|
||||
|
||||
(fn initialize [server]
|
||||
(let [params {:id 1
|
||||
|
||||
@ -300,7 +300,7 @@ identifiers are declared / referenced in which places."
|
||||
|
||||
(λ on-compile-error [_ msg ast call-me-to-reset-the-compiler]
|
||||
(let [range (or (message.ast->range server file ast)
|
||||
(line+byte->range server file 1 1))]
|
||||
message.unknown-range)]
|
||||
(table.insert diagnostics
|
||||
{:range range
|
||||
:message msg
|
||||
|
||||
@ -66,6 +66,9 @@ LSP json objects."
|
||||
: id
|
||||
:result (nullify ?result)})
|
||||
|
||||
(local unknown-range {:start {:line 0 :character 0}
|
||||
:end {:line 0 :character 0}})
|
||||
|
||||
(λ ast->range [server file ?ast]
|
||||
(case (fennel.ast-source ?ast)
|
||||
{: bytestart : byteend} {:start (utils.byte->position file.text bytestart
|
||||
@ -133,4 +136,5 @@ LSP json objects."
|
||||
: diagnostics
|
||||
: severity
|
||||
: severity->string
|
||||
: show-message}
|
||||
: show-message
|
||||
: unknown-range}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user