mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-21 21:52:10 +02:00
Bug 559674: Use OptionMetadata based implementation for preference access
Change-Id: I4c253ceffbf3d20c32a06534809da5b0038ecab1 Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
This commit is contained in:
parent
d13343cda9
commit
2abe8b5f31
20 changed files with 370 additions and 166 deletions
|
@ -151,7 +151,6 @@ org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
|
|||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_with_spaces=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
|
@ -160,27 +159,20 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
|||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
|
@ -190,9 +182,7 @@ org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
|
|||
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
|
@ -201,7 +191,6 @@ org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
|||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
|
@ -220,17 +209,15 @@ org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
|
|||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
|
||||
org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
|
@ -277,15 +264,11 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
|||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
|
@ -312,14 +295,10 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declar
|
|||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
|
@ -344,20 +323,13 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
|||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
|
@ -401,13 +373,10 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_decla
|
|||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
|
@ -444,12 +413,9 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
|
|||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
|
@ -461,33 +427,17 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_decla
|
|||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
|
||||
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
|
||||
|
@ -502,20 +452,12 @@ org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
|
|||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=tab
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||
org.eclipse.jdt.core.formatter.text_block_indentation=0
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=true
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
|
||||
org.eclipse.jdt.core.incompleteClasspath=error
|
||||
|
|
|
@ -61,7 +61,7 @@ cleanup_settings_version=2
|
|||
eclipse.preferences.version=1
|
||||
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
|
||||
formatter_profile=_CDT
|
||||
formatter_settings_version=18
|
||||
formatter_settings_version=14
|
||||
internal.default.compliance=user
|
||||
org.eclipse.jdt.ui.exception.name=e
|
||||
org.eclipse.jdt.ui.gettersetter.use.is=true
|
||||
|
|
|
@ -11,3 +11,5 @@ Require-Bundle: org.eclipse.core.runtime,
|
|||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Automatic-Module-Name: org.eclipse.cdt.cmake.is.core.ui
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: org.eclipse.cdt.core.options,
|
||||
org.eclipse.e4.core.contexts
|
||||
|
|
|
@ -13,11 +13,12 @@ package org.eclipse.cdt.cmake.is.core.ui.internal;
|
|||
import java.util.regex.Pattern;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.PreferenceConstants;
|
||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferences;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesAccess;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesMetadata;
|
||||
import org.eclipse.cdt.core.options.OptionMetadata;
|
||||
import org.eclipse.e4.core.contexts.EclipseContextFactory;
|
||||
import org.eclipse.jface.layout.GridDataFactory;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferencePage;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.FocusAdapter;
|
||||
|
@ -33,6 +34,7 @@ import org.eclipse.swt.widgets.Label;
|
|||
import org.eclipse.swt.widgets.Text;
|
||||
import org.eclipse.ui.IWorkbench;
|
||||
import org.eclipse.ui.IWorkbenchPreferencePage;
|
||||
import org.osgi.framework.FrameworkUtil;
|
||||
|
||||
/**
|
||||
* Preference page for indexer support.
|
||||
|
@ -42,28 +44,29 @@ public class IndexerSupportPreferencePage extends PreferencePage implements IWor
|
|||
private Text pattern;
|
||||
private Button btnVersionsEnabled;
|
||||
private Button btnWithConsole;
|
||||
private final IParserPreferencesAccess prefsAccess;
|
||||
|
||||
public IndexerSupportPreferencePage() {
|
||||
prefsAccess = EclipseContextFactory.getServiceContext(FrameworkUtil.getBundle(getClass()).getBundleContext())
|
||||
.get(IParserPreferencesAccess.class);
|
||||
setDescription("Configure how macros and include paths get extracted from the compile_commands.json file");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the field editors. Field editors are abstractions of the common GUI
|
||||
* blocks needed to manipulate various types of preferences. Each field editor
|
||||
* knows how to save and restore itself.
|
||||
* Creates the field editors.
|
||||
*/
|
||||
@Override
|
||||
protected Control createContents(Composite parent) {
|
||||
IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode("org.eclipse.cdt.cmake.is.core"); //$NON-NLS-1$
|
||||
final IParserPreferencesMetadata prefsMeta = prefsAccess.metadata();
|
||||
final IParserPreferences prefs = prefsAccess.getWorkspacePreferences();
|
||||
|
||||
final Composite composite = new Composite(parent, SWT.NONE);
|
||||
composite.setLayout(new GridLayout(1, false));
|
||||
GridDataFactory.swtDefaults().applyTo(composite);
|
||||
|
||||
final Group gr = createGroup(composite, SWT.FILL, 1, "For compilers with version in name", 2);
|
||||
btnVersionsEnabled = createCheckbox(gr, SWT.BEGINNING, 2, "&Also try with version suffix");
|
||||
btnVersionsEnabled.setToolTipText("Can recognize gcc-12.9.2, clang++-7.5.4, ...");
|
||||
// TODO use OptionMetadata based implementation
|
||||
btnVersionsEnabled.setSelection(preferences.getBoolean(PreferenceConstants.P_PATTERN_ENABLED, false));
|
||||
btnVersionsEnabled = createCheckbox(gr, SWT.BEGINNING, 2, prefsMeta.tryVersionSuffix());
|
||||
btnVersionsEnabled.setSelection(prefs.getTryVersionSuffix());
|
||||
{
|
||||
Label label = new Label(gr, SWT.NONE);
|
||||
label.setText("&Suffix pattern:");
|
||||
|
@ -72,10 +75,9 @@ public class IndexerSupportPreferencePage extends PreferencePage implements IWor
|
|||
|
||||
pattern = new Text(gr, SWT.SINGLE | SWT.BORDER);
|
||||
GridDataFactory.defaultsFor(pattern).applyTo(pattern);
|
||||
pattern.setToolTipText("Specify a Java regular expression pattern here");
|
||||
pattern.setToolTipText(prefsMeta.versionSuffixPattern().description());
|
||||
pattern.setEnabled(btnVersionsEnabled.getSelection());
|
||||
// TODO use OptionMetadata based implementation
|
||||
pattern.setText(preferences.get(PreferenceConstants.P_PATTERN, "-?\\d+(\\.\\d+)*"));
|
||||
pattern.setText(prefs.getVersionSuffixPattern());
|
||||
pattern.addFocusListener(new FocusAdapter() {
|
||||
@Override
|
||||
public void focusLost(FocusEvent e) {
|
||||
|
@ -105,10 +107,8 @@ public class IndexerSupportPreferencePage extends PreferencePage implements IWor
|
|||
}
|
||||
});
|
||||
|
||||
btnWithConsole = createCheckbox(composite, SWT.BEGINNING, 1,
|
||||
"&Show output of compiler built-in detection in a console in the Console View");
|
||||
// TODO use OptionMetadata based implementation
|
||||
btnWithConsole.setSelection(preferences.getBoolean(PreferenceConstants.P_WITH_CONSOLE, false));
|
||||
btnWithConsole = createCheckbox(composite, SWT.BEGINNING, 1, prefsMeta.allocateConsole());
|
||||
btnWithConsole.setSelection(prefs.getAllocateConsole());
|
||||
|
||||
return composite;
|
||||
}
|
||||
|
@ -124,23 +124,20 @@ public class IndexerSupportPreferencePage extends PreferencePage implements IWor
|
|||
|
||||
@Override
|
||||
protected void performDefaults() {
|
||||
// TODO IEclipsePreferences preferenceStore = InstanceScope.INSTANCE.getNode("org.eclipse.cdt.cmake.is.core"); //$NON-NLS-1$
|
||||
|
||||
IPreferenceStore preferenceStore = getPreferenceStore();
|
||||
btnVersionsEnabled.setSelection(preferenceStore.getDefaultBoolean(PreferenceConstants.P_PATTERN_ENABLED));
|
||||
pattern.setText(preferenceStore.getDefaultString(PreferenceConstants.P_PATTERN));
|
||||
btnWithConsole.setSelection(preferenceStore.getDefaultBoolean(PreferenceConstants.P_WITH_CONSOLE));
|
||||
final IParserPreferencesMetadata prefsMeta = prefsAccess.metadata();
|
||||
btnVersionsEnabled.setSelection(prefsMeta.tryVersionSuffix().defaultValue());
|
||||
pattern.setText(prefsMeta.versionSuffixPattern().defaultValue());
|
||||
btnWithConsole.setSelection(prefsMeta.allocateConsole().defaultValue());
|
||||
setErrorMessage(null);
|
||||
super.performDefaults();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean performOk() {
|
||||
// TODO IPreferenceStore preferenceStore = getPreferenceStore();
|
||||
IEclipsePreferences preferenceStore = InstanceScope.INSTANCE.getNode("org.eclipse.cdt.cmake.is.core"); //$NON-NLS-1$
|
||||
preferenceStore.putBoolean(PreferenceConstants.P_PATTERN_ENABLED, btnVersionsEnabled.getSelection());
|
||||
preferenceStore.put(PreferenceConstants.P_PATTERN, pattern.getText());
|
||||
preferenceStore.putBoolean(PreferenceConstants.P_WITH_CONSOLE, btnWithConsole.getSelection());
|
||||
final IParserPreferences prefs = prefsAccess.getWorkspacePreferences();
|
||||
prefs.setTryVersionSuffix(btnVersionsEnabled.getSelection());
|
||||
prefs.setVersionSuffixPattern(pattern.getText());
|
||||
prefs.setAllocateConsole(btnWithConsole.getSelection());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -156,9 +153,11 @@ public class IndexerSupportPreferencePage extends PreferencePage implements IWor
|
|||
* that the control will take up.
|
||||
* @param text text to display on the check-box
|
||||
*/
|
||||
private static Button createCheckbox(Composite parent, int horizontalAlignment, int horizontalSpan, String text) {
|
||||
private static Button createCheckbox(Composite parent, int horizontalAlignment, int horizontalSpan,
|
||||
OptionMetadata<Boolean> option) {
|
||||
Button b = new Button(parent, SWT.CHECK);
|
||||
b.setText(text);
|
||||
b.setText(option.name());
|
||||
b.setToolTipText(option.description());
|
||||
GridDataFactory.defaultsFor(b).align(horizontalAlignment, SWT.CENTER).span(horizontalSpan, 1).grab(true, false)
|
||||
.applyTo(b);
|
||||
return b;
|
||||
|
|
|
@ -25,6 +25,11 @@
|
|||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ds.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
classpath=true
|
||||
dsVersion=V1_3
|
||||
eclipse.preferences.version=1
|
||||
enabled=true
|
||||
generateBundleActivationPolicyLazy=true
|
||||
path=OSGI-INF
|
||||
validationErrorLevel=error
|
||||
validationErrorLevel.missingImplicitUnbindMethod=error
|
|
@ -22,3 +22,6 @@ Require-Bundle: org.eclipse.ui.workbench;bundle-version="3.8.0",
|
|||
com.google.gson,
|
||||
org.apache.commons.io;bundle-version="2.6.0"
|
||||
Automatic-Module-Name: org.eclipse.cdt.cmake.is.core
|
||||
Import-Package: org.eclipse.e4.core.contexts;version="1.7.0",
|
||||
org.osgi.service.component.annotations;version="1.2.0"
|
||||
Service-Component: OSGI-INF/org.eclipse.cdt.cmake.is.core.internal.ParserPreferencesAccess.xml
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.cdt.cmake.is.core.internal.ParserPreferencesAccess">
|
||||
<service>
|
||||
<provide interface="org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesAccess"/>
|
||||
</service>
|
||||
<implementation class="org.eclipse.cdt.cmake.is.core.internal.ParserPreferencesAccess"/>
|
||||
</scr:component>
|
|
@ -6,4 +6,5 @@ bin.includes = META-INF/,\
|
|||
plugin.properties,\
|
||||
about.html,\
|
||||
.options,\
|
||||
schema/
|
||||
schema/,\
|
||||
OSGI-INF/org.eclipse.cdt.cmake.is.core.internal.ParserPreferencesAccess.xml
|
||||
|
|
|
@ -10,10 +10,4 @@
|
|||
id="org.eclipse.cdt.cmake.is.core.detectorConsole">
|
||||
</CBuildConsole>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.core.runtime.preferences">
|
||||
<initializer
|
||||
class="org.eclipse.cdt.cmake.is.core.internal.PreferenceInitializer">
|
||||
</initializer>
|
||||
</extension>
|
||||
</plugin>
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.cmake.is.core.internal;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferences;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesMetadata;
|
||||
import org.eclipse.cdt.core.options.OptionStorage;
|
||||
|
||||
/**
|
||||
* @author weber
|
||||
*/
|
||||
final class ParserPreferences implements IParserPreferences {
|
||||
|
||||
private final OptionStorage optionStorage;
|
||||
private final IParserPreferencesMetadata metadata;
|
||||
|
||||
public ParserPreferences(OptionStorage optionStorage, IParserPreferencesMetadata metadata) {
|
||||
this.optionStorage = Objects.requireNonNull(optionStorage, "optionStorage"); //$NON-NLS-1$
|
||||
this.metadata = Objects.requireNonNull(metadata, "metadata"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getTryVersionSuffix() {
|
||||
return optionStorage.load(metadata.tryVersionSuffix());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTryVersionSuffix(boolean tryVersionSuffix) {
|
||||
optionStorage.save(tryVersionSuffix, metadata.tryVersionSuffix());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVersionSuffixPattern() {
|
||||
return optionStorage.load(metadata.versionSuffixPattern());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVersionSuffixPattern(String versionSuffixPattern) {
|
||||
Objects.requireNonNull(versionSuffixPattern);
|
||||
optionStorage.save(versionSuffixPattern, metadata.versionSuffixPattern());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getAllocateConsole() {
|
||||
return optionStorage.load(metadata.allocateConsole());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAllocateConsole(boolean allocateConsole) {
|
||||
optionStorage.save(allocateConsole, metadata.allocateConsole());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.cmake.is.core.internal;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferences;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesAccess;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesMetadata;
|
||||
import org.eclipse.cdt.core.options.OptionStorage;
|
||||
import org.eclipse.cdt.core.options.OsgiPreferenceStorage;
|
||||
import org.eclipse.core.runtime.preferences.IScopeContext;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.osgi.service.component.annotations.Component;
|
||||
import org.osgi.service.prefs.Preferences;
|
||||
|
||||
/**
|
||||
* @author weber
|
||||
*/
|
||||
@Component
|
||||
public class ParserPreferencesAccess implements IParserPreferencesAccess {
|
||||
|
||||
private final ParserPreferencesMetadata metadata;
|
||||
|
||||
public ParserPreferencesAccess() {
|
||||
this.metadata = new ParserPreferencesMetadata();
|
||||
}
|
||||
|
||||
private OptionStorage workspaceStorage() {
|
||||
return new OsgiPreferenceStorage(preferences(InstanceScope.INSTANCE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IParserPreferences getWorkspacePreferences() {
|
||||
return new ParserPreferences(workspaceStorage(), metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IParserPreferencesMetadata metadata() {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
private Preferences preferences(IScopeContext scope) {
|
||||
return scope.getNode(nodeQualifier()).node(nodePath());
|
||||
}
|
||||
|
||||
private String nodeQualifier() {
|
||||
return Plugin.PLUGIN_ID;
|
||||
}
|
||||
|
||||
private String nodePath() {
|
||||
return "parser"; //$NON-NLS-1$
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.cmake.is.core.internal;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesMetadata;
|
||||
import org.eclipse.cdt.core.options.BaseOption;
|
||||
import org.eclipse.cdt.core.options.OptionMetadata;
|
||||
|
||||
/**
|
||||
* @author weber
|
||||
*/
|
||||
final class ParserPreferencesMetadata implements IParserPreferencesMetadata {
|
||||
|
||||
private final OptionMetadata<Boolean> tryVersionSuffixOption;
|
||||
private final OptionMetadata<String> versionSuffixPatternOption;
|
||||
private final OptionMetadata<Boolean> allocateConsoleOption;
|
||||
|
||||
public ParserPreferencesMetadata() {
|
||||
this.tryVersionSuffixOption = new BaseOption<>(Boolean.class, "versionSuffixPatternEnabled", false, //$NON-NLS-1$
|
||||
"&Also try with version suffix", "Can recognize gcc-12.9.2, clang++-7.5.4, ...");
|
||||
this.versionSuffixPatternOption = new BaseOption<>(String.class, "versionSuffixPattern", "-?\\d+(\\.\\d+)*", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
"&Suffix pattern:", "Specify a Java regular expression pattern here");
|
||||
this.allocateConsoleOption = new BaseOption<>(Boolean.class, "allocateConsole", false, //$NON-NLS-1$
|
||||
"&Show output of compiler built-in detection in a console in the Console View");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OptionMetadata<Boolean> tryVersionSuffix() {
|
||||
return tryVersionSuffixOption;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OptionMetadata<String> versionSuffixPattern() {
|
||||
return versionSuffixPatternOption;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OptionMetadata<Boolean> allocateConsole() {
|
||||
return allocateConsoleOption;
|
||||
}
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.cmake.is.core.internal;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.PreferenceConstants;
|
||||
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
|
||||
/**
|
||||
* Class used to initialize default preference values.
|
||||
*/
|
||||
public class PreferenceInitializer extends AbstractPreferenceInitializer {
|
||||
@Override
|
||||
public void initializeDefaultPreferences() {
|
||||
IPreferenceStore store = Plugin.getDefault().getPreferenceStore();
|
||||
store.setDefault(PreferenceConstants.P_WITH_CONSOLE, false);
|
||||
store.setDefault(PreferenceConstants.P_PATTERN_ENABLED, false);
|
||||
store.setDefault(PreferenceConstants.P_PATTERN, "-?\\d+(\\.\\d+)*"); //$NON-NLS-1$
|
||||
}
|
||||
}
|
|
@ -24,7 +24,8 @@ import org.eclipse.cdt.cmake.is.core.builtins.IBuiltinsDetectionBehavior;
|
|||
import org.eclipse.cdt.cmake.is.core.builtins.IBuiltinsOutputProcessor;
|
||||
import org.eclipse.cdt.cmake.is.core.builtins.OutputSniffer;
|
||||
import org.eclipse.cdt.cmake.is.core.internal.Plugin;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.PreferenceConstants;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferences;
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.IParserPreferencesAccess;
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.ConsoleOutputStream;
|
||||
import org.eclipse.cdt.core.ICommandLauncher;
|
||||
|
@ -40,7 +41,8 @@ import org.eclipse.core.runtime.IStatus;
|
|||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.e4.core.contexts.EclipseContextFactory;
|
||||
import org.osgi.framework.FrameworkUtil;
|
||||
|
||||
/**
|
||||
* Detects preprocessor macros and include paths that are built-in to a
|
||||
|
@ -239,8 +241,10 @@ public class CompilerBuiltinsDetector {
|
|||
*/
|
||||
@SuppressWarnings("nls")
|
||||
private IConsole startOutputConsole(IConsole console) throws CoreException {
|
||||
IPreferenceStore prefStore = Plugin.getDefault().getPreferenceStore();
|
||||
if (!prefStore.getBoolean(PreferenceConstants.P_WITH_CONSOLE)) {
|
||||
IParserPreferences prefs = EclipseContextFactory
|
||||
.getServiceContext(FrameworkUtil.getBundle(getClass()).getBundleContext())
|
||||
.get(IParserPreferencesAccess.class).getWorkspacePreferences();
|
||||
if (!prefs.getAllocateConsole()) {
|
||||
return null; // no console to allocate
|
||||
} else {
|
||||
IProject project = buildConfiguration.getProject();
|
||||
|
|
|
@ -53,7 +53,8 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
|||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.QualifiedName;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.e4.core.contexts.EclipseContextFactory;
|
||||
import org.osgi.framework.FrameworkUtil;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonIOException;
|
||||
|
@ -92,6 +93,7 @@ public class CompileCommandsJsonParser {
|
|||
|
||||
private final CBuildConfiguration cBuildConfiguration;
|
||||
private final IIndexerInfoConsumer indexerInfoConsumer;
|
||||
private final IParserPreferencesAccess prefsAccess;
|
||||
|
||||
/**
|
||||
* last known working tool detector and its tool option parsers or {@code null},
|
||||
|
@ -135,6 +137,8 @@ public class CompileCommandsJsonParser {
|
|||
public CompileCommandsJsonParser(CBuildConfiguration buildConfiguration, IIndexerInfoConsumer indexerInfoConsumer) {
|
||||
this.cBuildConfiguration = Objects.requireNonNull(buildConfiguration, "buildConfiguration");
|
||||
this.indexerInfoConsumer = Objects.requireNonNull(indexerInfoConsumer, "indexerInfoConsumer");
|
||||
prefsAccess = EclipseContextFactory.getServiceContext(FrameworkUtil.getBundle(getClass()).getBundleContext())
|
||||
.get(IParserPreferencesAccess.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -377,8 +381,8 @@ public class CompileCommandsJsonParser {
|
|||
* returned.
|
||||
*/
|
||||
private ParserDetectionResult fastDetermineDetector(String line) {
|
||||
final IParserPreferences prefs = prefsAccess.getWorkspacePreferences();
|
||||
// try last known matching detector first...
|
||||
IPreferenceStore prefStore = Plugin.getDefault().getPreferenceStore();
|
||||
if (lastDetector != null) {
|
||||
Optional<DefaultToolDetectionParticipant.MatchResult> matchResult = Optional.empty();
|
||||
final IToolDetectionParticipant detector = lastDetector.getToolDetectionParticipant();
|
||||
|
@ -390,15 +394,15 @@ public class CompileCommandsJsonParser {
|
|||
matchResult = detector.basenameWithExtensionMatches(line, lastDetector.isMatchBackslash());
|
||||
break;
|
||||
case WITH_VERSION:
|
||||
if (prefStore.getBoolean(PreferenceConstants.P_PATTERN_ENABLED)) {
|
||||
if (prefs.getTryVersionSuffix()) {
|
||||
matchResult = detector.basenameWithVersionMatches(line, lastDetector.isMatchBackslash(),
|
||||
prefStore.getString(PreferenceConstants.P_PATTERN));
|
||||
prefs.getVersionSuffixPattern());
|
||||
}
|
||||
break;
|
||||
case WITH_VERSION_EXTENSION:
|
||||
if (prefStore.getBoolean(PreferenceConstants.P_PATTERN_ENABLED)) {
|
||||
if (prefs.getTryVersionSuffix()) {
|
||||
matchResult = detector.basenameWithVersionAndExtensionMatches(line, lastDetector.isMatchBackslash(),
|
||||
prefStore.getString(PreferenceConstants.P_PATTERN));
|
||||
prefs.getVersionSuffixPattern());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -412,9 +416,7 @@ public class CompileCommandsJsonParser {
|
|||
}
|
||||
|
||||
// no working detector found, determine a new one...
|
||||
String versionPattern = prefStore.getBoolean(PreferenceConstants.P_PATTERN_ENABLED)
|
||||
? prefStore.getString(PreferenceConstants.P_PATTERN)
|
||||
: null;
|
||||
String versionPattern = prefs.getTryVersionSuffix() ? prefs.getVersionSuffixPattern() : null;
|
||||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector(line, versionPattern,
|
||||
File.separatorChar == '\\');
|
||||
if (result != null) {
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.cmake.is.core.language.settings.providers;
|
||||
|
||||
/**
|
||||
* Preferences to configure the {@code compile_commands.json} parser.
|
||||
*
|
||||
* @author weber
|
||||
*/
|
||||
public interface IParserPreferences {
|
||||
/** Gets whether to also try a version suffix to detect a compiler. */
|
||||
boolean getTryVersionSuffix();
|
||||
|
||||
/** Sets whether to also try a version suffix to detect a compiler. */
|
||||
void setTryVersionSuffix(boolean tryVersionSuffix);
|
||||
|
||||
/** Sets the version suffix to detect a compiler. This is interpreted as a regular expression pattern. */
|
||||
String getVersionSuffixPattern();
|
||||
|
||||
/** Sets the version suffix to detect a compiler.
|
||||
*
|
||||
* @param versionSuffixPattern The version suffix as a regular expression pattern
|
||||
*/
|
||||
void setVersionSuffixPattern(String versionSuffixPattern);
|
||||
|
||||
/** Gets whether to allocate a console showing the output of compiler built-ins detection. */
|
||||
boolean getAllocateConsole();
|
||||
|
||||
/** Sets whether to allocate a console showing the output of compiler built-ins detection. */
|
||||
void setAllocateConsole(boolean allocateConsole);
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.cmake.is.core.language.settings.providers;
|
||||
|
||||
/**
|
||||
* Provides access to the {@code compile_commands.json} parser preferences and its preference metadata.<br>
|
||||
*
|
||||
* A concrete implementation object of this interface can be retrieved through the OSGI service feature.
|
||||
*
|
||||
* @author weber
|
||||
*/
|
||||
public interface IParserPreferencesAccess {
|
||||
/**
|
||||
* Gets the workspace {@code compile_commands.json} parser preferences.
|
||||
*/
|
||||
IParserPreferences getWorkspacePreferences();
|
||||
|
||||
/**
|
||||
* Gets the metadata for the parser preferences to be used in UI.
|
||||
*
|
||||
* @return the parser option metadata
|
||||
*/
|
||||
IParserPreferencesMetadata metadata();
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.cmake.is.core.language.settings.providers;
|
||||
|
||||
import org.eclipse.cdt.core.options.OptionMetadata;
|
||||
|
||||
/**
|
||||
* The metadata for options to configure the {@code compile_commands.json} parser.
|
||||
*
|
||||
* @author weber
|
||||
*/
|
||||
public interface IParserPreferencesMetadata {
|
||||
/**
|
||||
* Returns the metadata for the {@link IParserPreferences#getTryVersionSuffix()} preference.
|
||||
*
|
||||
* @return the metadata for the preference option, never {@null}
|
||||
*/
|
||||
OptionMetadata<Boolean> tryVersionSuffix();
|
||||
|
||||
/**
|
||||
* Returns the metadata for the {@link IParserPreferences#getVersionSuffixPattern()} preference.
|
||||
*
|
||||
* @return the metadata for the preference option, never {@null}
|
||||
*/
|
||||
OptionMetadata<String> versionSuffixPattern();
|
||||
|
||||
/**
|
||||
* Returns the metadata for the {@link IParserPreferences#getAllocateConsole()} preference.
|
||||
*
|
||||
* @return the metadata for the preference option, never {@null}
|
||||
*/
|
||||
OptionMetadata<Boolean> allocateConsole();
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Martin Weber.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.cmake.is.core.language.settings.providers;
|
||||
|
||||
/**
|
||||
* Constant definitions for plug-in preferences
|
||||
*/
|
||||
public class PreferenceConstants {
|
||||
|
||||
/** preferences key for version suffix regex pattern */
|
||||
public static final String P_PATTERN = "vPattern"; //$NON-NLS-1$
|
||||
/** preferences key for version suffix regex pattern enabled */
|
||||
public static final String P_PATTERN_ENABLED = "vPatternEnabled"; //$NON-NLS-1$
|
||||
/** preferences key for built-ins detection output showing a console */
|
||||
public static final String P_WITH_CONSOLE = "console"; //$NON-NLS-1$
|
||||
}
|
Loading…
Add table
Reference in a new issue