Skip to content

Commit 22071e6

Browse files
committed
null uri handling
1 parent 43774b2 commit 22071e6

File tree

1 file changed

+40
-32
lines changed

1 file changed

+40
-32
lines changed

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/textdocument/TextDocumentServiceHandler.kt

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)