mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
detect indent options by FileType if there are no PsiFile
This commit is contained in:
@@ -17,13 +17,15 @@ package com.intellij.psi.codeStyle;
|
||||
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.extensions.ExtensionException;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.extensions.ExtensionException;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.fileTypes.FileTypes;
|
||||
import com.intellij.openapi.fileTypes.LanguageFileType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -603,6 +605,16 @@ public class CodeStyleSettings extends CommonCodeStyleSettings implements Clonea
|
||||
return OTHER_INDENT_OPTIONS;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public IndentOptions getIndentOptionsByDocument(@Nullable Project project, @NotNull Document document) {
|
||||
PsiFile file = project != null ? PsiDocumentManager.getInstance(project).getPsiFile(document) : null;
|
||||
if (file != null) return getIndentOptionsByFile(file);
|
||||
|
||||
VirtualFile vFile = FileDocumentManager.getInstance().getFile(document);
|
||||
FileType fileType = vFile != null ? vFile.getFileType() : null;
|
||||
return getIndentOptions(fileType);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public IndentOptions getIndentOptionsByFile(@Nullable PsiFile file) {
|
||||
return getIndentOptionsByFile(file, null);
|
||||
|
||||
@@ -34,8 +34,6 @@ import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler;
|
||||
import com.intellij.openapi.editor.ex.EditorEx;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
@@ -84,8 +82,7 @@ public class TabAction extends EditorAction {
|
||||
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(project);
|
||||
|
||||
final Document doc = editor.getDocument();
|
||||
PsiFile file = project != null ? PsiDocumentManager.getInstance(project).getPsiFile(doc) : null;
|
||||
CommonCodeStyleSettings.IndentOptions indentOptions = settings.getIndentOptionsByFile(file);
|
||||
CommonCodeStyleSettings.IndentOptions indentOptions = settings.getIndentOptionsByDocument(project, doc);
|
||||
|
||||
int tabSize = indentOptions.INDENT_SIZE;
|
||||
int spacesToAddCount = tabSize - columnNumber % Math.max(1,tabSize);
|
||||
|
||||
Reference in New Issue
Block a user