mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
review quirks followup
This commit is contained in:
+10
-5
@@ -64,6 +64,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile {
|
||||
private static final byte[][] WELL_KNOWN_SUFFIXES_BYTES;
|
||||
private static final int[] WELL_KNOWN_SUFFIXES_LENGTH;
|
||||
private static final int SUFFIX_BITS = 4;
|
||||
private static final int FLAGS_FIELD_LENGTH = Short.SIZE;
|
||||
static {
|
||||
WELL_KNOWN_SUFFIXES_BYTES = new byte[WELL_KNOWN_SUFFIXES.length][];
|
||||
WELL_KNOWN_SUFFIXES_LENGTH = new int[WELL_KNOWN_SUFFIXES.length];
|
||||
@@ -97,12 +98,12 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile {
|
||||
}
|
||||
|
||||
private void storeName(@NotNull String name) {
|
||||
myFlags &= 0xffff >>> SUFFIX_BITS;
|
||||
myFlags &= (1<<FLAGS_FIELD_LENGTH)-1 >>> SUFFIX_BITS;
|
||||
for (int i = 0; i < WELL_KNOWN_SUFFIXES.length; i++) {
|
||||
String suffix = WELL_KNOWN_SUFFIXES[i];
|
||||
if (name.endsWith(suffix)) {
|
||||
name = StringUtil.trimEnd(name, suffix);
|
||||
int mask = (i+1) << 16-SUFFIX_BITS;
|
||||
int mask = (i+1) << (FLAGS_FIELD_LENGTH-SUFFIX_BITS);
|
||||
myFlags |= mask;
|
||||
break;
|
||||
}
|
||||
@@ -138,22 +139,26 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile {
|
||||
|
||||
@NotNull
|
||||
private String getEncodedSuffix() {
|
||||
int index = (myFlags >> 16-SUFFIX_BITS) & ((1<<SUFFIX_BITS)-1);
|
||||
int index = getSuffixIndex();
|
||||
if (index == 0) return EMPTY;
|
||||
return WELL_KNOWN_SUFFIXES[index-1];
|
||||
}
|
||||
@NotNull
|
||||
private byte[] getEncodedSuffixBytes() {
|
||||
int index = (myFlags >> 16-SUFFIX_BITS) & ((1<<SUFFIX_BITS)-1);
|
||||
int index = getSuffixIndex();
|
||||
if (index == 0) return ArrayUtil.EMPTY_BYTE_ARRAY;
|
||||
return WELL_KNOWN_SUFFIXES_BYTES[index-1];
|
||||
}
|
||||
private int getEncodedSuffixLength() {
|
||||
int index = (myFlags >> 16-SUFFIX_BITS) & ((1<<SUFFIX_BITS)-1);
|
||||
int index = getSuffixIndex();
|
||||
if (index == 0) return 0;
|
||||
return WELL_KNOWN_SUFFIXES_LENGTH[index-1];
|
||||
}
|
||||
|
||||
private int getSuffixIndex() {
|
||||
return (myFlags >> FLAGS_FIELD_LENGTH - SUFFIX_BITS) & ((1 << SUFFIX_BITS) - 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getName() {
|
||||
|
||||
+3
-1
@@ -23,6 +23,7 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.impl.DirectoryIndex;
|
||||
import com.intellij.openapi.roots.impl.DirectoryIndexImpl;
|
||||
import com.intellij.openapi.vfs.newvfs.persistent.PersistentFS;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSchemes;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
@@ -63,7 +64,8 @@ class LightIdeaTestFixtureImpl extends BaseFixture implements LightIdeaTestFixtu
|
||||
LightPlatformTestCase.doTearDown(project, LightPlatformTestCase.getApplication(), true);
|
||||
super.tearDown();
|
||||
InjectedLanguageManagerImpl.checkInjectorsAreDisposed(project);
|
||||
((DirectoryIndexImpl)DirectoryIndex.getInstance(project)).assertAncestorConsistent();
|
||||
PersistentFS.getInstance().clearIdCache();
|
||||
((DirectoryIndexImpl)DirectoryIndex.getInstance(project)).assertAncestorConsistent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user