@@ -24,12 +24,14 @@ import playground.language
24
24
import playground .language .CodeLensProvider
25
25
import playground .language .CommandProvider
26
26
import playground .language .CommandResultReporter
27
+ import playground .language .CompletionItem
27
28
import playground .language .CompletionProvider
28
29
import playground .language .DiagnosticProvider
29
30
import playground .language .DocumentSymbolProvider
30
31
import playground .language .Feedback
31
32
import playground .language .FormattingProvider
32
33
import playground .language .TextDocumentProvider
34
+ import playground .language .TextEdit
33
35
import playground .language .Uri
34
36
import playground .lsp .buildinfo .BuildInfo
35
37
import playground .smithyql .Position
@@ -64,12 +66,12 @@ trait LanguageServer[F[_]] {
64
66
65
67
def formatting (
66
68
documentUri : Uri
67
- ): F [List [lsp4j. TextEdit ]]
69
+ ): F [List [LSPTextEdit ]]
68
70
69
71
def completion (
70
72
documentUri : Uri ,
71
73
position : LSPPosition ,
72
- ): F [Either [ List [lsp4j. CompletionItem ], lsp4j. CompletionList ]]
74
+ ): F [List [LSPCompletionItem ]]
73
75
74
76
def diagnostic (
75
77
documentUri : Uri
@@ -203,14 +205,15 @@ object LanguageServer {
203
205
204
206
def formatting (
205
207
documentUri : Uri
206
- ): F [List [lsp4j.TextEdit ]] = TextDocumentProvider [F ].get(documentUri).flatMap { doc =>
207
- formattingProvider(documentUri).map(_.map(converters.toLSP.textEdit(_, LocationMap (doc))))
208
+ ): F [List [LSPTextEdit ]] = TextDocumentProvider [F ].get(documentUri).flatMap { doc =>
209
+ val map = LocationMap (doc)
210
+ formattingProvider(documentUri).map(_.map(LSPTextEdit (_, map)))
208
211
}
209
212
210
213
def completion (
211
214
documentUri : Uri ,
212
215
position : LSPPosition ,
213
- ): F [Either [ List [lsp4j. CompletionItem ], lsp4j. CompletionList ]] = TextDocumentManager [F ]
216
+ ): F [List [LSPCompletionItem ]] = TextDocumentManager [F ]
214
217
.get(documentUri)
215
218
.map { documentText =>
216
219
val map = LocationMap (documentText)
@@ -220,9 +223,8 @@ object LanguageServer {
220
223
documentText,
221
224
position.unwrap(map),
222
225
)
223
- .map(converters.toLSP.completionItem(map, _ ))
226
+ .map(LSPCompletionItem (_, map ))
224
227
}
225
- .map(Left (_))
226
228
227
229
def diagnostic (
228
230
documentUri : Uri
@@ -355,6 +357,9 @@ case class InitializeResult(
355
357
serverInfo : ServerInfo ,
356
358
)
357
359
360
+ case class LSPCompletionItem (item : CompletionItem , map : LocationMap )
361
+ case class LSPTextEdit (textEdit : TextEdit , map : LocationMap )
362
+
358
363
case class LSPPosition (line : Int , character : Int ) {
359
364
360
365
def unwrap (map : LocationMap ): Position = Position (map.toOffset(line, character).getOrElse(- 1 ))
0 commit comments