From e2886baeab06bba5304132e25c430fb41cf61bbb Mon Sep 17 00:00:00 2001 From: David Kwon <dakwon@redhat.com> Date: Mon, 6 Jul 2020 14:56:11 -0400 Subject: [PATCH] Fix generate schema code action file name Signed-off-by: David Kwon <dakwon@redhat.com> --- .../AbstractFixMissingGrammarCodeAction.java | 2 +- .../contentmodel/XMLSchemaDiagnosticsTest.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/contentmodel/participants/codeactions/AbstractFixMissingGrammarCodeAction.java b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/contentmodel/participants/codeactions/AbstractFixMissingGrammarCodeAction.java index 675bdee8b..38122ad8b 100644 --- a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/contentmodel/participants/codeactions/AbstractFixMissingGrammarCodeAction.java +++ b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/contentmodel/participants/codeactions/AbstractFixMissingGrammarCodeAction.java @@ -67,7 +67,7 @@ private String getPathFromDiagnostic(Diagnostic diagnostic) { String message = diagnostic.getMessage(); int startIndex = message.indexOf(FILE_SCHEME); if (startIndex != -1) { - int endIndex = message.indexOf("'", startIndex + 1); + int endIndex = message.lastIndexOf("'"); return message.substring(startIndex + FILE_SCHEME.length(), endIndex); } diff --git a/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/contentmodel/XMLSchemaDiagnosticsTest.java b/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/contentmodel/XMLSchemaDiagnosticsTest.java index b6dee9bf3..ae33364f8 100644 --- a/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/contentmodel/XMLSchemaDiagnosticsTest.java +++ b/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/contentmodel/XMLSchemaDiagnosticsTest.java @@ -683,11 +683,11 @@ public void testTargetNamespace_2SingleQuotes() throws Exception { public void localSchemaFileMissingCodeAction() throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + // "<invoice xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" + // - " xsi:noNamespaceSchemaLocation=\"/salad.xsd\">\n" + // + " xsi:noNamespaceSchemaLocation=\"/sala'd.xsd\">\n" + // "</invoice>"; - Diagnostic missingSchemaDiagnostic = d(2, 32, 44, XMLSchemaErrorCode.schema_reference_4); + Diagnostic missingSchemaDiagnostic = d(2, 32, 45, XMLSchemaErrorCode.schema_reference_4); missingSchemaDiagnostic.setMessage("schema_reference.4: Failed to read schema document " - + "'file:///salad.xsd'," + + "'file:///sala'd.xsd'," + " because 1) could not find the document; 2) the document could not be read;" + " 3) the root element of the document is not <xsd:schema>."); Diagnostic eltDiagnostic = d(1, 1, 8, XMLSchemaErrorCode.cvc_elt_1_a); @@ -705,8 +705,8 @@ public void localSchemaFileMissingCodeAction() throws Exception { missingSchemaDiagnostic, // settings, // ca(missingSchemaDiagnostic, // - createFile("file:///salad.xsd", false), // - teOp("file:///salad.xsd", 0, 0, 0, 0, // + createFile("file:///sala'd.xsd", false), // + teOp("file:///sala'd.xsd", 0, 0, 0, 0, // "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + lineSeparator() + // "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">" + lineSeparator() + // " <xs:element name=\"invoice\" type=\"xs:string\" />" + lineSeparator() + //