IDEA-228078 deprecate ScratchFileType and use ScratchUtil#isScratch

GitOrigin-RevId: 817782ef46aca402a238375d32034f7051a162d2
This commit is contained in:
Gregory.Shrago
2020-01-21 19:09:56 +03:00
committed by intellij-monorepo-bot
parent 4cd15fc6ca
commit 557a75f8a0
12 changed files with 35 additions and 44 deletions

View File

@@ -8,9 +8,8 @@ import com.intellij.execution.actions.ConfigurationFromContext;
import com.intellij.execution.application.AbstractApplicationConfigurationProducer;
import com.intellij.execution.application.ApplicationConfigurationType;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.ide.scratch.ScratchUtil;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.vfs.VirtualFile;
@@ -36,7 +35,7 @@ public class JavaScratchConfigurationProducer extends AbstractApplicationConfigu
final Location location = context.getLocation();
if (location != null) {
final VirtualFile vFile = location.getVirtualFile();
if (vFile != null && FileTypeRegistry.getInstance().isFileOfType(vFile, ScratchFileType.INSTANCE)) {
if (vFile != null && ScratchUtil.isScratch(vFile)) {
final PsiFile psiFile = location.getPsiElement().getContainingFile();
if (psiFile != null && psiFile.getLanguage() == JavaLanguage.INSTANCE) {
configuration.setScratchFileUrl(vFile.getUrl());

View File

@@ -16,7 +16,7 @@
package com.intellij.codeInsight.daemon;
import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.ide.scratch.ScratchUtil;
import com.intellij.openapi.roots.JavaProjectRootsUtil;
import com.intellij.openapi.roots.ProjectFileIndex;
import com.intellij.openapi.roots.ProjectRootManager;
@@ -30,7 +30,7 @@ public class JavaProblemHighlightFilter extends ProblemHighlightFilter {
public boolean shouldHighlight(@NotNull PsiFile psiFile) {
return psiFile.getFileType() != JavaFileType.INSTANCE ||
!JavaProjectRootsUtil.isOutsideJavaSourceRoot(psiFile) ||
psiFile.getViewProvider().getFileType() == ScratchFileType.INSTANCE;
ScratchUtil.isScratch(psiFile.getVirtualFile());
}
@Override

View File

@@ -29,7 +29,7 @@ import com.intellij.codeInsight.template.Template;
import com.intellij.codeInsight.template.TemplateBuilderFactory;
import com.intellij.codeInsight.template.TemplateBuilderImpl;
import com.intellij.codeInsight.template.TemplateEditingAdapter;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.ide.scratch.ScratchUtil;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.WriteCommandAction;
@@ -38,7 +38,6 @@ import com.intellij.openapi.editor.CaretModel;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.RangeMarker;
import com.intellij.openapi.fileEditor.ex.IdeDocumentHistory;
import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectFileIndex;
@@ -87,7 +86,7 @@ public class CreateSubclassAction extends BaseIntentionAction {
return false;
}
VirtualFile virtualFile = PsiUtilCore.getVirtualFile(psiClass);
if (virtualFile == null || FileTypeRegistry.getInstance().isFileOfType(virtualFile, ScratchFileType.INSTANCE)) {
if (virtualFile == null || ScratchUtil.isScratch(virtualFile)) {
return false;
}
if (!isSupportedLanguage(psiClass)) return false;

View File

@@ -3,7 +3,7 @@ package com.intellij.json.editor;
import com.intellij.codeInsight.editorActions.CopyPastePostProcessor;
import com.intellij.codeInsight.editorActions.TextBlockTransferableData;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.ide.scratch.ScratchUtil;
import com.intellij.json.JsonElementTypes;
import com.intellij.json.JsonFileType;
import com.intellij.json.psi.JsonArray;
@@ -97,7 +97,7 @@ public class JsonCopyPastePostProcessor extends CopyPastePostProcessor<TextBlock
if (file == null) return false;
final FileType fileType = file.getFileType();
if (fileType instanceof JsonFileType) return true;
if (!(fileType instanceof ScratchFileType)) return false;
if (!ScratchUtil.isScratch(file)) return false;
return PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()) instanceof JsonFile;
}

View File

@@ -173,11 +173,12 @@ public class ScratchFileServiceImpl extends ScratchFileService implements Persis
}
}
// TODO new way of scratch language substitution will be needed
public static class Substitutor extends LanguageSubstitutor {
@Nullable
@Override
public Language getLanguage(@NotNull VirtualFile file, @NotNull Project project) {
return substituteLanguage(project, file);
return substituteLanguage(project, file);
}
@Nullable
@@ -186,7 +187,7 @@ public class ScratchFileServiceImpl extends ScratchFileService implements Persis
if (rootType == null) return null;
Language language = rootType.substituteLanguage(project, file);
Language adjusted = language != null ? language : getLanguageByFileName(file);
Language result = adjusted != null && adjusted != ScratchFileType.INSTANCE.getLanguage() ?
Language result = adjusted != null && adjusted != PlainTextLanguage.INSTANCE ?
LanguageSubstitutors.getInstance().substituteLanguage(adjusted, file, project) : adjusted;
return result == Language.ANY ? null : result;
}
@@ -196,7 +197,8 @@ public class ScratchFileServiceImpl extends ScratchFileService implements Persis
@Override
@Nullable
public SyntaxHighlighter create(@NotNull FileType fileType, @Nullable Project project, @Nullable VirtualFile file) {
if (project == null || file == null || !(fileType instanceof ScratchFileType)) return null;
if (project == null || file == null) return null;
if (!ScratchUtil.isScratch(file)) return null;
Language language = LanguageUtil.getLanguageForPsi(project, file);
return language == null ? null : SyntaxHighlighterFactory.getSyntaxHighlighter(language, project, file);
@@ -227,7 +229,7 @@ public class ScratchFileServiceImpl extends ScratchFileService implements Persis
@Override
public boolean isWritable(@NotNull VirtualFile file) {
return FileTypeRegistry.getInstance().isFileOfType(file, ScratchFileType.INSTANCE);
return ScratchUtil.isScratch(file);
}
}
@@ -319,8 +321,7 @@ public class ScratchFileServiceImpl extends ScratchFileService implements Persis
@Override
public UsageType getUsageType(PsiElement element) {
VirtualFile file = PsiUtilCore.getVirtualFile(element);
RootType rootType = file != null && FileTypeRegistry.getInstance().isFileOfType(file, ScratchFileType.INSTANCE) ?
ScratchFileService.getInstance().getRootType(file) : null;
RootType rootType = ScratchFileService.getInstance().getRootType(file);
return rootType == null ? null : ourUsageTypes.get(rootType);
}
}

View File

@@ -1,18 +1,4 @@
/*
* Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.ide.scratch;
import com.intellij.openapi.fileTypes.LanguageFileType;
@@ -21,6 +7,7 @@ import com.intellij.openapi.fileTypes.PlainTextLanguage;
import com.intellij.openapi.fileTypes.ex.FileTypeIdentifiableByVirtualFile;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.newvfs.impl.FakeVirtualFile;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -28,7 +15,11 @@ import javax.swing.*;
/**
* @author gregsh
*
* @deprecated use {@link ScratchUtil#isScratch(VirtualFile)}.
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2020.3")
public class ScratchFileType extends LanguageFileType implements FileTypeIdentifiableByVirtualFile {
public static final LanguageFileType INSTANCE = new ScratchFileType();

View File

@@ -19,7 +19,6 @@ import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.DumbAware;
@@ -276,15 +275,16 @@ public class ScratchProjectViewPane extends ProjectViewPane {
@Override
public boolean contains(@NotNull VirtualFile file) {
return FileTypeRegistry.getInstance().isFileOfType(file, ScratchFileType.INSTANCE);
return ScratchUtil.isScratch(file);
}
@NotNull
@Override
public Collection<? extends AbstractTreeNode<?>> getChildren() {
List<AbstractTreeNode<?>> list = new ArrayList<>();
Project project = ObjectUtils.notNull(getProject());
for (RootType rootType : RootType.getAllRootTypes()) {
ContainerUtil.addIfNotNull(list, createRootNode(getProject(), rootType, getSettings()));
ContainerUtil.addIfNotNull(list, createRootNode(project, rootType, getSettings()));
}
return list;
}

View File

@@ -19,6 +19,7 @@ import com.intellij.icons.AllIcons;
import com.intellij.lang.Language;
import com.intellij.openapi.command.UndoConfirmationPolicy;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.fileTypes.PlainTextFileType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.vfs.VfsUtil;
@@ -54,7 +55,7 @@ public final class ScratchRootType extends RootType {
@Override
public Icon substituteIcon(@NotNull Project project, @NotNull VirtualFile file) {
if (file.isDirectory()) return null;
Icon icon = ObjectUtils.chooseNotNull(super.substituteIcon(project, file), ScratchFileType.INSTANCE.getIcon());
Icon icon = ObjectUtils.chooseNotNull(super.substituteIcon(project, file), PlainTextFileType.INSTANCE.getIcon());
return LayeredIcon.create(icon, AllIcons.Actions.Scratch);
}

View File

@@ -40,7 +40,7 @@ public class ScratchUtil {
}
/**
* Returns true if a file is in one of scratch roots: scratch, console, etc.
* Returns true if a file or a directory is in one of scratch roots: scratch, console, etc.
* @see RootType
* @see ScratchFileService
*/

View File

@@ -3,7 +3,7 @@ package com.intellij.psi.codeStyle;
import com.intellij.application.options.CodeStyle;
import com.intellij.ide.actions.ShowSettingsUtilImpl;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.ide.scratch.ScratchUtil;
import com.intellij.lang.LanguageFormatting;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationDisplayType;
@@ -101,9 +101,9 @@ public class DetectableIndentOptionsProvider extends FileIndentOptionsProvider {
private boolean isEnabled(@NotNull CodeStyleSettings settings, @NotNull PsiFile file) {
if (!file.isValid() ||
!file.isWritable() ||
(file instanceof PsiBinaryFile) ||
(file instanceof PsiCompiledFile) ||
file.getFileType() == ScratchFileType.INSTANCE) {
file instanceof PsiBinaryFile ||
file instanceof PsiCompiledFile ||
ScratchUtil.isScratch(file.getVirtualFile())) {
return false;
}
if (ApplicationManager.getApplication().isUnitTestMode()) {

View File

@@ -3,7 +3,7 @@
package com.intellij.refactoring.rename;
import com.intellij.featureStatistics.FeatureUsageTracker;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.ide.scratch.ScratchUtil;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.DataKey;
@@ -97,7 +97,7 @@ public class PsiElementRenameHandler implements RenameHandler {
if (checkInProject && nameSuggestionContext != null &&
nameSuggestionContext.isPhysical() &&
(contextFile == null || contextFile.getFileType() != ScratchFileType.INSTANCE) &&
(contextFile == null || !ScratchUtil.isScratch(contextFile)) &&
!PsiManager.getInstance(project).isInProject(nameSuggestionContext)) {
final String message = "Selected element is used from non-project files. These usages won't be renamed. Proceed anyway?";
if (ApplicationManager.getApplication().isUnitTestMode()) throw new CommonRefactoringUtil.RefactoringErrorHintException(message);

View File

@@ -1,6 +1,6 @@
package org.intellij.plugins.markdown.ui.preview;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.ide.scratch.ScratchUtil;
import com.intellij.lang.LanguageUtil;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.FileEditorPolicy;
@@ -18,7 +18,7 @@ public class MarkdownPreviewFileEditorProvider extends WeighedFileEditorProvider
final FileType fileType = file.getFileType();
return (fileType == MarkdownFileType.INSTANCE ||
fileType == ScratchFileType.INSTANCE && LanguageUtil.getLanguageForPsi(project, file) == MarkdownLanguage.INSTANCE) &&
ScratchUtil.isScratch(file) && LanguageUtil.getLanguageForPsi(project, file) == MarkdownLanguage.INSTANCE) &&
MarkdownHtmlPanelProvider.hasAvailableProviders();
}