mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
EA-772883 - T: DirectoryIndexImpl.getInfoForFile
GitOrigin-RevId: 6d6b63d5f55ffd119e9b6c973329654c9628b2ff
This commit is contained in:
committed by
intellij-monorepo-bot
parent
75cadec822
commit
ec53bdf06f
@@ -25,6 +25,7 @@ import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider;
|
||||
import org.editorconfig.language.filetype.EditorConfigFileType;
|
||||
import org.editorconfig.settings.EditorConfigSettings;
|
||||
@@ -32,13 +33,14 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
|
||||
final class EditorConfigEditorProvider implements AsyncFileEditorProvider, DumbAware {
|
||||
private static final String EDITOR_TYPE_ID = "org.editorconfig.configmanagement.editor";
|
||||
|
||||
static final int MAX_PREVIEW_LENGTH = 10000;
|
||||
|
||||
private static final PsiAwareTextEditorProvider myMainEditorProvider = new PsiAwareTextEditorProvider();
|
||||
private static final PsiAwareTextEditorProvider ourMainEditorProvider = new PsiAwareTextEditorProvider();
|
||||
|
||||
@Override
|
||||
public @NotNull Builder createEditorAsync(@NotNull Project project, @NotNull VirtualFile file) {
|
||||
@@ -66,35 +68,35 @@ final class EditorConfigEditorProvider implements AsyncFileEditorProvider, DumbA
|
||||
}
|
||||
|
||||
private static final class MyEditorBuilder extends Builder {
|
||||
private final Project myProject;
|
||||
private final VirtualFile myFile;
|
||||
final Project myProject;
|
||||
final VirtualFile myFile;
|
||||
final Set<String> myEncodings;
|
||||
|
||||
private MyEditorBuilder(Project project, VirtualFile file) {
|
||||
myProject = project;
|
||||
myFile = file;
|
||||
myEncodings = EditorConfigStatusListener.extractEncodings(project, file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull FileEditor build() {
|
||||
FileEditor result;
|
||||
VirtualFile contextFile = EditorConfigPreviewManager.getInstance(myProject).getAssociatedPreviewFile(myFile);
|
||||
EditorConfigStatusListener statusListener = new EditorConfigStatusListener(myProject, myFile);
|
||||
if (contextFile != null && CodeStyle.getSettings(myProject).getCustomSettings(EditorConfigSettings.class).ENABLED) {
|
||||
Document document =EditorFactory.getInstance().createDocument(getPreviewText(contextFile));
|
||||
Disposable previewDisposable = Disposer.newDisposable();
|
||||
final EditorConfigPreviewFile previewFile = new EditorConfigPreviewFile(myProject, contextFile, document, previewDisposable);
|
||||
Document document = EditorFactory.getInstance().createDocument(getPreviewText(contextFile));
|
||||
Disposable disposable = Disposer.newDisposable();
|
||||
EditorConfigPreviewFile previewFile = new EditorConfigPreviewFile(myProject, contextFile, document, disposable);
|
||||
FileEditor previewEditor = createPreviewEditor(document, previewFile);
|
||||
TextEditor ecTextEditor = (TextEditor)TextEditorProvider.getInstance().createEditor(myProject, myFile);
|
||||
final EditorConfigEditorWithPreview splitEditor = new EditorConfigEditorWithPreview(
|
||||
myFile, myProject, ecTextEditor, previewEditor);
|
||||
Disposer.register(splitEditor, previewDisposable);
|
||||
Disposer.register(splitEditor, statusListener);
|
||||
return splitEditor;
|
||||
result = new EditorConfigEditorWithPreview(myFile, myProject, ecTextEditor, previewEditor);
|
||||
Disposer.register(result, disposable);
|
||||
}
|
||||
else {
|
||||
FileEditor fileEditor = myMainEditorProvider.createEditor(myProject, myFile);
|
||||
Disposer.register(fileEditor, statusListener);
|
||||
return fileEditor;
|
||||
result = ourMainEditorProvider.createEditor(myProject, myFile);
|
||||
}
|
||||
EditorConfigStatusListener statusListener = new EditorConfigStatusListener(myProject, myFile, myEncodings);
|
||||
CodeStyleSettingsManager.getInstance(myProject).subscribe(statusListener, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private FileEditor createPreviewEditor(@NotNull Document document, @NotNull EditorConfigPreviewFile previewFile) {
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.editorconfig.configmanagement.editor;
|
||||
|
||||
import com.intellij.application.options.CodeStyle;
|
||||
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
@@ -13,7 +12,6 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsChangeEvent;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsListener;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.ui.EditorNotifications;
|
||||
import org.editorconfig.Utils;
|
||||
import org.editorconfig.configmanagement.ConfigEncodingCharsetUtil;
|
||||
@@ -28,18 +26,19 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
final class EditorConfigStatusListener implements CodeStyleSettingsListener, Disposable {
|
||||
final class EditorConfigStatusListener implements CodeStyleSettingsListener {
|
||||
private boolean myEnabledStatus;
|
||||
private final VirtualFile myVirtualFile;
|
||||
private final Project myProject;
|
||||
private Set<String> myEncodings;
|
||||
|
||||
EditorConfigStatusListener(@NotNull Project project, @NotNull VirtualFile virtualFile) {
|
||||
EditorConfigStatusListener(@NotNull Project project,
|
||||
@NotNull VirtualFile virtualFile,
|
||||
@NotNull Set<String> encodings) {
|
||||
myProject = project;
|
||||
myEnabledStatus = Utils.INSTANCE.isEnabled(project);
|
||||
myVirtualFile = virtualFile;
|
||||
myEncodings = extractEncodings();
|
||||
CodeStyleSettingsManager.getInstance(project).subscribe(this, this);
|
||||
myEncodings = encodings;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,7 +54,7 @@ final class EditorConfigStatusListener implements CodeStyleSettingsListener, Dis
|
||||
myEnabledStatus = newEnabledStatus;
|
||||
onEditorConfigEnabled(newEnabledStatus);
|
||||
}
|
||||
Set<String> newEncodings = extractEncodings();
|
||||
Set<String> newEncodings = extractEncodings(myProject, myVirtualFile);
|
||||
if (!myEncodings.equals(newEncodings)) {
|
||||
if (containsValidEncodings(newEncodings)) {
|
||||
onEncodingChanged();
|
||||
@@ -78,10 +77,6 @@ final class EditorConfigStatusListener implements CodeStyleSettingsListener, Dis
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
|
||||
private static void onEncodingChanged() {
|
||||
EditorConfigEncodingCache.Companion.getInstance().reset();
|
||||
}
|
||||
@@ -95,9 +90,9 @@ final class EditorConfigStatusListener implements CodeStyleSettingsListener, Dis
|
||||
return true;
|
||||
}
|
||||
|
||||
private @NotNull Set<String> extractEncodings() {
|
||||
static @NotNull Set<String> extractEncodings(@NotNull Project project, @NotNull VirtualFile file) {
|
||||
Set<String> charsets = new HashSet<>();
|
||||
PsiFile psiFile = PsiManager.getInstance(myProject).findFile(myVirtualFile);
|
||||
PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
|
||||
if (psiFile == null) {
|
||||
return charsets;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user