diff --git a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java index 6be9fc591..3468e082e 100644 --- a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java +++ b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java @@ -17,6 +17,8 @@ import java.util.List; import org.springframework.ide.vscode.commons.cloudfoundry.client.CFServiceInstance; import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFTarget; import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFTargetCache; +import org.springframework.ide.vscode.commons.util.Renderable; +import org.springframework.ide.vscode.commons.util.Renderables; import org.springframework.ide.vscode.commons.yaml.schema.BasicYValueHint; import org.springframework.ide.vscode.commons.yaml.schema.YValueHint; @@ -38,12 +40,14 @@ public class ManifestYamlCFServicesProvider extends AbstractCFHintsProvider { for (CFTarget cfTarget : targets) { List services = cfTarget.getServices(); + Renderable targetLabel = Renderables.text(cfTarget.getLabel()); if (services != null && !services.isEmpty()) { for (CFServiceInstance service : services) { String name = service.getName(); String label = getServiceLabel(cfTarget, service); - YValueHint hint = new BasicYValueHint(name, label); + YValueHint hint = new BasicYValueHint(name, label) + .setDocumentation(targetLabel); if (!hints.contains(hint)) { hints.add(hint); } @@ -56,8 +60,7 @@ public class ManifestYamlCFServicesProvider extends AbstractCFHintsProvider { } private String getServiceLabel(CFTarget cfClientTarget, CFServiceInstance service) { - return service.getName() + " - " + service.getPlan() + " (" + cfClientTarget.getParams().getOrgName() + " - " - + cfClientTarget.getParams().getSpaceName() + ")"; + return service.getName() + " - " + service.getPlan(); } @Override diff --git a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java index 8fd2e9df0..b3c246da3 100644 --- a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java +++ b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java @@ -991,15 +991,18 @@ public class ManifestYamlEditorTest { ClientRequests cfClient = cloudfoundry.client; CFServiceInstance service = Mockito.mock(CFServiceInstance.class); when(service.getName()).thenReturn("mysql"); + when(service.getPlan()).thenReturn("medium"); when(cfClient.getServices()).thenReturn(ImmutableList.of(service)); - assertCompletions( + CompletionItem completion = assertCompletions( "services:\n" + " - <*>" , // ==> "services:\n" + " - mysql<*>" - ); + ).get(0); + assertEquals("mysql - medium", completion.getLabel()); + assertEquals("an-org : a-space [test.io]", completion.getDocumentation()); } @Test