mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
make TempFileSystem extends LocalFileSystem to simplify clients and tests
This commit is contained in:
@@ -17,7 +17,6 @@ package org.intellij.images.index;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.ex.temp.TempFileSystem;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.indexing.*;
|
||||
import com.intellij.util.io.DataExternalizer;
|
||||
@@ -94,8 +93,8 @@ public class ImageInfoIndex extends SingleEntryFileBasedIndexExtension<ImageInfo
|
||||
return new DefaultFileTypeSpecificInputFilter(ImageFileTypeManager.getInstance().getImageFileType()) {
|
||||
@Override
|
||||
public boolean acceptInput(final VirtualFile file) {
|
||||
return (file.isInLocalFileSystem() || file.getFileSystem() instanceof TempFileSystem) &&
|
||||
(file.getLength() / 1024) < ourMaxImageSize
|
||||
return file.isInLocalFileSystem() &&
|
||||
file.getLength() / 1024 < ourMaxImageSize
|
||||
;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -44,7 +44,6 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.encoding.ChangeFileEncodingAction;
|
||||
import com.intellij.openapi.vfs.encoding.EncodingUtil;
|
||||
import com.intellij.openapi.vfs.ex.temp.TempFileSystem;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiUtilBase;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
@@ -98,9 +97,7 @@ public class LossyEncodingInspection extends LocalInspectionTool {
|
||||
if (file.getViewProvider().getBaseLanguage() != file.getLanguage()) return null;
|
||||
VirtualFile virtualFile = file.getVirtualFile();
|
||||
if (virtualFile == null) return null;
|
||||
if (!virtualFile.isInLocalFileSystem()
|
||||
// tests
|
||||
&& virtualFile.getFileSystem() != TempFileSystem.getInstance()) return null;
|
||||
if (!virtualFile.isInLocalFileSystem()) return null;
|
||||
String text = file.getText();
|
||||
Charset charset = LoadTextUtil.extractCharsetFromFileContent(file.getProject(), virtualFile, text);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 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.
|
||||
@@ -21,13 +21,14 @@ import com.intellij.openapi.util.io.BufferExposingByteArrayInputStream;
|
||||
import com.intellij.openapi.util.io.FileAttributes;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.impl.local.LocalFileSystemBase;
|
||||
import com.intellij.openapi.vfs.newvfs.ManagingFS;
|
||||
import com.intellij.openapi.vfs.newvfs.NewVirtualFileSystem;
|
||||
import com.intellij.openapi.vfs.newvfs.RefreshQueue;
|
||||
import com.intellij.openapi.vfs.newvfs.VfsImplUtil;
|
||||
import com.intellij.openapi.vfs.newvfs.impl.FakeVirtualFile;
|
||||
import com.intellij.openapi.vfs.newvfs.persistent.FSRecords;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.LocalTimeCounter;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -35,12 +36,14 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author max
|
||||
*/
|
||||
public class TempFileSystem extends NewVirtualFileSystem {
|
||||
public class TempFileSystem extends LocalFileSystemBase {
|
||||
private final FSItem myRoot = new FSDir(null, "/");
|
||||
|
||||
public static TempFileSystem getInstance() {
|
||||
@@ -180,7 +183,7 @@ public class TempFileSystem extends NewVirtualFileSystem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTimeStamp(@NotNull final VirtualFile file, final long timeStamp) throws IOException {
|
||||
public void setTimeStamp(@NotNull final VirtualFile file, final long timeStamp) {
|
||||
final FSItem fsItem = convert(file);
|
||||
assert fsItem != null;
|
||||
|
||||
@@ -370,4 +373,28 @@ public class TempFileSystem extends NewVirtualFileSystem {
|
||||
final long length = item instanceof FSFile ? ((FSFile)item).myContent.length : 0;
|
||||
return new FileAttributes(item.isDirectory(), false, false, false, length, item.myTimestamp, item.myWritable);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Set<WatchRequest> addRootsToWatch(@NotNull Collection<String> rootPaths, boolean watchRecursively) {
|
||||
throw new IncorrectOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeWatchedRoots(@NotNull Collection<WatchRequest> watchRequests) {
|
||||
throw new IncorrectOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<WatchRequest> replaceWatchedRoots(@NotNull Collection<WatchRequest> watchRequests,
|
||||
@Nullable Collection<String> recursiveRoots,
|
||||
@Nullable Collection<String> flatRoots) {
|
||||
throw new IncorrectOperationException();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
protected String normalize(@NotNull String path) {
|
||||
return path;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 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.
|
||||
@@ -44,6 +44,7 @@ import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileFilter;
|
||||
import com.intellij.openapi.vfs.ex.temp.TempFileSystem;
|
||||
import com.intellij.util.Alarm;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.ThrowableRunnable;
|
||||
@@ -608,13 +609,14 @@ public class PlatformTestUtil {
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
|
||||
VirtualFile[] childrenAfter = dirAfter.getChildren();
|
||||
if (dirAfter.isInLocalFileSystem()) {
|
||||
|
||||
if (dirAfter.isInLocalFileSystem() && dirAfter.getFileSystem() != TempFileSystem.getInstance()) {
|
||||
File[] ioAfter = new File(dirAfter.getPath()).listFiles();
|
||||
shallowCompare(childrenAfter, ioAfter);
|
||||
}
|
||||
|
||||
VirtualFile[] childrenBefore = dirBefore.getChildren();
|
||||
if (dirBefore.isInLocalFileSystem()) {
|
||||
if (dirBefore.isInLocalFileSystem() && dirBefore.getFileSystem() != TempFileSystem.getInstance()) {
|
||||
File[] ioBefore = new File(dirBefore.getPath()).listFiles();
|
||||
shallowCompare(childrenBefore, ioBefore);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.fileTypes.LanguageFileType;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.ex.temp.TempFileSystem;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.xml.XmlTokenType;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
@@ -97,11 +96,7 @@ public class Html5CustomAttributesIndex extends ScalarIndexExtension<String> {
|
||||
return new DefaultFileTypeSpecificInputFilter(StdFileTypes.HTML, StdFileTypes.XHTML) {
|
||||
@Override
|
||||
public boolean acceptInput(final VirtualFile file) {
|
||||
if (!file.isInLocalFileSystem() && !(file.getFileSystem() instanceof TempFileSystem)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return file.isInLocalFileSystem();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user