Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Problem Enabling/Disabling Codan checkers programmatically (Bug?)

Hi,
We are working on a plugin which creates a C project for ARM processors and would like to avoid users having to delve into preferences. So we have used the following code to modify default code analysis preferences:

/************** enable/disable code analysis checkers that we need or don't need... ****************************************/

IEclipsePreferences codanp = CodanCorePlugin.getDefault().getStorePreferences();
            // get pproblem checker keys
            String[] keys = null;
            try {
                keys = codanp.keys();
            } catch (org.osgi.service.prefs.BackingStoreException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            // first disable all problem checkers...
            for (int i=0; i<keys.length; i++) {
                String res = codanp.get(keys[i], "");
                if (!res.substring(0,1).equals("-")) {
                    res = "-"+res;
                }
if (res.equals("-Error") || res.equals("-Warning") || res.equals("-Info")) {
                        codanp.put(keys[i], res);
                }
            }

// now enable the checkers we need with either warning or error...

codanp.put("org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem", "Warning");
            codanp.put("org.eclipse.cdt.codan.checkers.noreturn", "Error");
codanp.put("org.eclipse.cdt.codan.checkers.errnoreturn", "Error"); codanp.put("org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem", "Warning"); codanp.put("org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem", "Warning"); codanp.put("org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem", "Warning");
            //...
**************************************************************************************************************************************/

This worked fine up until I tried it in a fresh workspace, in which case the instruction:

IEclipsePreferences codanp = CodanCorePlugin.getDefault().getStorePreferences();

returns a value which provides no keys.

In order to get it to work I must go into code analysis preferences and click on the "Apply" or "Ok" button.

Is this a bug or have I forgotten something? Is there a work around to get it to work in a new workspace?

Thanks in advance,

Regards,

Antony


Back to the top