mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Make CustomTemplateCallback immutable
This commit is contained in:
+7
-9
@@ -41,7 +41,7 @@ public class CustomTemplateCallback {
|
||||
private final TemplateManager myTemplateManager;
|
||||
private final Editor myEditor;
|
||||
private final PsiFile myFile;
|
||||
private int myOffset;
|
||||
private final int myOffset;
|
||||
private final Project myProject;
|
||||
|
||||
private final boolean myInInjectedFragment;
|
||||
@@ -52,14 +52,12 @@ public class CustomTemplateCallback {
|
||||
myProject = file.getProject();
|
||||
myTemplateManager = TemplateManager.getInstance(myProject);
|
||||
|
||||
int offset = getOffset(wrapping, editor);
|
||||
PsiElement element = InjectedLanguageUtil.findInjectedElementNoCommit(file, offset);
|
||||
myOffset = getOffset(wrapping, editor);
|
||||
PsiElement element = InjectedLanguageUtil.findInjectedElementNoCommit(file, myOffset);
|
||||
myFile = element != null ? element.getContainingFile() : file;
|
||||
|
||||
myInInjectedFragment = InjectedLanguageManager.getInstance(myProject).isInjectedFragment(myFile);
|
||||
myEditor = myInInjectedFragment ? InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(editor, file, offset) : editor;
|
||||
|
||||
fixInitialState(wrapping);
|
||||
myEditor = myInInjectedFragment ? InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(editor, file, myOffset) : editor;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -67,8 +65,8 @@ public class CustomTemplateCallback {
|
||||
return getContext(myFile, myOffset);
|
||||
}
|
||||
|
||||
public void fixInitialState(boolean wrapping) {
|
||||
myOffset = getOffset(wrapping, myEditor);
|
||||
public int getOffset() {
|
||||
return myOffset;
|
||||
}
|
||||
|
||||
private static int getOffset(boolean wrapping, Editor editor) {
|
||||
@@ -88,7 +86,7 @@ public class CustomTemplateCallback {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<TemplateImpl> findApplicableTemplates(String key) {
|
||||
public List<TemplateImpl> findApplicableTemplates(@NotNull String key) {
|
||||
List<TemplateImpl> templates = getMatchingTemplates(key);
|
||||
templates = filterApplicableCandidates(templates);
|
||||
return templates;
|
||||
|
||||
+2
-2
@@ -281,7 +281,7 @@ public class TemplateManagerImpl extends TemplateManager implements ProjectCompo
|
||||
|
||||
for (final CustomLiveTemplate customLiveTemplate : CustomLiveTemplate.EP_NAME.getExtensions()) {
|
||||
if (shortcutChar == customLiveTemplate.getShortcut()) {
|
||||
if (editor.getCaretModel().getCaretCount() > 1 && supportsMultiCaretMode(customLiveTemplate)) {
|
||||
if (editor.getCaretModel().getCaretCount() > 1 && !supportsMultiCaretMode(customLiveTemplate)) {
|
||||
continue;
|
||||
}
|
||||
if (isApplicable(customLiveTemplate, editor, file)) {
|
||||
@@ -308,7 +308,7 @@ public class TemplateManagerImpl extends TemplateManager implements ProjectCompo
|
||||
}
|
||||
|
||||
private static boolean supportsMultiCaretMode(CustomLiveTemplate customLiveTemplate) {
|
||||
return customLiveTemplate instanceof CustomLiveTemplateBase && !((CustomLiveTemplateBase)customLiveTemplate).supportsMultiCaret();
|
||||
return !(customLiveTemplate instanceof CustomLiveTemplateBase) || ((CustomLiveTemplateBase)customLiveTemplate).supportsMultiCaret();
|
||||
}
|
||||
|
||||
public static boolean isApplicable(CustomLiveTemplate customLiveTemplate, Editor editor, PsiFile file) {
|
||||
|
||||
Reference in New Issue
Block a user