Разработка плагина Eclipse - настройка параметров редактора - PullRequest
0 голосов
/ 06 апреля 2020

Я разрабатываю плагин Eclipse. При щелчке правой кнопкой мыши и выборе «предпочтения» в моем плагине редактора, он показывает два дерева «Внешний вид» и «Редакторы» под «Общие». Я хочу добавить еще несколько узлов из Window -> preference, которые показывают шаблоны кода, помощь по содержимому и многое другое. Как я могу это сделать? Я попытался переопределить collectContextMenuPreferencePages из AbstractDecoratedTextEditor и попытался добавить расширение, связанное с шаблонами кода, однако его не видно на странице настроек.

    @Override
     protected String[] collectContextMenuPreferencePages() {
    return new String[] { "org.eclipse.ui.preferencePages.GeneralTextEditor", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.Annotations", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.QuickDiff", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.Accessibility", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.Spelling", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.LinkedModePreferencePage", //$NON-NLS-1$
            "org.eclipse.ui.preferencePages.ColorsAndFonts", //$NON-NLS-1$
            "org.eclipse.ui.editors.templates",
    };
}

Как добавить узел General, который присутствует в окне -> предпочтение предпочтения редактора? Спасибо.

1 Ответ

1 голос
/ 06 апреля 2020

Это правильный метод для переопределения.

Вот что делает редактор Java:

@Override
protected String[] collectContextMenuPreferencePages() {
    String[] inheritedPages= super.collectContextMenuPreferencePages();
    int length= 10;
    String[] result= new String[inheritedPages.length + length];
    result[0]= "org.eclipse.jdt.ui.preferences.JavaEditorPreferencePage"; 
    result[1]= "org.eclipse.jdt.ui.preferences.JavaTemplatePreferencePage"; 
    result[2]= "org.eclipse.jdt.ui.preferences.CodeAssistPreferencePage"; 
    result[3]= "org.eclipse.jdt.ui.preferences.CodeAssistPreferenceAdvanced"; 
    result[4]= "org.eclipse.jdt.ui.preferences.JavaEditorHoverPreferencePage"; 
    result[5]= "org.eclipse.jdt.ui.preferences.JavaEditorColoringPreferencePage"; 
    result[6]= "org.eclipse.jdt.ui.preferences.FoldingPreferencePage"; 
    result[7]= "org.eclipse.jdt.ui.preferences.MarkOccurrencesPreferencePage";
    result[8]= "org.eclipse.jdt.ui.preferences.SmartTypingPreferencePage";
    result[9]= "org.eclipse.jdt.ui.preferences.SaveParticipantPreferencePage";
    System.arraycopy(inheritedPages, 0, result, length, inheritedPages.length);
    return result;
}

Конечно, все эти идентификаторы должны быть объявлены с использованием расширения org.eclipse.ui.preferencePages указать обычным способом.

Первая страница в массиве - это страница, выбранная при отображении настроек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...