Skip to content

Commit c687d15

Browse files
committed
fix: dont trash the document when removing clutter (redhat-developer#818)
Signed-off-by: Andre Dietisheim <[email protected]>
1 parent c089bae commit c687d15

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

src/main/kotlin/com/redhat/devtools/intellij/kubernetes/editor/EditorResourceSerialization.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,19 @@ object EditorResourceSerialization {
6464
return resource
6565
}
6666

67-
fun serialize(resources: Collection<HasMetadata>, fileType: FileType?): String? {
67+
fun serialize(resources: List<HasMetadata>, fileType: FileType?): String? {
6868
if (fileType == null) {
6969
return null
7070
}
71-
if (resources.size >=2 && fileType != YAMLFileType.YML) {
71+
if (resources.size >=2
72+
&& fileType != YAMLFileType.YML) {
7273
throw UnsupportedOperationException(
7374
"${fileType.name} is not supported for multi-resource documents. Only ${YAMLFileType.YML.name} is.")
7475
}
7576
return resources
7677
.mapNotNull { resource -> serialize(resource, fileType) }
77-
.joinToString(RESOURCE_SEPARATOR_YAML)
78+
.joinToString("\n")
79+
7880
}
7981

8082
private fun serialize(resource: HasMetadata, fileType: FileType): String? {

src/main/kotlin/com/redhat/devtools/intellij/kubernetes/editor/ResourceEditor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ open class ResourceEditor(
5151
// for mocking purposes
5252
private val createResources: (string: String?, fileType: FileType?, currentNamespace: String?) -> List<HasMetadata> =
5353
EditorResourceSerialization::deserialize,
54-
private val serialize: (resources: Collection<HasMetadata>, fileType: FileType?) -> String? =
54+
private val serialize: (resources: List<HasMetadata>, fileType: FileType?) -> String? =
5555
EditorResourceSerialization::serialize,
5656
// for mocking purposes
5757
private val createResourceFileForVirtual: (file: VirtualFile?) -> ResourceFile? =
@@ -165,7 +165,7 @@ open class ResourceEditor(
165165
}
166166
}
167167

168-
private fun replaceDocument(resources: Collection<HasMetadata>): Boolean {
168+
private fun replaceDocument(resources: List<HasMetadata>): Boolean {
169169
val manager = getPsiDocumentManager.invoke(project)
170170
val document = getDocument.invoke(editor) ?: return false
171171
val jsonYaml = serialize.invoke(resources, getFileType(document, manager)) ?: return false

src/test/kotlin/com/redhat/devtools/intellij/kubernetes/editor/ResourceEditorTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ class ResourceEditorTest {
116116
private val createResources: (string: String?, fileType: FileType?, currentNamespace: String?) -> List<HasMetadata> =
117117
mock<(string: String?, fileType: FileType?, currentNamespace: String?) -> List<HasMetadata>>()
118118
private val editorResources: EditorResources = mock()
119-
private val serialize: (resources: Collection<HasMetadata>, fileType: FileType?) -> String? =
120-
mock<(resources: Collection<HasMetadata>, fileType: FileType?) -> String?>().apply {
119+
private val serialize: (resources: List<HasMetadata>, fileType: FileType?) -> String? =
120+
mock<(resources: List<HasMetadata>, fileType: FileType?) -> String?>().apply {
121121
doAnswer { invocation ->
122-
val resources = invocation.getArgument<Collection<HasMetadata>>(0)
122+
val resources = invocation.getArgument<List<HasMetadata>>(0)
123123
EditorResourceSerialization.serialize(resources, YAMLFileType.YML)
124124
}.whenever(this).invoke(any(), any())
125125
}
@@ -629,7 +629,7 @@ class ResourceEditorTest {
629629
resourceModel: IResourceModel,
630630
project: Project,
631631
createResources: (string: String?, fileType: FileType?, currentNamespace: String?) -> List<HasMetadata>,
632-
serialize: (resources: Collection<HasMetadata>, fileType: FileType?) -> String?,
632+
serialize: (resources: List<HasMetadata>, fileType: FileType?) -> String?,
633633
resourceFileForVirtual: (file: VirtualFile?) -> ResourceFile?,
634634
notifications: Notifications,
635635
documentProvider: (FileEditor) -> Document?,

0 commit comments

Comments
 (0)