mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
introduced GotoActionAliasMatcher
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright 2000-2018 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.intellij.ide.util.gotoByName;
|
||||
|
||||
import com.intellij.ide.actions.GotoActionAction;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Allows {@link GotoActionAction} to find actions by synonyms.
|
||||
*/
|
||||
public interface GotoActionAliasMatcher {
|
||||
ExtensionPointName<GotoActionAliasMatcher> EP_NAME = ExtensionPointName.create("com.intellij.gotoActionAliasMatcher");
|
||||
|
||||
/**
|
||||
* Returns true if the name argument is synonym for specified action.
|
||||
*/
|
||||
boolean match(@NotNull AnAction action, @NotNull String name);
|
||||
}
|
||||
@@ -407,7 +407,16 @@ public class GotoActionModel implements ChooseByNameModel, Comparator<Object>, D
|
||||
if (matcher.matches(groupName + " " + text)) {
|
||||
return anAction instanceof ToggleAction ? MatchMode.NAME : MatchMode.GROUP;
|
||||
}
|
||||
return matcher.matches(text + " " + groupName) ? MatchMode.GROUP : MatchMode.NONE;
|
||||
if (matcher.matches(text + " " + groupName)) {
|
||||
return MatchMode.GROUP;
|
||||
}
|
||||
|
||||
for (GotoActionAliasMatcher m : GotoActionAliasMatcher.EP_NAME.getExtensions()) {
|
||||
if (m.match(anAction, pattern)) {
|
||||
return MatchMode.NAME;
|
||||
}
|
||||
}
|
||||
return MatchMode.NONE;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -277,6 +277,8 @@
|
||||
<extensionPoint name="generatedSourcesFilter" interface="com.intellij.openapi.roots.GeneratedSourcesFilter"/>
|
||||
<extensionPoint name="outOfSourcesChecker" interface="com.intellij.openapi.projectRoots.OutOfSourcesChecker"/>
|
||||
|
||||
<extensionPoint name="gotoActionAliasMatcher"
|
||||
interface="com.intellij.ide.util.gotoByName.GotoActionAliasMatcher"/>
|
||||
<extensionPoint name="gotoClassContributor"
|
||||
interface="com.intellij.navigation.ChooseByNameContributor"/>
|
||||
<extensionPoint name="gotoSymbolContributor"
|
||||
|
||||
Reference in New Issue
Block a user