当前位置: 首页>>代码示例>>Java>>正文


Java FileViewProvider类代码示例

本文整理汇总了Java中com.intellij.psi.FileViewProvider的典型用法代码示例。如果您正苦于以下问题:Java FileViewProvider类的具体用法?Java FileViewProvider怎么用?Java FileViewProvider使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


FileViewProvider类属于com.intellij.psi包,在下文中一共展示了FileViewProvider类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: processRoot

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
private void processRoot(final List<InferenceCapable> files, VirtualFile f) {
    LuaFileUtil.iterateLuaFilesRecursively(f, new ContentIterator() {
        @Override
        public boolean processFile(VirtualFile fileOrDir) {
            ProgressManager.checkCanceled();

            log.debug("process " + fileOrDir.getName());
            if (fileOrDir.isDirectory()) return true;

            indicator.setText2(fileOrDir.getPresentableName());
            final FileViewProvider viewProvider = p.findViewProvider(fileOrDir);
            if (viewProvider == null) return true;

            final PsiFile psiFile = viewProvider.getPsi(viewProvider.getBaseLanguage());
            if (!(psiFile instanceof InferenceCapable)) return true;

            indicator.setText2(fileOrDir.getName());
            log.debug("forcing inference for: " + fileOrDir.getName());

            files.add((InferenceCapable) psiFile);

            return true;
        }
    });
}
 
开发者ID:internetisalie,项目名称:lua-for-idea,代码行数:26,代码来源:LuaPsiManager.java

示例2: divideInsideAndOutside

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
public static void divideInsideAndOutside(@NotNull PsiFile file,
                                          int startOffset,
                                          int endOffset,
                                          @NotNull TextRange range,
                                          @NotNull List<PsiElement> inside,
                                          @NotNull List<ProperTextRange> insideRanges,
                                          @NotNull List<PsiElement> outside,
                                          @NotNull List<ProperTextRange> outsideRanges,
                                          boolean includeParents,
                                          @NotNull Condition<PsiFile> filter) {
  final FileViewProvider viewProvider = file.getViewProvider();
  for (Language language : viewProvider.getLanguages()) {
    final PsiFile psiRoot = viewProvider.getPsi(language);
    if (filter.value(psiRoot)) {
      divideInsideAndOutside(psiRoot, startOffset, endOffset, range, inside, insideRanges, outside, outsideRanges, includeParents);
    }
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:19,代码来源:Divider.java

示例3: getRootBlock

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
protected Block getRootBlock(PsiElement element, FileViewProvider viewProvider, CodeStyleSettings settings) {
  ASTNode node = element.getNode();
  if (node == null) {
    return createDummyBlock(node);
  }
  if (viewProvider instanceof TemplateLanguageFileViewProvider) {
    final Language dataLanguage = ((TemplateLanguageFileViewProvider)viewProvider).getTemplateDataLanguage();
    final FormattingModelBuilder builder = LanguageFormatting.INSTANCE.forLanguage(dataLanguage);
    if (builder instanceof DelegatingFormattingModelBuilder && ((DelegatingFormattingModelBuilder)builder).dontFormatMyModel()) {
      return createDummyBlock(node);
    }
    if (builder != null) {
      final FormattingModel model = builder.createModel(viewProvider.getPsi(dataLanguage), settings);
      List<DataLanguageBlockWrapper> childWrappers = buildChildWrappers(model.getRootBlock());
      if (childWrappers.size() == 1) {
        childWrappers = buildChildWrappers(childWrappers.get(0).getOriginal());
      }
      return createTemplateLanguageBlock(node, Wrap.createWrap(WrapType.NONE, false), null,
                                         filterBlocksByRange(childWrappers, node.getTextRange()), settings);
    }
  }
  return createTemplateLanguageBlock(node,  Wrap.createWrap(WrapType.NONE, false), null, Collections.<DataLanguageBlockWrapper>emptyList(), settings);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:24,代码来源:TemplateLanguageFormattingModelBuilder.java

示例4: checkFile

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
@Nullable
public ProblemDescriptor[] checkFile(@NotNull PsiFile file, @NotNull InspectionManager manager, boolean isOnTheFly) {
  if (InjectedLanguageManager.getInstance(file.getProject()).isInjectedFragment(file)) return null;
  if (!file.isPhysical()) return null;
  FileViewProvider viewProvider = file.getViewProvider();
  if (viewProvider.getBaseLanguage() != file.getLanguage()) return null;
  VirtualFile virtualFile = file.getVirtualFile();
  if (virtualFile == null) return null;
  if (!virtualFile.isInLocalFileSystem()) return null;
  CharSequence text = viewProvider.getContents();
  Charset charset = LoadTextUtil.extractCharsetFromFileContent(file.getProject(), virtualFile, text);

  // no sense in checking transparently decoded file: all characters there are already safely encoded
  if (charset instanceof Native2AsciiCharset) return null;

  List<ProblemDescriptor> descriptors = new SmartList<ProblemDescriptor>();
  boolean ok = checkFileLoadedInWrongEncoding(file, manager, isOnTheFly, virtualFile, charset, descriptors);
  if (ok) {
    checkIfCharactersWillBeLostAfterSave(file, manager, isOnTheFly, text, charset, descriptors);
  }

  return descriptors.toArray(new ProblemDescriptor[descriptors.size()]);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:25,代码来源:LossyEncodingInspection.java

示例5: doCollectInformation

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
public void doCollectInformation(@NotNull ProgressIndicator progress) {
  final FileViewProvider viewProvider = myFile.getViewProvider();
  final Set<Language> relevantLanguages = viewProvider.getLanguages();
  List<LineMarkerInfo> markers = new SmartList<LineMarkerInfo>();
  for (Language language : relevantLanguages) {
    PsiElement psiRoot = viewProvider.getPsi(language);
    if (psiRoot == null || !HighlightingLevelManager.getInstance(myProject).shouldHighlight(psiRoot)) continue;
    List<PsiElement> elements = CollectHighlightsUtil.getElementsInRange(psiRoot, myBounds.getStartOffset(), myBounds.getEndOffset());
    final List<LineMarkerProvider> providers = LineMarkersPass.getMarkerProviders(language, myProject);
    addLineMarkers(elements, providers, markers, progress);
    LineMarkersPass.collectLineMarkersForInjected(markers, elements, this, myFile, progress);
  }

  myMarkers = LineMarkersPass.mergeLineMarkers(markers, myEditor);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:17,代码来源:SlowLineMarkersPass.java

示例6: update

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
public void update(final AnActionEvent e) {
  e.getPresentation().setVisible(false);

  VirtualFile virtualFile = e.getData(CommonDataKeys.VIRTUAL_FILE);
  VirtualFile[] files = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY);
  if (files != null && files.length > 1) {
    virtualFile = null;
  }
  if (virtualFile == null || virtualFile.isDirectory()) return;

  Project project = e.getData(CommonDataKeys.PROJECT);
  if (project == null) return;

  final FileViewProvider provider = PsiManager.getInstance(project).findViewProvider(virtualFile);
  if (provider instanceof ConfigurableTemplateLanguageFileViewProvider) {
    final TemplateLanguageFileViewProvider viewProvider = (TemplateLanguageFileViewProvider)provider;

    e.getPresentation().setText(LangBundle.message("quickfix.change.template.data.language.text", viewProvider.getTemplateDataLanguage().getDisplayName()));
    e.getPresentation().setEnabled(true);
    e.getPresentation().setVisible(true);
  }

}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:25,代码来源:ChangeTemplateDataLanguageAction.java

示例7: compute

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
public CachedValueProvider.Result<MultiHostRegistrarImpl> compute(PsiElement element) {
  PsiFile hostPsiFile = element.getContainingFile();
  if (hostPsiFile == null) return null;
  FileViewProvider viewProvider = hostPsiFile.getViewProvider();
  final DocumentEx hostDocument = (DocumentEx)viewProvider.getDocument();
  if (hostDocument == null) return null;

  PsiManager psiManager = viewProvider.getManager();
  final Project project = psiManager.getProject();
  InjectedLanguageManagerImpl injectedManager = InjectedLanguageManagerImpl.getInstanceImpl(project);

  final MultiHostRegistrarImpl result = doCompute(element, injectedManager, project, hostPsiFile);

  return CachedValueProvider.Result.create(result, PsiModificationTracker.MODIFICATION_COUNT, hostDocument);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:17,代码来源:InjectedPsiCachedValueProvider.java

示例8: createFileViewProvider

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@NotNull
@Override
public FileViewProvider createFileViewProvider(
    @NotNull VirtualFile virtualFile,
    Language language,
    @NotNull PsiManager psiManager,
    boolean eventSystemEnabled) {
  assert language.isKindOf(SoyLanguage.INSTANCE);
  return new SoyFileViewProvider(psiManager, virtualFile, eventSystemEnabled);
}
 
开发者ID:google,项目名称:bamboo-soy,代码行数:11,代码来源:SoyFileViewProviderFactory.java

示例9: createFile

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
public PsiFile createFile(FileViewProvider fileViewProvider) {
    if (fileViewProvider != null) {
        return new MelFile(fileViewProvider);
    } else {
        throw new RuntimeException("Invalid file viewer null!!!");
    }
}
 
开发者ID:machaval,项目名称:mule-intellij-plugins,代码行数:9,代码来源:MelParserDefinition.java

示例10: createFile

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
public PsiFile createFile(FileViewProvider viewProvider) {
    if (viewProvider != null) {
        return new WeaveFile(viewProvider);
    } else {
        throw new RuntimeException("Invalid file viewer null!!!");
    }
}
 
开发者ID:machaval,项目名称:mule-intellij-plugins,代码行数:9,代码来源:WeaveParserDefinition.java

示例11: autoPopupXmlLookup

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
public static void autoPopupXmlLookup(final Project project, final Editor editor){
  AutoPopupController.getInstance(project).autoPopupMemberLookup(editor, new Condition<PsiFile>() {
    @Override
    public boolean value(PsiFile file) {
      int offset = editor.getCaretModel().getOffset();

      PsiElement lastElement = InjectedLanguageUtil.findElementAtNoCommit(file, offset - 1);
      if (lastElement instanceof PsiFile) { //the very end of an injected file
        lastElement = file.findElementAt(offset - 1);
      }
      if (lastElement == null || !lastElement.isValid()) return false;

      if (doCompleteIfNeeded(offset, file, lastElement)) {
        return true;
      }

      FileViewProvider fileViewProvider = file.getViewProvider();
      Language templateDataLanguage;

      final PsiElement parent = lastElement.getParent();
      if (fileViewProvider instanceof TemplateLanguageFileViewProvider &&
          (templateDataLanguage = ((TemplateLanguageFileViewProvider)fileViewProvider).getTemplateDataLanguage()) != parent.getLanguage()) {
        lastElement = fileViewProvider.findElementAt(offset - 1, templateDataLanguage);
        if (lastElement == null || !lastElement.isValid()) return false;
        return doCompleteIfNeeded(offset, file, lastElement);
      }
      return false;
    }
  });
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:31,代码来源:XmlAutoPopupHandler.java

示例12: createFileViewProvider

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@NotNull
@Override
public FileViewProvider createFileViewProvider(@NotNull VirtualFile virtualFile,
                                               Language language,
                                               @NotNull PsiManager psiManager,
                                               boolean eventSystemEnabled){
  assert language.isKindOf(RythmLanguage.INSTANCE);
    return new RythmFileViewProvider(psiManager, virtualFile, eventSystemEnabled, language);
}
 
开发者ID:scireum-incubator,项目名称:rythm_plugin,代码行数:10,代码来源:RythmFileViewProviderFactory.java

示例13: getLineExtensions

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
public Collection<LineExtensionInfo> getLineExtensions(@NotNull Project project, @NotNull VirtualFile file, int lineNumber) {
  List<LineExtensionInfo> res = ContainerUtil.newSmartList();

  PsiDocumentManager psiDocumentManager = PsiDocumentManager.getInstance(project);
  final Document doc = FileDocumentManager.getInstance().getDocument(file);
  if (doc != null && lineNumber < doc.getLineCount()) {
    PsiFile psiFile = psiDocumentManager.getPsiFile(doc);
    if (psiFile != null) {
      int offset = doc.getLineStartOffset(lineNumber);
      FileViewProvider viewProvider = psiFile.getViewProvider();

      PsiElement element = viewProvider.findElementAt(offset);
      while (element != null) {
        int startOffset = element.getTextRange().getStartOffset();
        if (startOffset >= doc.getTextLength()) break;

        int startOffsetLine = doc.getLineNumber(startOffset);

        if (startOffsetLine < lineNumber) {
          element = PsiTreeUtil.nextVisibleLeaf(element);
          continue;
        }

        if (startOffsetLine > lineNumber) break;

        try {
          element = addExtensions(res, element);
        } catch (IndexNotReadyException ignored) { element = null; }
      }
    }
  }

  return res;
}
 
开发者ID:SumoLogic,项目名称:epigraph,代码行数:36,代码来源:SchemaRetroTagLinePainter.java

示例14: canHandleElement

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
@Override
public boolean canHandleElement(@NotNull OpenInBrowserRequest request) {
  if (request.getVirtualFile() instanceof HttpVirtualFile) {
    return true;
  }

  // we must use base language because we serve file - not part of file, but the whole file
  // handlebars, for example, contains HTML and HBS psi trees, so, regardless of context, we should not handle such file
  FileViewProvider viewProvider = request.getFile().getViewProvider();
  return viewProvider.isPhysical() &&
         !(request.getVirtualFile() instanceof LightVirtualFile) &&
         isMyLanguage(viewProvider.getBaseLanguage());
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:14,代码来源:BuiltInWebBrowserUrlProvider.java

示例15: PsiFileBase

import com.intellij.psi.FileViewProvider; //导入依赖的package包/类
protected PsiFileBase(@NotNull FileViewProvider viewProvider, @NotNull Language language) {
  super(viewProvider);
  myLanguage = findLanguage(language, viewProvider);
  final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(myLanguage);
  if (parserDefinition == null) {
    throw new RuntimeException("PsiFileBase: language.getParserDefinition() returned null for: "+myLanguage);
  }
  myParserDefinition = parserDefinition;
  final IFileElementType nodeType = parserDefinition.getFileNodeType();
  assert nodeType.getLanguage() == myLanguage: nodeType.getLanguage() + " != " + myLanguage;
  init(nodeType, nodeType);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:13,代码来源:PsiFileBase.java


注:本文中的com.intellij.psi.FileViewProvider类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。