mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Move CommaTailType and EqTailType to analysis.impl. Also provide PsiEditorUtil::getPsiFile(Editor) method
GitOrigin-RevId: 85e07b9866c239b442c6a73168f1bbfda88943c1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ac1f525e27
commit
a1657e1a0e
+1
-2
@@ -2,7 +2,6 @@
|
||||
|
||||
package com.intellij.codeInsight.completion.simple;
|
||||
|
||||
import com.intellij.codeInsight.lookup.CommaTailType;
|
||||
import com.intellij.codeInsight.TailType;
|
||||
import com.intellij.codeInsight.editorActions.TabOutScopesTracker;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
@@ -20,7 +19,7 @@ public abstract class ParenthesesTailType extends TailType {
|
||||
|
||||
@Override
|
||||
public int processTail(final Editor editor, int tailOffset) {
|
||||
CommonCodeStyleSettings styleSettings = CommaTailType.getLocalCodeStyleSettings(editor, tailOffset);
|
||||
CommonCodeStyleSettings styleSettings = CommonCodeStyleSettings.getLocalCodeStyleSettings(editor, tailOffset);
|
||||
if (isSpaceBeforeParentheses(styleSettings, editor, tailOffset)) {
|
||||
tailOffset = insertChar(editor, tailOffset, ' ');
|
||||
}
|
||||
|
||||
@@ -54,7 +54,8 @@ public abstract class RParenthTailType extends TailType {
|
||||
|
||||
@Override
|
||||
public int processTail(final Editor editor, int tailOffset) {
|
||||
return addRParenth(editor, tailOffset, isSpaceWithinParentheses(CommaTailType.getLocalCodeStyleSettings(editor, tailOffset), editor, tailOffset));
|
||||
return addRParenth(editor, tailOffset,
|
||||
isSpaceWithinParentheses(CommonCodeStyleSettings.getLocalCodeStyleSettings(editor, tailOffset), editor, tailOffset));
|
||||
}
|
||||
|
||||
public static int addRParenth(Editor editor, int offset, boolean spaceWithinParens) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -101,4 +102,9 @@ public abstract class CodeStyleFacade {
|
||||
@Deprecated
|
||||
public abstract String getLineSeparator();
|
||||
|
||||
public abstract boolean useSpaceBeforeComma(PsiFile psiFile, Language language);
|
||||
|
||||
public abstract boolean useSpaceAfterComma(PsiFile psiFile, Language language);
|
||||
|
||||
public abstract boolean useSpaceAroundAssignmentOperators(PsiFile psiFile, Language language);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
// Copyright 2000-2019 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.codeInsight.lookup;
|
||||
|
||||
import com.intellij.codeInsight.TailType;
|
||||
import com.intellij.codeStyle.CodeStyleFacade;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiEditorUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
|
||||
public class CommaTailType extends TailType {
|
||||
public static final TailType INSTANCE = new CommaTailType();
|
||||
|
||||
@Override
|
||||
public int processTail(final Editor editor, int tailOffset) {
|
||||
CodeStyleFacade codeStyleFacade = CodeStyleFacade.getInstance(editor.getProject());
|
||||
PsiFile psiFile = PsiEditorUtil.getPsiFile(editor);
|
||||
Language language = PsiUtilCore.getLanguageAtOffset(PsiEditorUtil.getPsiFile(editor), tailOffset);
|
||||
if (codeStyleFacade.useSpaceBeforeComma(psiFile, language)) tailOffset = insertChar(editor, tailOffset, ' ');
|
||||
tailOffset = insertChar(editor, tailOffset, ',');
|
||||
if (codeStyleFacade.useSpaceAfterComma(psiFile, language)) tailOffset = insertChar(editor, tailOffset, ' ');
|
||||
return tailOffset;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "COMMA";
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -2,14 +2,22 @@
|
||||
package com.intellij.codeInsight.lookup;
|
||||
|
||||
import com.intellij.codeInsight.TailType;
|
||||
import com.intellij.codeStyle.CodeStyleFacade;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiEditorUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
|
||||
public class EqTailType extends TailType {
|
||||
public static final TailType INSTANCE = new EqTailType();
|
||||
|
||||
protected boolean isSpaceAroundAssignmentOperators(Editor editor, int tailOffset) {
|
||||
return CommaTailType.getLocalCodeStyleSettings(editor, tailOffset).SPACE_AROUND_ASSIGNMENT_OPERATORS;
|
||||
CodeStyleFacade codeStyleFacade = CodeStyleFacade.getInstance(editor.getProject());
|
||||
PsiFile psiFile = PsiEditorUtil.getPsiFile(editor);
|
||||
Language language = PsiUtilCore.getLanguageAtOffset(psiFile, tailOffset);
|
||||
return codeStyleFacade.useSpaceAroundAssignmentOperators(psiFile, language);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -193,9 +193,9 @@ public class LookupItem<T> extends MutableLookupElement<T> implements Comparable
|
||||
public static TailType getDefaultTailType(final char completionChar) {
|
||||
switch(completionChar){
|
||||
case '.': return new CharTailType('.', false);
|
||||
//case ',': return CommaTailType.INSTANCE; TODO[traff]: uncomment, refactor
|
||||
case ',': return CommaTailType.INSTANCE;
|
||||
case ';': return TailType.SEMICOLON;
|
||||
//case '=': return EqTailType.INSTANCE; TODO[traff]: uncomment, refactor
|
||||
case '=': return EqTailType.INSTANCE;
|
||||
case ' ': return TailType.SPACE;
|
||||
case ':': return TailType.CASE_COLON; //?
|
||||
}
|
||||
|
||||
@@ -17,7 +17,10 @@ package com.intellij.psi.util;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -30,4 +33,13 @@ public interface PsiEditorUtil {
|
||||
return ServiceManager.getService(PsiEditorUtil.class);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static PsiFile getPsiFile(Editor editor) {
|
||||
Project project = editor.getProject();
|
||||
assert project != null;
|
||||
PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
|
||||
assert psiFile != null;
|
||||
return psiFile;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
// Copyright 2000-2019 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.codeInsight.lookup;
|
||||
|
||||
import com.intellij.application.options.CodeStyle;
|
||||
import com.intellij.codeInsight.TailType;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CommaTailType extends TailType {
|
||||
public static final TailType INSTANCE = new CommaTailType();
|
||||
|
||||
@Override
|
||||
public int processTail(final Editor editor, int tailOffset) {
|
||||
CommonCodeStyleSettings styleSettings = getLocalCodeStyleSettings(editor, tailOffset);
|
||||
if (styleSettings.SPACE_BEFORE_COMMA) tailOffset = insertChar(editor, tailOffset, ' ');
|
||||
tailOffset = insertChar(editor, tailOffset, ',');
|
||||
if (styleSettings.SPACE_AFTER_COMMA) tailOffset = insertChar(editor, tailOffset, ' ');
|
||||
return tailOffset;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "COMMA";
|
||||
}
|
||||
|
||||
public static CommonCodeStyleSettings getLocalCodeStyleSettings(Editor editor, int tailOffset) {
|
||||
final PsiFile psiFile = getFile(editor);
|
||||
Language language = PsiUtilCore.getLanguageAtOffset(psiFile, tailOffset);
|
||||
return CodeStyle.getLanguageSettings(psiFile, language);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static PsiFile getFile(Editor editor) {
|
||||
Project project = editor.getProject();
|
||||
assert project != null;
|
||||
PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
|
||||
assert psiFile != null;
|
||||
return psiFile;
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
// Copyright 2000-2019 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.psi.codeStyle;
|
||||
|
||||
import com.intellij.application.options.CodeStyle;
|
||||
import com.intellij.configurationStore.Property;
|
||||
import com.intellij.configurationStore.XmlSerializer;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
@@ -13,6 +15,8 @@ import com.intellij.psi.codeStyle.arrangement.ArrangementSettings;
|
||||
import com.intellij.psi.codeStyle.arrangement.ArrangementUtil;
|
||||
import com.intellij.psi.codeStyle.arrangement.Rearranger;
|
||||
import com.intellij.psi.codeStyle.arrangement.std.ArrangementStandardSettingsAware;
|
||||
import com.intellij.psi.util.PsiEditorUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.util.ReflectionUtil;
|
||||
import com.intellij.util.xmlb.SerializationFilter;
|
||||
import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters;
|
||||
@@ -1155,4 +1159,10 @@ public class CommonCodeStyleSettings {
|
||||
void setSoftMargins(List<Integer> values) {
|
||||
mySoftMargins.setValues(values);
|
||||
}
|
||||
|
||||
public static CommonCodeStyleSettings getLocalCodeStyleSettings(Editor editor, int tailOffset) {
|
||||
PsiFile psiFile = PsiEditorUtil.getPsiFile(editor);
|
||||
Language language = PsiUtilCore.getLanguageAtOffset(psiFile, tailOffset);
|
||||
return CodeStyle.getLanguageSettings(psiFile, language);
|
||||
}
|
||||
}
|
||||
|
||||
+15
@@ -105,4 +105,19 @@ public class CodeStyleFacadeImpl extends CodeStyleFacade {
|
||||
public boolean useTabCharacter(final FileType fileType) {
|
||||
return CodeStyle.getProjectOrDefaultSettings(myProject).useTabCharacter(fileType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useSpaceBeforeComma(PsiFile psiFile, Language language) {
|
||||
return CodeStyle.getLanguageSettings(psiFile, language).SPACE_BEFORE_COMMA;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useSpaceAfterComma(PsiFile psiFile, Language language) {
|
||||
return CodeStyle.getLanguageSettings(psiFile, language).SPACE_AFTER_COMMA;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useSpaceAroundAssignmentOperators(PsiFile psiFile, Language language) {
|
||||
return CodeStyle.getLanguageSettings(psiFile, language).SPACE_AROUND_ASSIGNMENT_OPERATORS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class FieldInitializerTailTypes extends TailType {
|
||||
|
||||
@Override
|
||||
public int processTail(Editor editor, int tailOffset) {
|
||||
CommonCodeStyleSettings styleSettings = CommaTailType.getLocalCodeStyleSettings(editor, tailOffset);
|
||||
CommonCodeStyleSettings styleSettings = CommonCodeStyleSettings.getLocalCodeStyleSettings(editor, tailOffset);
|
||||
Document document = editor.getDocument();
|
||||
CharSequence chars = document.getCharsSequence();
|
||||
int textLength = chars.length();
|
||||
|
||||
Reference in New Issue
Block a user