From 73876f9749fd1175263c016e40b8a2fafe1a4d8e Mon Sep 17 00:00:00 2001 From: "Irina.Chernushina" Date: Wed, 10 Jan 2018 16:45:40 +0100 Subject: [PATCH] vue.js: do not highlight "closing tag matches nothing", reuse from html - for iview framework, they have custom tag Col, and there is single tag col in html -> was highlighted as error --- .../HtmlClosingTagErrorFilter.java | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/xml/xml-analysis-impl/src/com/intellij/codeInsight/highlighting/HtmlClosingTagErrorFilter.java b/xml/xml-analysis-impl/src/com/intellij/codeInsight/highlighting/HtmlClosingTagErrorFilter.java index 2225b2ba968e..f9229eb5924d 100644 --- a/xml/xml-analysis-impl/src/com/intellij/codeInsight/highlighting/HtmlClosingTagErrorFilter.java +++ b/xml/xml-analysis-impl/src/com/intellij/codeInsight/highlighting/HtmlClosingTagErrorFilter.java @@ -1,17 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. */ package com.intellij.codeInsight.highlighting; @@ -39,15 +27,18 @@ public class HtmlClosingTagErrorFilter extends HighlightErrorFilter { if (psiFile == null || psiFile.getViewProvider().getBaseLanguage() != HTMLLanguage.INSTANCE && HTMLLanguage.INSTANCE != element.getLanguage()) return true; + return !skip(element); + } + + public static boolean skip(@NotNull PsiErrorElement element) { final PsiElement[] children = element.getChildren(); if (children.length > 0) { if (children[0] instanceof XmlToken && XmlTokenType.XML_END_TAG_START == ((XmlToken)children[0]).getTokenType()) { if (XmlErrorMessages.message("xml.parsing.closing.tag.matches.nothing").equals(element.getErrorDescription())) { - return false; + return true; } } } - - return true; + return false; } }