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;
  }