performance

This commit is contained in:
Alexey Kudravtsev
2013-04-09 12:57:43 +04:00
parent 3d04085431
commit c42fd1c879
2 changed files with 11 additions and 10 deletions
@@ -21,6 +21,7 @@ import com.intellij.openapi.fileTypes.ExtensionFileNameMatcher;
import com.intellij.openapi.fileTypes.FileNameMatcher;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.io.FileUtilRt;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.text.CaseInsensitiveStringHashingStrategy;
import gnu.trove.THashMap;
@@ -177,7 +178,7 @@ public class FileTypeAssocTable<T> {
if (mapping.getFirst().accept(fileName)) return mapping.getSecond();
}
return myExtensionMappings.get(FileUtilRt.getExtension(fileName).toLowerCase());
return myExtensionMappings.get(StringUtil.toLowerCase(FileUtilRt.getExtension(fileName)));
}
@Nullable
@@ -22,6 +22,7 @@ package com.intellij.lang.html;
import com.intellij.codeInsight.completion.CompletionUtil;
import com.intellij.codeInsight.daemon.XmlErrorMessages;
import com.intellij.lang.PsiBuilder;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.impl.source.codeStyle.IndentHelperImpl;
import com.intellij.psi.tree.CustomParsingType;
import com.intellij.psi.tree.IElementType;
@@ -100,7 +101,6 @@ public class HtmlParsing {
if (error != null) {
error.error(XmlErrorMessages.message("top.level.element.is.not.completed"));
error = null;
}
document.done(XmlElementType.HTML_DOCUMENT);
@@ -152,9 +152,9 @@ public class HtmlParsing {
advance();
}
String tagName = originalTagName.toLowerCase();
if ((ddordt(tagName) && ddordt(parentName)) ||
(tagName.equals(parentName) && HtmlUtil.isOptionalEndForHtmlTagL(tagName)) ||
String tagName = StringUtil.toLowerCase(originalTagName);
if (ddordt(tagName) && ddordt(parentName) ||
tagName.equals(parentName) && HtmlUtil.isOptionalEndForHtmlTagL(tagName) ||
myTagMarkersStack.size() > MAGIC_FRAME_COUNT // no chance for evil guys wanting us to have stack overflow
) {
tag.rollbackTo();
@@ -164,7 +164,7 @@ public class HtmlParsing {
myTagNamesStack.push(tagName);
boolean freeMakerTag = tagName.length() > 0 && '#' == tagName.charAt(0);
boolean freeMakerTag = !tagName.isEmpty() && '#' == tagName.charAt(0);
do {
final IElementType tt = token();
@@ -305,7 +305,7 @@ public class HtmlParsing {
advance();
if (token() == XmlTokenType.XML_NAME) {
String endName = myBuilder.getTokenText().toLowerCase();
String endName = StringUtil.toLowerCase(myBuilder.getTokenText());
if (!tagName.equals(endName) && !endName.endsWith(COMPLETION_NAME)) {
final boolean hasChancesToMatch = HtmlUtil.isOptionalEndForHtmlTagL(endName) ? childTerminatesParentInStack(endName, false) : myTagNamesStack.contains(endName);
if (hasChancesToMatch) {
@@ -360,7 +360,7 @@ public class HtmlParsing {
}
}
xmlText = terminateText(xmlText);
terminateText(xmlText);
if (isOptionalTagEnd || "body".equalsIgnoreCase(tagName) || "html".equalsIgnoreCase(tagName)) {
if (firstBlockChild != null) {
@@ -381,7 +381,7 @@ public class HtmlParsing {
private static boolean canTerminate(final String childTagName,final String tagName) {
// TODO: make hash
return !(tagName.equalsIgnoreCase(TR_TAG) && childTagName.equalsIgnoreCase(TD_TAG)) ||
(tagName.equalsIgnoreCase(TABLE_TAG) && childTagName.equalsIgnoreCase(TR_TAG));
tagName.equalsIgnoreCase(TABLE_TAG) && childTagName.equalsIgnoreCase(TR_TAG);
}
private boolean childTerminatesParentInStack(final String childName, final boolean terminateOnNonOptionalTag) {
@@ -451,7 +451,7 @@ public class HtmlParsing {
advance();
continue;
}
else if (tt == XmlTokenType.XML_BAD_CHARACTER) {
if (tt == XmlTokenType.XML_BAD_CHARACTER) {
final PsiBuilder.Marker error = mark();
advance();
error.error(XmlErrorMessages.message("xml.parsing.bad.character"));