Skip to content

Commit b7b2b74

Browse files
Fixed log extension methods, added tests for TextDocumentEdit and DocumentChanges
1 parent eee2324 commit b7b2b74

12 files changed

+355
-17
lines changed

src/Lsp/Protocol/Window/LogMessageExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public static void LogMessage(this ILanguageServer mediator, LogMessageParams @p
1414

1515
public static void Log(this ILanguageServer mediator, LogMessageParams @params)
1616
{
17-
mediator.SendNotification("window/logMessage", @params);
17+
mediator.LogMessage(@params);
1818
}
1919

2020
public static void LogError(this ILanguageServer mediator, string message)

src/Lsp/Protocol/Window/ShowMessageExtensions.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,25 @@ public static void ShowMessage(this ILanguageServer mediator, ShowMessageParams
1414

1515
public static void Show(this ILanguageServer mediator, ShowMessageParams @params)
1616
{
17-
mediator.SendNotification("window/showMessage", @params);
17+
mediator.ShowMessage(@params);
1818
}
1919

20-
public static void LogError(this ILanguageServer mediator, string message)
20+
public static void ShowError(this ILanguageServer mediator, string message)
2121
{
2222
mediator.ShowMessage(new ShowMessageParams() { Type = MessageType.Error, Message = message });
2323
}
2424

25-
public static void Log(this ILanguageServer mediator, string message)
25+
public static void Show(this ILanguageServer mediator, string message)
2626
{
2727
mediator.ShowMessage(new ShowMessageParams() { Type = MessageType.Log, Message = message });
2828
}
2929

30-
public static void LogWarning(this ILanguageServer mediator, string message)
30+
public static void ShowWarning(this ILanguageServer mediator, string message)
3131
{
3232
mediator.ShowMessage(new ShowMessageParams() { Type = MessageType.Warning, Message = message });
3333
}
3434

35-
public static void LogInfo(this ILanguageServer mediator, string message)
35+
public static void ShowInfo(this ILanguageServer mediator, string message)
3636
{
3737
mediator.ShowMessage(new ShowMessageParams() { Type = MessageType.Info, Message = message });
3838
}

test/Lsp.Tests/Fixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ private static string SerializeObjectInternal(object value, Type type, JsonSeria
3232
jsonSerializer.Serialize(jsonWriter, value, type);
3333
}
3434

35-
return sw.ToString()?.Replace("\r\n", "\n");//?.Replace("\n", "\r\n");
35+
return sw.ToString()?.Replace("\r\n", "\n")?.TrimEnd();//?.Replace("\n", "\r\n");
3636
}
3737
}
38-
}
38+
}

test/Lsp.Tests/JsonFixtureAttribute.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections.Generic;
33
using System.IO;
44
using System.Linq;
@@ -21,7 +21,7 @@ public override IEnumerable<object[]> GetData(MethodInfo testMethod)
2121

2222
using (var streamReader = new StreamReader(Resources.GetManifestResourceStream(fileName)))
2323
{
24-
yield return new object[] { streamReader.ReadToEnd()?.Replace("\r\n", "\n") };
24+
yield return new object[] { streamReader.ReadToEnd()?.Replace("\r\n", "\n")?.TrimEnd() };
2525
}
2626
}
2727
}

test/Lsp.Tests/Models/ApplyWorkspaceEditParamsTests.cs

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ public class ApplyWorkspaceEditParamsTests
1212
[Theory, JsonFixture]
1313
public void SimpleTest(string expected)
1414
{
15-
var model = new ApplyWorkspaceEditParams() {
16-
Edit = new WorkspaceEdit() {
15+
var model = new ApplyWorkspaceEditParams()
16+
{
17+
Edit = new WorkspaceEdit()
18+
{
1719
Changes = new Dictionary<Uri, IEnumerable<TextEdit>>() {
1820
{
1921
new Uri("file:///abc/123/d.cs"), new [] {
@@ -37,5 +39,60 @@ public void SimpleTest(string expected)
3739
var deresult = JsonConvert.DeserializeObject<ApplyWorkspaceEditParams>(expected);
3840
deresult.ShouldBeEquivalentTo(model);
3941
}
42+
43+
[Theory, JsonFixture]
44+
public void DocumentChangesTest(string expected)
45+
{
46+
var model = new ApplyWorkspaceEditParams()
47+
{
48+
Edit = new WorkspaceEdit()
49+
{
50+
DocumentChanges = new Container<TextDocumentEdit>(
51+
new TextDocumentEdit()
52+
{
53+
TextDocument = new VersionedTextDocumentIdentifier()
54+
{
55+
Version = 1,
56+
Uri = new Uri("file:///abc/123/d.cs"),
57+
},
58+
Edits = new[] {
59+
new TextEdit() {
60+
NewText = "new text",
61+
Range = new Range(new Position(1, 1), new Position(2,2))
62+
},
63+
new TextEdit() {
64+
NewText = "new text2",
65+
Range = new Range(new Position(3, 3), new Position(4,4))
66+
}
67+
}
68+
},
69+
new TextDocumentEdit()
70+
{
71+
TextDocument = new VersionedTextDocumentIdentifier()
72+
{
73+
Version = 1,
74+
Uri = new Uri("file:///abc/123/b.cs"),
75+
},
76+
Edits = new[] {
77+
new TextEdit() {
78+
NewText = "new text2",
79+
Range = new Range(new Position(1, 1), new Position(2,2))
80+
},
81+
new TextEdit() {
82+
NewText = "new text3",
83+
Range = new Range(new Position(3, 3), new Position(4,4))
84+
}
85+
}
86+
}
87+
)
88+
}
89+
};
90+
var result = Fixture.SerializeObject(model);
91+
92+
result.Should().Be(expected);
93+
94+
var deresult = JsonConvert.DeserializeObject<ApplyWorkspaceEditParams>(expected);
95+
deresult.ShouldBeEquivalentTo(model);
96+
}
4097
}
4198
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
{
2+
"edit": {
3+
"documentChanges": [
4+
{
5+
"textDocument": {
6+
"version": 1,
7+
"uri": "file:///abc/123/d.cs"
8+
},
9+
"edits": [
10+
{
11+
"range": {
12+
"start": {
13+
"line": 1,
14+
"character": 1
15+
},
16+
"end": {
17+
"line": 2,
18+
"character": 2
19+
}
20+
},
21+
"newText": "new text"
22+
},
23+
{
24+
"range": {
25+
"start": {
26+
"line": 3,
27+
"character": 3
28+
},
29+
"end": {
30+
"line": 4,
31+
"character": 4
32+
}
33+
},
34+
"newText": "new text2"
35+
}
36+
]
37+
},
38+
{
39+
"textDocument": {
40+
"version": 1,
41+
"uri": "file:///abc/123/b.cs"
42+
},
43+
"edits": [
44+
{
45+
"range": {
46+
"start": {
47+
"line": 1,
48+
"character": 1
49+
},
50+
"end": {
51+
"line": 2,
52+
"character": 2
53+
}
54+
},
55+
"newText": "new text2"
56+
},
57+
{
58+
"range": {
59+
"start": {
60+
"line": 3,
61+
"character": 3
62+
},
63+
"end": {
64+
"line": 4,
65+
"character": 4
66+
}
67+
},
68+
"newText": "new text3"
69+
}
70+
]
71+
}
72+
]
73+
}
74+
}

test/Lsp.Tests/Models/CompletionItemTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ public class CompletionItemTests
1111
[Theory, JsonFixture]
1212
public void SimpleTest(string expected)
1313
{
14-
var model = new CompletionItem() {
15-
AdditionalTextEdits = new [] {
14+
var model = new CompletionItem()
15+
{
16+
CommitCharacters = new[] { ";", "/", "." },
17+
AdditionalTextEdits = new[] {
1618
new TextEdit() {
1719
NewText = "new text"
1820
}
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{
1+
{
22
"label": null,
33
"kind": 0,
44
"insertTextFormat": 0,
@@ -7,5 +7,10 @@
77
"range": null,
88
"newText": "new text"
99
}
10+
],
11+
"commitCharacters": [
12+
";",
13+
"/",
14+
"."
1015
]
11-
}
16+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using FluentAssertions;
4+
using Newtonsoft.Json;
5+
using OmniSharp.Extensions.LanguageServer.Models;
6+
using Xunit;
7+
8+
namespace Lsp.Tests.Models
9+
{
10+
public class TextDocumentEditTests
11+
{
12+
[Theory, JsonFixture]
13+
public void SimpleTest(string expected)
14+
{
15+
var model = new TextDocumentEdit()
16+
{
17+
TextDocument = new VersionedTextDocumentIdentifier()
18+
{
19+
Version = 1,
20+
Uri = new Uri("file:///abc/123/d.cs"),
21+
},
22+
Edits = new[] {
23+
new TextEdit() {
24+
NewText = "new text",
25+
Range = new Range(new Position(1, 1), new Position(2,2))
26+
},
27+
new TextEdit() {
28+
NewText = "new text2",
29+
Range = new Range(new Position(3, 3), new Position(4,4))
30+
}
31+
}
32+
};
33+
var result = Fixture.SerializeObject(model);
34+
35+
result.Should().Be(expected);
36+
37+
var deresult = JsonConvert.DeserializeObject<TextDocumentEdit>(expected);
38+
deresult.ShouldBeEquivalentTo(model);
39+
}
40+
}
41+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"textDocument": {
3+
"version": 1,
4+
"uri": "file:///abc/123/d.cs"
5+
},
6+
"edits": [
7+
{
8+
"range": {
9+
"start": {
10+
"line": 1,
11+
"character": 1
12+
},
13+
"end": {
14+
"line": 2,
15+
"character": 2
16+
}
17+
},
18+
"newText": "new text"
19+
},
20+
{
21+
"range": {
22+
"start": {
23+
"line": 3,
24+
"character": 3
25+
},
26+
"end": {
27+
"line": 4,
28+
"character": 4
29+
}
30+
},
31+
"newText": "new text2"
32+
}
33+
]
34+
}

0 commit comments

Comments
 (0)