public ICdtVariable[] getVariables() { // if(contextType != DefaultMacroContextInfo.CONTEXT_WORKSPACE) // return null; IStringVariableManager mngr = VariablesPlugin.getDefault().getStringVariableManager(); IDynamicVariable vars[] = mngr.getDynamicVariables(); Map<String, IStringVariable> map = new HashMap<String, IStringVariable>(); for (IDynamicVariable var : vars) { final String name = var.getName(); if (!isDeadlockProneVariable(name)) { map.put(name, var); } } IValueVariable valVars[] = mngr.getValueVariables(); for (IValueVariable valVar : valVars) map.put(valVar.getName(), valVar); Collection<IStringVariable> collection = map.values(); EclipseVarMacro macros[] = new EclipseVarMacro[collection.size()]; Iterator<IStringVariable> iter = collection.iterator(); for (int i = 0; i < macros.length; i++) macros[i] = new EclipseVarMacro(iter.next()); return macros; }