mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
index-independent JSP parsing
This commit is contained in:
@@ -22,8 +22,5 @@ import java.util.Set;
|
||||
* @author ik
|
||||
*/
|
||||
public interface JspFileViewProvider extends JspxFileViewProvider {
|
||||
|
||||
Set<String> getKnownTaglibPrefixes();
|
||||
|
||||
Set<String> getKnownTaglibPrefixes(CharSequence newContent);
|
||||
Set<String> getXmlNsPrefixes(CharSequence buffer);
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.SmartList;
|
||||
import com.intellij.xml.util.XmlUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -200,7 +201,7 @@ public class XmlTagNameSynchronizer extends CommandAdapter implements Applicatio
|
||||
}
|
||||
|
||||
for (int i = 0; i < newLength; i++) {
|
||||
if (!isValidTagNameChar(fragment.charAt(i))) {
|
||||
if (!XmlUtil.isValidTagNameChar(fragment.charAt(i))) {
|
||||
clearMarkers();
|
||||
return;
|
||||
}
|
||||
@@ -241,12 +242,12 @@ public class XmlTagNameSynchronizer extends CommandAdapter implements Applicatio
|
||||
start = i + 1;
|
||||
break;
|
||||
}
|
||||
if (!isValidTagNameChar(c)) break;
|
||||
if (!XmlUtil.isValidTagNameChar(c)) break;
|
||||
}
|
||||
if (start < 0) return null;
|
||||
for (int i = offset; i < Math.min(document.getTextLength(), offset + 50); i++) {
|
||||
final char c = sequence.charAt(i);
|
||||
if (!isValidTagNameChar(c)) {
|
||||
if (!XmlUtil.isValidTagNameChar(c)) {
|
||||
end = i;
|
||||
break;
|
||||
}
|
||||
@@ -255,10 +256,6 @@ public class XmlTagNameSynchronizer extends CommandAdapter implements Applicatio
|
||||
return document.createRangeMarker(start, end, true);
|
||||
}
|
||||
|
||||
private static boolean isValidTagNameChar(char c) {
|
||||
return Character.isJavaIdentifierPart(c) || c == ':';
|
||||
}
|
||||
|
||||
public void beforeCommandFinished() {
|
||||
if (myMarkers.isEmpty()) return;
|
||||
|
||||
|
||||
@@ -1345,6 +1345,11 @@ public class XmlUtil {
|
||||
return StringUtil.escapeXml(text);
|
||||
}
|
||||
|
||||
public static boolean isValidTagNameChar(char c) {
|
||||
return Character.isLetter(c) || Character.isDigit(c) ||
|
||||
c == ':' || c == '_' || c == '-' || c == '.';
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String extractXmlEncodingFromProlog(@NotNull byte[] content) {
|
||||
return XmlCharsetDetector.extractXmlEncodingFromProlog(content);
|
||||
|
||||
Reference in New Issue
Block a user