package melnorme.lang.ide.ui; import java.util.List; import org.eclipse.jface.text.rules.IPartitionTokenScanner; import org.eclipse.ui.texteditor.ITextEditor; import com.github.rustdt.ide.core_text.RustDocumentSetupParticipant; import com.github.rustdt.ide.core_text.RustPartitionScanner; import com.github.rustdt.ide.ui.RustImages; import com.github.rustdt.ide.ui.editor.RustFmtEditorOperation; import com.github.rustdt.ide.ui.text.RustAutoEditStrategy; import melnorme.lang.ide.core.LangCore_Actual; import melnorme.lang.ide.core.text.format.ILastKeyInfoProvider; import melnorme.lang.ide.core_text.LangDocumentPartitionerSetup; import melnorme.lang.ide.ui.editor.hover.ILangEditorTextHover; import melnorme.lang.ide.ui.editor.text.LangAutoEditsPreferencesAccess; import melnorme.lang.ide.ui.views.StructureElementLabelProvider; import melnorme.lang.tooling.structure.StructureElement; import melnorme.lang.tooling.structure.StructureElementKind; /** * Actual/concrete IDE constants and other bindings, for Lang UI code. */ public final class LangUIPlugin_Actual { public static final String PLUGIN_ID = "com.github.rustdt.ide.ui"; public static final String ROOT_PREF_PAGE_ID = PLUGIN_ID + ".PreferencePages.Root"; public static final String RULER_CONTEXT = "#RustRulerContext"; public static final String EDITOR_CONTEXT = "#RustEditorContext"; // ID to start the debug plugin automatically, if present protected static final String DEBUG_PLUGIN_ID = "com.github.rustdt.ide.debug"; protected static final Class<?> PLUGIN_IMAGES_CLASS = RustImages.class; /* ----------------- text ----------------- */ @SuppressWarnings("unused") protected static void initTextHovers_afterProblemHover( List<Class<? extends ILangEditorTextHover<?>>> textHoverSpecifications) { } public static IPartitionTokenScanner createPartitionScanner() { return new RustPartitionScanner(); } public static RustAutoEditStrategy createAutoEditStrategy(String contentType, ILastKeyInfoProvider lastKeyInfoProvider) { return new RustAutoEditStrategy(contentType, new LangAutoEditsPreferencesAccess(), lastKeyInfoProvider); } public static LangDocumentPartitionerSetup createDocumentSetupHelper() { return new RustDocumentSetupParticipant(); } public static StructureElementLabelProvider getStructureElementLabelProvider() { return new StructureElementLabelProvider() { @Override protected String getTypeDescriptionPrefix(StructureElement structureElement) { if(structureElement.getKind() == StructureElementKind.FUNCTION) { return " "; } return super.getTypeDescriptionPrefix(structureElement); } }; } /* ----------------- UI messages: ----------------- */ public static final String BUILD_ConsoleName = LangCore_Actual.NAME_OF_LANGUAGE + " Build"; public static final String ENGINE_TOOLS_ConsoleName = LangCore_Actual.NAME_OF_LANGUAGE + " Tools Log"; /* ----------------- ----------------- */ public static RustFmtEditorOperation getFormatOperation(ITextEditor editor) { return new RustFmtEditorOperation(editor); } }