Skip to content

Commit f9b9ad6

Browse files
committed
Added lsp protocol decoding tests
1 parent 749ab91 commit f9b9ad6

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

Diff for: lsp/protocol_test.go

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package lsp
2+
3+
import (
4+
"encoding/json"
5+
"fmt"
6+
"testing"
7+
8+
"github.com/stretchr/testify/require"
9+
)
10+
11+
func TestDocumentSymbolParse(t *testing.T) {
12+
docin := `
13+
[
14+
{
15+
"kind":12,
16+
"name":"setup",
17+
"range": {"end": {"character":11,"line":6},"start": {"character":0,"line":6}},
18+
"selectionRange":{"end":{"character":10,"line":6},"start":{"character":5,"line":6}}
19+
},{
20+
"kind":12,
21+
"name":"newfunc",
22+
"range":{"end":{"character":13,"line":8},"start":{"character":0,"line":8}},
23+
"selectionRange":{"end":{"character":12,"line":8},"start":{"character":5,"line":8}}
24+
},{
25+
"kind":12,
26+
"name":"loop",
27+
"range":{"end":{"character":10,"line":10},"start":{"character":0,"line":10}},
28+
"selectionRange":{"end":{"character":9,"line":10},"start":{"character":5,"line":10}}
29+
},{
30+
"kind":12,
31+
"name":"secondFunction",
32+
"range":{"end":{"character":20,"line":12},"start":{"character":0,"line":12}},
33+
"selectionRange":{"end":{"character":19,"line":12},"start":{"character":5,"line":12}}
34+
},{
35+
"kind":12,
36+
"name":"setup",
37+
"range":{"end":{"character":0,"line":21},"start":{"character":0,"line":14}},
38+
"selectionRange":{"end":{"character":10,"line":14},"start":{"character":5,"line":14}}
39+
},{
40+
"kind":12,
41+
"name":"newfunc",
42+
"range":{"end":{"character":16,"line":23},"start":{"character":0,"line":23}},
43+
"selectionRange":{"end":{"character":12,"line":23},"start":{"character":5,"line":23}}
44+
},{
45+
"kind":12,
46+
"name":"loop",
47+
"range":{"end":{"character":0,"line":26},"start":{"character":0,"line":24}},
48+
"selectionRange":{"end":{"character":9,"line":24},"start":{"character":5,"line":24}}
49+
},{
50+
"kind":12,
51+
"name":"secondFunction",
52+
"range":{"end":{"character":0,"line":32},"start":{"character":0,"line":30}},
53+
"selectionRange":{"end":{"character":19,"line":30},"start":{"character":5,"line":30}}
54+
}
55+
]`
56+
var res DocumentSymbolArrayOrSymbolInformationArray
57+
err := json.Unmarshal([]byte(docin), &res)
58+
require.NoError(t, err)
59+
require.NotNil(t, res.DocumentSymbolArray)
60+
symbols := *res.DocumentSymbolArray
61+
require.Equal(t, SymbolKind(12), symbols[2].Kind)
62+
require.Equal(t, "loop", symbols[2].Name)
63+
require.Equal(t, "10:0-10:10", symbols[2].Range.String())
64+
require.Equal(t, "10:5-10:9", symbols[2].SelectionRange.String())
65+
fmt.Printf("%+v\n", res)
66+
}

0 commit comments

Comments
 (0)