private static IElementType elementType(com.intellij.lang.Language language) { return ELEMENT_TYPE_BY_LANGUAGE_ID.computeIfAbsent( language.getID(), languageID -> { IElementType elementType; if (language == ElixirLanguage.INSTANCE) { elementType = new EmbeddedElixir(); } else { elementType = new TemplateData(language); } return elementType; } ); }
private static void addNavigationElements(@NotNull TreeElement root, @NotNull TIntArrayList navigationOffsets, boolean start) { if (root instanceof PsiTreeElementBase) { PsiElement element = ((PsiTreeElementBase)root).getValue(); int offset; if (start) { offset = element.getTextRange().getStartOffset(); if (element.getLanguage().getID().equals("JAVA")) { // HACK: for Java classes and methods, we want to jump to the opening brace int textOffset = element.getTextOffset(); int braceIndex = element.getText().indexOf('{', textOffset - offset); if (braceIndex >= 0) { offset += braceIndex; } } } else { offset = element.getTextRange().getEndOffset() - 1; } if (!navigationOffsets.contains(offset)) { navigationOffsets.add(offset); } } for (TreeElement child : root.getChildren()) { addNavigationElements(child, navigationOffsets, start); } }
@Override public List<AnAction> promote(List<AnAction> actions, DataContext context) { PsiFile psiFile = PlatformDataKeys.PSI_FILE.getData(context); if (psiFile != null) { String languageId = psiFile.getLanguage().getID(); if (isSupported(languageId)) { return checkForExecuteQueryAction(actions); } } return Collections.emptyList(); }
private void registerExternalAnnotatorFor(Language language) { LanguageExtensionPoint<SonarExternalAnnotator> ep = new LanguageExtensionPoint<>(); ep.language = language.getID(); ep.implementationClass = SonarExternalAnnotator.class.getName(); ep.setPluginDescriptor(plugin); Extensions.getRootArea().getExtensionPoint("com.intellij.externalAnnotator").registerExtension(ep); }
private void registerExternalAnnotatorFor(Language language) { LanguageExtensionPoint<SonarExternalAnnotator> ep = new LanguageExtensionPoint<SonarExternalAnnotator>(); ep.language = language.getID(); ep.implementationClass = SonarExternalAnnotator.class.getName(); ep.setPluginDescriptor(plugin); Extensions.getRootArea().getExtensionPoint("com.intellij.externalAnnotator").registerExtension(ep); }
public void highlightStatement(Editor editor, PsiFile psiFile) { if (nonNull(psiFile)) { String languageId = psiFile.getLanguage().getID(); if (isSupported(languageId)) { Caret caret = editor.getCaretModel().getPrimaryCaret(); PsiElement element = getCypherStatementAtOffset(psiFile, caret.getOffset()); highlightStatementInCypherFile(editor, element); } } }
query = caret.getSelectedText(); } else if (nonNull(psiFile)) { String languageId = psiFile.getLanguage().getID(); if (isSupported(languageId)) { PsiElement cypherStatement = getCypherStatementAtOffset(psiFile, caret.getOffset());