public static @Nullable IdIndexer getFileTypeIndexer(@NotNull FileType fileType) {
    final IdIndexer extIndexer = getIndexer(fileType);
    if (extIndexer != null) {
      return extIndexer;
    }

    final WordsScanner customWordsScanner = CacheBuilderRegistry.getInstance().getCacheBuilder(fileType);
    if (customWordsScanner != null) {
      return createDefaultIndexer(customWordsScanner);
    }

    if (fileType instanceof LanguageFileType) {
      final Language lang = ((LanguageFileType)fileType).getLanguage();
      WordsScanner scanner = LanguageFindUsages.getWordsScanner(lang);
      if (scanner == null) {
        scanner = new SimpleWordsScanner();
      }
      return createDefaultIndexer(scanner);
    }

    if (fileType instanceof CustomSyntaxTableFileType) {
      return new ScanningIdIndexer() {
        @Override
        protected WordsScanner createScanner() {
          return createCustomFileTypeScanner(((CustomSyntaxTableFileType)fileType).getSyntaxTable());
        }
      };
    }

    return null;
  }
public static @Nullable IdIndexer getFileTypeIndexer(@NotNull FileType fileType)