@@ -56,14 +56,16 @@ class TextDocumentServiceHandler(
5656 override fun beforeDocumentSaving (document : Document ) {
5757 AmazonQLspService .executeIfRunning(project) {
5858 val file = FileDocumentManager .getInstance().getFile(document) ? : return @executeIfRunning
59- it.textDocumentService.didSave(
60- DidSaveTextDocumentParams ().apply {
61- textDocument = TextDocumentIdentifier ().apply {
62- uri = file.url
59+ file.toNioPath().toUri().toString().takeIf { it.isNotEmpty() }?.let { uri ->
60+ it.textDocumentService.didSave(
61+ DidSaveTextDocumentParams ().apply {
62+ textDocument = TextDocumentIdentifier ().apply {
63+ this .uri = uri
64+ }
65+ text = document.text
6366 }
64- text = document.text
65- }
66- )
67+ )
68+ }
6769 }
6870 }
6971
@@ -72,19 +74,21 @@ class TextDocumentServiceHandler(
7274 pluginAwareExecuteOnPooledThread {
7375 events.filterIsInstance<VFileContentChangeEvent >().forEach { event ->
7476 val document = FileDocumentManager .getInstance().getCachedDocument(event.file) ? : return @forEach
75- it.textDocumentService.didChange(
76- DidChangeTextDocumentParams ().apply {
77- textDocument = VersionedTextDocumentIdentifier ().apply {
78- uri = event.file.url
79- version = document.modificationStamp.toInt()
80- }
81- contentChanges = listOf (
82- TextDocumentContentChangeEvent ().apply {
83- text = document.text
77+ event.file.toNioPath().toUri().toString().takeIf { it.isNotEmpty() }?.let { uri ->
78+ it.textDocumentService.didChange(
79+ DidChangeTextDocumentParams ().apply {
80+ textDocument = VersionedTextDocumentIdentifier ().apply {
81+ this .uri = uri
82+ version = document.modificationStamp.toInt()
8483 }
85- )
86- }
87- )
84+ contentChanges = listOf (
85+ TextDocumentContentChangeEvent ().apply {
86+ text = document.text
87+ }
88+ )
89+ }
90+ )
91+ }
8892 }
8993 }
9094 }
@@ -95,14 +99,16 @@ class TextDocumentServiceHandler(
9599 file : VirtualFile ,
96100 ) {
97101 AmazonQLspService .executeIfRunning(project) {
98- it.textDocumentService.didOpen(
99- DidOpenTextDocumentParams ().apply {
100- textDocument = TextDocumentItem ().apply {
101- uri = file.url
102- text = file.inputStream.readAllBytes().decodeToString()
102+ file.toNioPath().toUri().toString().takeIf { it.isNotEmpty() }?.let { uri ->
103+ it.textDocumentService.didOpen(
104+ DidOpenTextDocumentParams ().apply {
105+ textDocument = TextDocumentItem ().apply {
106+ this .uri = uri
107+ text = file.inputStream.readAllBytes().decodeToString()
108+ }
103109 }
104- }
105- )
110+ )
111+ }
106112 }
107113 }
108114
@@ -111,13 +117,15 @@ class TextDocumentServiceHandler(
111117 file : VirtualFile ,
112118 ) {
113119 AmazonQLspService .executeIfRunning(project) {
114- it.textDocumentService.didClose(
115- DidCloseTextDocumentParams ().apply {
116- textDocument = TextDocumentIdentifier ().apply {
117- uri = file.url
120+ file.toNioPath().toUri().toString().takeIf { it.isNotEmpty() }?.let { uri ->
121+ it.textDocumentService.didClose(
122+ DidCloseTextDocumentParams ().apply {
123+ textDocument = TextDocumentIdentifier ().apply {
124+ this .uri = uri
125+ }
118126 }
119- }
120- )
127+ )
128+ }
121129 }
122130 }
123131}
0 commit comments