本文整理匯總了Java中com.intellij.lang.Language.getUserData方法的典型用法代碼示例。如果您正苦於以下問題:Java Language.getUserData方法的具體用法?Java Language.getUserData怎麽用?Java Language.getUserData使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類com.intellij.lang.Language
的用法示例。
在下文中一共展示了Language.getUserData方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: forLanguage
import com.intellij.lang.Language; //導入方法依賴的package包/類
@Override
public FoldingBuilder forLanguage(@NotNull Language l) {
FoldingBuilder cached = l.getUserData(getLanguageCache());
if (cached != null) return cached;
List<FoldingBuilder> extensions = forKey(l);
FoldingBuilder result;
if (extensions.isEmpty()) {
Language base = l.getBaseLanguage();
if (base != null) {
result = forLanguage(base);
}
else {
result = getDefaultImplementation();
}
}
else {
return extensions.size() == 1 ? extensions.get(0) : new CompositeFoldingBuilder(extensions);
}
l.putUserData(getLanguageCache(), result);
return result;
}
示例2: getRangePair
import com.intellij.lang.Language; //導入方法依賴的package包/類
@Nullable
protected Pair<PsiElement, TextRange> getRangePair(final PsiFile file, final Editor editor) {
final int offset = editor.getCaretModel().getOffset();
final PsiLanguageInjectionHost host =
PsiTreeUtil.getParentOfType(file.findElementAt(offset), PsiLanguageInjectionHost.class, false);
if (host == null || ElementManipulators.getManipulator(host) == null) return null;
final List<Pair<PsiElement, TextRange>> injections = InjectedLanguageManager.getInstance(host.getProject()).getInjectedPsiFiles(host);
if (injections == null || injections.isEmpty()) return null;
final int offsetInElement = offset - host.getTextRange().getStartOffset();
final Pair<PsiElement, TextRange> rangePair = ContainerUtil.find(injections, new Condition<Pair<PsiElement, TextRange>>() {
@Override
public boolean value(final Pair<PsiElement, TextRange> pair) {
return pair.second.containsRange(offsetInElement, offsetInElement);
}
});
if (rangePair != null) {
final Language language = rangePair.first.getContainingFile().getLanguage();
final Object action = language.getUserData(EDIT_ACTION_AVAILABLE);
if (action != null && action.equals(false)) return null;
myLastLanguageName = language.getDisplayName();
}
return rangePair;
}