mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-11-28 11:40:11 +03:00
language-server: fixup tests
This commit is contained in:
parent
04225dff73
commit
3187d6725b
@ -178,7 +178,6 @@
|
|||||||
++ handle-did-save
|
++ handle-did-save
|
||||||
|= [uri=@t version=(unit @)]
|
|= [uri=@t version=(unit @)]
|
||||||
^- (quip card _state)
|
^- (quip card _state)
|
||||||
~& "Committing"
|
|
||||||
:_ state
|
:_ state
|
||||||
:_ (give-rpc-notification (get-diagnostics uri))
|
:_ (give-rpc-notification (get-diagnostics uri))
|
||||||
:*
|
:*
|
||||||
@ -206,7 +205,6 @@
|
|||||||
?. ?=([%made *] gift)
|
?. ?=([%made *] gift)
|
||||||
[~ state]
|
[~ state]
|
||||||
?. ?=([%complete *] result.gift)
|
?. ?=([%complete *] result.gift)
|
||||||
~& tang.result.gift
|
|
||||||
[~ state]
|
[~ state]
|
||||||
=/ uri=@t
|
=/ uri=@t
|
||||||
(snag 1 path)
|
(snag 1 path)
|
||||||
@ -225,7 +223,6 @@
|
|||||||
[%error *]
|
[%error *]
|
||||||
=/ error-ranges=(list =range:lsp-sur)
|
=/ error-ranges=(list =range:lsp-sur)
|
||||||
(get-errors-from-tang:build uri message.build-result)
|
(get-errors-from-tang:build uri message.build-result)
|
||||||
~& message.build-result
|
|
||||||
?~ error-ranges
|
?~ error-ranges
|
||||||
[~ state]
|
[~ state]
|
||||||
=. ford-diagnostics
|
=. ford-diagnostics
|
||||||
@ -265,10 +262,8 @@
|
|||||||
^- (list diagnostic:lsp-sur)
|
^- (list diagnostic:lsp-sur)
|
||||||
=/ t=tape
|
=/ t=tape
|
||||||
(zing (join "\0a" `wall`(~(got by bufs) uri)))
|
(zing (join "\0a" `wall`(~(got by bufs) uri)))
|
||||||
:: ~& t
|
|
||||||
=/ parse
|
=/ parse
|
||||||
(lily:auto t (lsp-parser *beam))
|
(lily:auto t (lsp-parser *beam))
|
||||||
:: ~& parse
|
|
||||||
?. ?=(%| -.parse)
|
?. ?=(%| -.parse)
|
||||||
~
|
~
|
||||||
=/ loc=position:lsp-sur
|
=/ loc=position:lsp-sur
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
(parse-error p.tank)
|
(parse-error p.tank)
|
||||||
?~ error
|
?~ error
|
||||||
~
|
~
|
||||||
~& path.u.error
|
|
||||||
?: =(path path.u.error)
|
?: =(path path.u.error)
|
||||||
`range.u.error
|
`range.u.error
|
||||||
~
|
~
|
||||||
|
@ -92,7 +92,6 @@
|
|||||||
|= jon=json
|
|= jon=json
|
||||||
^- text-document--did-change:notification:lsp
|
^- text-document--did-change:notification:lsp
|
||||||
:- %text-document--did-change
|
:- %text-document--did-change
|
||||||
=, dejs:format
|
|
||||||
%. jon
|
%. jon
|
||||||
%: ot
|
%: ot
|
||||||
'textDocument'^text-document-id
|
'textDocument'^text-document-id
|
||||||
@ -103,7 +102,6 @@
|
|||||||
++ text-document--did-open
|
++ text-document--did-open
|
||||||
|= jon=json
|
|= jon=json
|
||||||
^- text-document--did-open:notification:lsp
|
^- text-document--did-open:notification:lsp
|
||||||
=, dejs:format
|
|
||||||
?> ?=([%o *] jon)
|
?> ?=([%o *] jon)
|
||||||
:- %text-document--did-open
|
:- %text-document--did-open
|
||||||
(text-document-item (~(got by p.jon) 'textDocument'))
|
(text-document-item (~(got by p.jon) 'textDocument'))
|
||||||
@ -114,7 +112,6 @@
|
|||||||
|= jon=json
|
|= jon=json
|
||||||
^- text-document-item:lsp
|
^- text-document-item:lsp
|
||||||
%. jon
|
%. jon
|
||||||
=, dejs:format
|
|
||||||
%: ot
|
%: ot
|
||||||
uri+so
|
uri+so
|
||||||
version+(mu ni)
|
version+(mu ni)
|
||||||
@ -130,7 +127,6 @@
|
|||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ text-document-changes
|
++ text-document-changes
|
||||||
=, dejs:format
|
|
||||||
%- ar
|
%- ar
|
||||||
%: ou
|
%: ou
|
||||||
range+(uf ~ (pe ~ range))
|
range+(uf ~ (pe ~ range))
|
||||||
@ -198,7 +194,6 @@
|
|||||||
==
|
==
|
||||||
~! -.notification
|
~! -.notification
|
||||||
=/ method=cord (crip (unparse-method -.notification))
|
=/ method=cord (crip (unparse-method -.notification))
|
||||||
~& method
|
|
||||||
%: pairs
|
%: pairs
|
||||||
method+s+method
|
method+s+method
|
||||||
params+params
|
params+params
|
||||||
@ -278,97 +273,5 @@
|
|||||||
~
|
~
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
|
|
||||||
--
|
--
|
||||||
:: examples
|
|
||||||
++ pos-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
%: malt
|
|
||||||
['character' %n '3']
|
|
||||||
['line' %n '5']
|
|
||||||
~
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ range-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
%: malt
|
|
||||||
['start' pos-jon]
|
|
||||||
['end' pos-jon]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ change-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
%: malt
|
|
||||||
['text' `json`[%s `@t`'text']]
|
|
||||||
['rangeLength' [%n '3']]
|
|
||||||
['range' range-jon]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ changes-jon
|
|
||||||
^- json
|
|
||||||
:- %a
|
|
||||||
^- (list json)
|
|
||||||
[change-jon ~]
|
|
||||||
::
|
|
||||||
++ text-document-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
%: malt
|
|
||||||
['uri' `json`[%s 'file://']]
|
|
||||||
['version' `json`[%n '1']]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ did-change-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
%: malt
|
|
||||||
['contentChanges' changes-jon]
|
|
||||||
['textDocument' text-document-jon]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ did-c-event-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
%: malt
|
|
||||||
['id' `json`[%s '1']]
|
|
||||||
['method' `json`[%s `@t`'textDocument/didChange']]
|
|
||||||
['params' did-change-jon]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ did-open-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
%: malt
|
|
||||||
['textDocument' text-document-item-jon]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ did-open-event-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
^- (map cord json)
|
|
||||||
%: malt
|
|
||||||
['id' `json`[%s '3']]
|
|
||||||
['method' `json`[%s 'textDocument/didOpen']]
|
|
||||||
['params' did-open-jon]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
++ text-document-item-jon
|
|
||||||
^- json
|
|
||||||
:- %o
|
|
||||||
^- (map cord json)
|
|
||||||
%: malt
|
|
||||||
['text' `json`[%s 'text']]
|
|
||||||
['uri' `json`[%s 'file://uri']]
|
|
||||||
['version' `json`[%n '1']]
|
|
||||||
~
|
|
||||||
==
|
|
||||||
--
|
--
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
:: tests for lsp JSON parsing
|
:: tests for lsp JSON parsing
|
||||||
/- lsp-types=language-server
|
/- lsp-sur=language-server
|
||||||
/+ *test, *language-server-json
|
/+ *test, *language-server-json
|
||||||
|
=, enjs:format
|
||||||
|%
|
|%
|
||||||
::
|
::
|
||||||
++ pos-jon
|
++ position
|
||||||
|
[5 3]
|
||||||
|
++ position-jon
|
||||||
^- json
|
^- json
|
||||||
:- %o
|
:- %o
|
||||||
%: malt
|
%: malt
|
||||||
@ -12,12 +15,15 @@
|
|||||||
~
|
~
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
|
++ range
|
||||||
|
[position position]
|
||||||
|
::
|
||||||
++ range-jon
|
++ range-jon
|
||||||
^- json
|
^- json
|
||||||
:- %o
|
:- %o
|
||||||
%: malt
|
%: malt
|
||||||
['start' pos-jon]
|
['start' position-jon]
|
||||||
['end' pos-jon]
|
['end' position-jon]
|
||||||
~
|
~
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
@ -37,24 +43,160 @@
|
|||||||
^- (list json)
|
^- (list json)
|
||||||
[change-jon ~]
|
[change-jon ~]
|
||||||
::
|
::
|
||||||
++ text-document-jon
|
++ text-document-item
|
||||||
|
^- text-document-item:lsp-sur
|
||||||
|
['file://' `1 'text']
|
||||||
|
::
|
||||||
|
++ text-document-item-jon
|
||||||
^- json
|
^- json
|
||||||
:- %o
|
:- %o
|
||||||
%: malt
|
%: malt
|
||||||
['uri' %s 'file://']
|
['uri' `json`[%s 'file://']]
|
||||||
['version' %s '1']
|
['version' `json`[%n '1']]
|
||||||
|
['text' `json`[%s 'text']]
|
||||||
~
|
~
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ test-parse-did-change
|
++ text-document-id
|
||||||
%+ expect-eq
|
^- versioned-doc-id:lsp-sur
|
||||||
!> [%text-document--did-change ['file://' '1'] [[~ [[5 3] [5 3]]] `3 'text']~]
|
['file://' `1]
|
||||||
!> %- parse-text-document--did-change
|
::
|
||||||
|
++ text-document-id-jon
|
||||||
^- json
|
^- json
|
||||||
:- %o
|
:- %o
|
||||||
%: malt
|
%: malt
|
||||||
['contentChanges' changes-jon]
|
['uri' `json`[%s 'file://']]
|
||||||
['textDocument' text-document-jon]
|
['version' `json`[%n '1']]
|
||||||
~
|
~
|
||||||
==
|
==
|
||||||
|
++ diagnostic
|
||||||
|
^- diagnostic:lsp-sur
|
||||||
|
[range 1 'Syntax Error']
|
||||||
|
::
|
||||||
|
++ diagnostic-jon
|
||||||
|
^- json
|
||||||
|
:- %o
|
||||||
|
%: malt
|
||||||
|
['range' range-jon]
|
||||||
|
['severity' `json`[%n '1']]
|
||||||
|
['message' `json`[%s 'Syntax Error']]
|
||||||
|
~
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ make-notification-jon
|
||||||
|
|= [method=@t params=json]
|
||||||
|
^- json
|
||||||
|
%: pairs
|
||||||
|
['method' `json`[%s method]]
|
||||||
|
params+params
|
||||||
|
~
|
||||||
|
==
|
||||||
|
++ make-request-jon
|
||||||
|
|= [id=@t method=@t params=json]
|
||||||
|
^- json
|
||||||
|
%: pairs
|
||||||
|
['id' `json`[%s id]]
|
||||||
|
['method' `json`[%s method]]
|
||||||
|
params+params
|
||||||
|
~
|
||||||
|
==
|
||||||
|
++ make-response-jon
|
||||||
|
|= [id=@t result=json]
|
||||||
|
%: pairs
|
||||||
|
id+s+id
|
||||||
|
result+result
|
||||||
|
~
|
||||||
|
==
|
||||||
|
::
|
||||||
|
:: Notifications
|
||||||
|
::
|
||||||
|
++ test-parse-did-change
|
||||||
|
%+ expect-eq
|
||||||
|
!> ^- all:notification:lsp-sur
|
||||||
|
[%text-document--did-change text-document-id [[~ [[5 3] [5 3]]] `3 'text']~]
|
||||||
|
!> %- notification:dejs
|
||||||
|
%+ make-notification-jon 'textDocument/didChange'
|
||||||
|
:- %o
|
||||||
|
%: malt
|
||||||
|
['contentChanges' changes-jon]
|
||||||
|
['textDocument' text-document-id-jon]
|
||||||
|
~
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ test-parse-did-save
|
||||||
|
%+ expect-eq
|
||||||
|
!> ^- all:notification:lsp-sur
|
||||||
|
[%text-document--did-save text-document-id]
|
||||||
|
!> %- notification:dejs
|
||||||
|
%+ make-notification-jon 'textDocument/didSave'
|
||||||
|
:- %o
|
||||||
|
%: malt
|
||||||
|
['textDocument' text-document-id-jon]
|
||||||
|
~
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ test-parse-did-close
|
||||||
|
%+ expect-eq
|
||||||
|
!> ^- all:notification:lsp-sur
|
||||||
|
[%text-document--did-close text-document-id]
|
||||||
|
!> %- notification:dejs
|
||||||
|
%+ make-notification-jon 'textDocument/didClose'
|
||||||
|
:- %o
|
||||||
|
%: malt
|
||||||
|
['textDocument' text-document-id-jon]
|
||||||
|
~
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ test-parse-did-open
|
||||||
|
%+ expect-eq
|
||||||
|
!> ^- all:notification:lsp-sur
|
||||||
|
[%text-document--did-open text-document-item]
|
||||||
|
!> %- notification:dejs
|
||||||
|
%+ make-notification-jon 'textDocument/didOpen'
|
||||||
|
:- %o
|
||||||
|
%: malt
|
||||||
|
['textDocument' text-document-item-jon]
|
||||||
|
~
|
||||||
|
==
|
||||||
|
::
|
||||||
|
:: Requests
|
||||||
|
::
|
||||||
|
++ test-parse-hover
|
||||||
|
%+ expect-eq
|
||||||
|
!> ^- all:request:lsp-sur
|
||||||
|
[%text-document--hover '3' position text-document-id]
|
||||||
|
!> %- request:dejs
|
||||||
|
^- json
|
||||||
|
%^ make-request-jon '3' 'textDocument/hover'
|
||||||
|
:- %o
|
||||||
|
%: malt
|
||||||
|
['position' position-jon]
|
||||||
|
['textDocument' text-document-id-jon]
|
||||||
|
~
|
||||||
|
==
|
||||||
|
:: to JSON
|
||||||
|
::
|
||||||
|
:: notifications
|
||||||
|
::
|
||||||
|
++ test-enjs-publish-diagnostics
|
||||||
|
%+ expect-eq
|
||||||
|
!> %- notification:enjs
|
||||||
|
[%text-document--publish-diagnostics 'file://' [diagnostic ~]]
|
||||||
|
!> ^- json
|
||||||
|
%+ make-notification-jon 'textDocument/publishDiagnostics'
|
||||||
|
:- %o
|
||||||
|
%: malt
|
||||||
|
['uri' `json`[%s 'file://']]
|
||||||
|
['diagnostics' `json`[%a [diagnostic-jon ~]]]
|
||||||
|
~
|
||||||
|
==
|
||||||
|
:: responses
|
||||||
|
++ test-enjs-hover
|
||||||
|
%+ expect-eq
|
||||||
|
!> %- response:enjs
|
||||||
|
[%text-document--hover '1' `'text']
|
||||||
|
!> ^- json
|
||||||
|
%+ make-response-jon '1'
|
||||||
|
%+ frond 'contents'
|
||||||
|
s+'text'
|
||||||
--
|
--
|
||||||
|
Loading…
Reference in New Issue
Block a user