mirror of
https://github.com/Theaninova/DynamicC.git
synced 2026-01-26 11:22:37 +00:00
98 lines
4.5 KiB
Java
98 lines
4.5 KiB
Java
package dynamicc.editor;
|
|
|
|
/*Generated by MPS */
|
|
|
|
import jetbrains.mps.nodeEditor.menus.substitute.SubstituteMenuBase;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import java.util.List;
|
|
import jetbrains.mps.lang.editor.menus.MenuPart;
|
|
import jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuItem;
|
|
import jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuContext;
|
|
import java.util.ArrayList;
|
|
import jetbrains.mps.lang.editor.menus.substitute.ConstraintsFilteringSubstituteMenuPartDecorator;
|
|
import jetbrains.mps.lang.editor.menus.EditorMenuDescriptorBase;
|
|
import jetbrains.mps.smodel.SNodePointer;
|
|
import jetbrains.mps.lang.editor.menus.substitute.ReferenceScopeSubstituteMenuPart;
|
|
import org.jetbrains.mps.openapi.language.SAbstractConcept;
|
|
import jetbrains.mps.lang.editor.menus.ConceptMenusPart;
|
|
import java.util.Collection;
|
|
import jetbrains.mps.smodel.ConceptDescendantsCache;
|
|
import jetbrains.mps.lang.editor.menus.substitute.DefaultSubstituteMenuLookup;
|
|
import jetbrains.mps.smodel.language.LanguageRegistry;
|
|
import org.jetbrains.mps.openapi.language.SConcept;
|
|
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
|
|
import org.jetbrains.mps.openapi.language.SReferenceLink;
|
|
|
|
public class FunctionParameter_SubstituteMenu extends SubstituteMenuBase {
|
|
@NotNull
|
|
@Override
|
|
protected List<MenuPart<SubstituteMenuItem, SubstituteMenuContext>> getParts(final SubstituteMenuContext _context) {
|
|
List<MenuPart<SubstituteMenuItem, SubstituteMenuContext>> result = new ArrayList<MenuPart<SubstituteMenuItem, SubstituteMenuContext>>();
|
|
result.add(new ConstraintsFilteringSubstituteMenuPartDecorator(new SMP_ReferenceScope_w5syfn_a(), CONCEPTS.FunctionParameter$AW));
|
|
result.add(new SMP_Subconcepts_w5syfn_b());
|
|
return result;
|
|
}
|
|
|
|
@NotNull
|
|
@Override
|
|
public List<SubstituteMenuItem> createMenuItems(@NotNull SubstituteMenuContext context) {
|
|
context.getEditorMenuTrace().pushTraceInfo();
|
|
context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("default substitute menu for FunctionParameter. Generated from implicit smart reference attribute.", new SNodePointer("r:0137df68-fadf-4334-b96f-dbc443ca6ded(dynamicc.structure)", "2804056819677594602")));
|
|
try {
|
|
return super.createMenuItems(context);
|
|
} finally {
|
|
context.getEditorMenuTrace().popTraceInfo();
|
|
}
|
|
}
|
|
|
|
|
|
public class SMP_ReferenceScope_w5syfn_a extends ReferenceScopeSubstituteMenuPart {
|
|
|
|
public SMP_ReferenceScope_w5syfn_a() {
|
|
// that cast is needed for prevent the users from https://youtrack.jetbrains.com/issue/MPS-29051
|
|
super((SAbstractConcept) CONCEPTS.FunctionParameter$AW, LINKS.type$YYfM);
|
|
}
|
|
@NotNull
|
|
@Override
|
|
public List<SubstituteMenuItem> createItems(SubstituteMenuContext context) {
|
|
context.getEditorMenuTrace().pushTraceInfo();
|
|
context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("reference scope substitute menu part", null));
|
|
try {
|
|
return super.createItems(context);
|
|
} finally {
|
|
context.getEditorMenuTrace().popTraceInfo();
|
|
}
|
|
}
|
|
|
|
}
|
|
public class SMP_Subconcepts_w5syfn_b extends ConceptMenusPart<SubstituteMenuItem, SubstituteMenuContext> {
|
|
protected Collection getConcepts(final SubstituteMenuContext _context) {
|
|
return ConceptDescendantsCache.getInstance().getDirectDescendants(CONCEPTS.FunctionParameter$AW);
|
|
}
|
|
@NotNull
|
|
@Override
|
|
public List<SubstituteMenuItem> createItems(SubstituteMenuContext context) {
|
|
context.getEditorMenuTrace().pushTraceInfo();
|
|
context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("include menus for all the direct subconcepts of " + "FunctionParameter", null));
|
|
try {
|
|
return super.createItems(context);
|
|
} finally {
|
|
context.getEditorMenuTrace().popTraceInfo();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected Collection<SubstituteMenuItem> createItemsForConcept(SubstituteMenuContext context, SAbstractConcept concept) {
|
|
return context.createItems(new DefaultSubstituteMenuLookup(LanguageRegistry.getInstance(context.getEditorContext().getRepository()), concept));
|
|
}
|
|
}
|
|
|
|
private static final class CONCEPTS {
|
|
/*package*/ static final SConcept FunctionParameter$AW = MetaAdapterFactory.getConcept(0xa6d9727f49824bf8L, 0xabdd083fea5126abL, 0x26ea02d22ae503eaL, "dynamicc.structure.FunctionParameter");
|
|
}
|
|
|
|
private static final class LINKS {
|
|
/*package*/ static final SReferenceLink type$YYfM = MetaAdapterFactory.getReferenceLink(0xa6d9727f49824bf8L, 0xabdd083fea5126abL, 0x3a6fd2de0c335c2eL, 0x3a6fd2de0c345a7cL, "type");
|
|
}
|
|
}
|