From 3a9138fc28c018b0f909b52025d57302a403d425 Mon Sep 17 00:00:00 2001 From: BoykoAlex Date: Tue, 25 Jul 2017 19:31:34 -0400 Subject: [PATCH] Disable error proposals for Atom manifest-yaml extension --- atom-extensions/atom-commons/package.json | 2 +- .../atom-manifest-yaml/lib/main.js | 1 + .../yaml/completion/YTypeAssistContext.java | 6 ++++- .../manifest/yaml/ManifestYamlEditorTest.java | 23 ++++++++++++++++++- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/atom-extensions/atom-commons/package.json b/atom-extensions/atom-commons/package.json index 5a76db0d3..481cb5a5d 100644 --- a/atom-extensions/atom-commons/package.json +++ b/atom-extensions/atom-commons/package.json @@ -9,7 +9,7 @@ }, "main": "./dist/index", "dependencies": { - "atom-languageclient": "0.1.3", + "atom-languageclient": "https://github.com/atom/atom-languageclient#master", "decompress": "^4.2.0", "portfinder": "^1.0.13", "remote-file-size": "^3.0.3", diff --git a/atom-extensions/atom-manifest-yaml/lib/main.js b/atom-extensions/atom-manifest-yaml/lib/main.js index 739831e77..560cf6b09 100644 --- a/atom-extensions/atom-manifest-yaml/lib/main.js +++ b/atom-extensions/atom-manifest-yaml/lib/main.js @@ -43,6 +43,7 @@ class ManifestYamlLanguageClient extends JarLanguageClient { launchVmArgs(version) { return [ + '-Dlsp.yaml.completions.errors.disable=true', '-Xdebug', '-agentlib:jdwp=transport=dt_socket,address=9000,server=y,suspend=n', '-Dorg.slf4j.simpleLogger.logFile=manifest-yaml.log', diff --git a/headless-services/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/completion/YTypeAssistContext.java b/headless-services/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/completion/YTypeAssistContext.java index 036c31ea2..34e70f62b 100644 --- a/headless-services/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/completion/YTypeAssistContext.java +++ b/headless-services/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/completion/YTypeAssistContext.java @@ -201,7 +201,11 @@ public class YTypeAssistContext extends AbstractYamlAssistContext { try { values = typeUtil.getHintValues(type, getSchemaContext()); } catch (Exception e) { - return ImmutableList.of(completionFactory().errorMessage(query, getMessage(e))); + if (!Boolean.getBoolean("lsp.yaml.completions.errors.disable")) { + return ImmutableList.of(completionFactory().errorMessage(query, getMessage(e))); + } else { + Log.warn(query, e); + } } if (values!=null) { ArrayList completions = new ArrayList<>(); 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 1a8cea040..07c9159b5 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 @@ -24,7 +24,6 @@ import org.eclipse.lsp4j.CompletionItem; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.mockito.Mockito; import org.springframework.ide.vscode.commons.cloudfoundry.client.CFBuildpack; @@ -52,6 +51,7 @@ public class ManifestYamlEditorTest { LanguageId.CF_MANIFEST ); harness.intialize(null); + System.setProperty("lsp.yaml.completions.errors.disable", "false"); } @Test public void testReconcileCatchesParseError() throws Exception { @@ -1143,6 +1143,27 @@ public class ManifestYamlEditorTest { } + @Test + public void servicesContentAssistWhenNotLoggedIn_ErrorProposalsDisabled() throws Exception { + System.setProperty("lsp.yaml.completions.errors.disable", "true"); + + reset(cloudfoundry.defaultParamsProvider); + + when(cloudfoundry.defaultParamsProvider.getParams()).thenThrow(new NoTargetsException("No Cloudfoundry Targets: Please login")); + + String textBefore = + "applications:\n" + + "- name: foo\n" + + " services:\n" + + " - <*>"; + Editor editor = harness.newEditor( + textBefore + ); + + //Applying the single completion should do nothing in the editor: + assertEquals(0, editor.assertCompletions().size()); + } + @Test public void servicesContentAssistShowErrorMessageWhenNotLoggedIn_nonEmptyQueryString() throws Exception { reset(cloudfoundry.defaultParamsProvider);