use of com.intellij.lang.xml.XMLLanguage in project intellij-community by JetBrains.
the class HtmlLineMarkerProvider method collectSlowLineMarkers.
@Override
public void collectSlowLineMarkers(@NotNull final List<PsiElement> elements, @NotNull final Collection<LineMarkerInfo> result) {
Map<Language, LineMarkerProvider> localEmbeddedLanguagesLineMarkerProviders = null;
Map<LineMarkerProvider, List<PsiElement>> embeddedLineMarkersWorkItems = null;
for (PsiElement element : elements) {
if (element instanceof PsiWhiteSpace)
continue;
final Language language = element.getLanguage();
if (!(language instanceof XMLLanguage)) {
if (localEmbeddedLanguagesLineMarkerProviders == null) {
localEmbeddedLanguagesLineMarkerProviders = new THashMap<>();
}
final LineMarkerProvider lineMarkerProvider = getLineMarkerProviderFromLanguage(language, localEmbeddedLanguagesLineMarkerProviders);
if (lineMarkerProvider != null) {
if (embeddedLineMarkersWorkItems == null)
embeddedLineMarkersWorkItems = new THashMap<>();
List<PsiElement> elementList = embeddedLineMarkersWorkItems.get(lineMarkerProvider);
if (elementList == null) {
elementList = new ArrayList<>(5);
embeddedLineMarkersWorkItems.put(lineMarkerProvider, elementList);
}
elementList.add(element);
}
}
}
if (embeddedLineMarkersWorkItems != null) {
for (Map.Entry<LineMarkerProvider, List<PsiElement>> entry : embeddedLineMarkersWorkItems.entrySet()) {
entry.getKey().collectSlowLineMarkers(entry.getValue(), result);
}
}
}
use of com.intellij.lang.xml.XMLLanguage in project intellij-community by JetBrains.
the class XmlElementFactoryImpl method createTagFromText.
@Override
@NotNull
public XmlTag createTagFromText(@NotNull @NonNls CharSequence text, @NotNull Language language) throws IncorrectOperationException {
assert language instanceof XMLLanguage : "Tag can be created only for xml language";
FileType type = language.getAssociatedFileType();
if (type == null)
type = XmlFileType.INSTANCE;
final XmlDocument document = createXmlDocument(text, "dummy." + type.getDefaultExtension(), type);
final XmlTag tag = document.getRootTag();
if (tag == null)
throw new IncorrectOperationException("Incorrect tag text");
return tag;
}
Aggregations