2 #include "OptionsEditorSyntax.h"
3 #include "OptionsMgr.h"
4 #include "parsers/crystallineparser.h"
6 namespace Options { namespace EditorSyntax
9 /** @brief Setting name for file type extension. */
10 const TCHAR Section[] = _T("FileTypes");
13 * @brief Get the default value of the extension settings from OptionsMgr.
14 * @param [in] pOptionsMgr Pointer to OptionsMgr
15 * @param [out] pExtension Default value for extension settings
17 void GetDefaults(COptionsMgr* pOptionsMgr, String* pExtension)
19 if (pOptionsMgr == nullptr || pExtension == nullptr)
22 for (int i = CrystalLineParser::SRC_ABAP; i <= CrystalLineParser::SRC_XML; i++)
24 CrystalLineParser::TextDefinition* def = CrystalLineParser::GetTextType(i);
27 String name = strutils::format(_T("%s/%s.exts"), Section, def->name);
28 String exts = pOptionsMgr->GetDefault<String>(name);
29 pExtension[i-1] = std::move(exts);
35 * @brief Initialize file type extension settings.
36 * Register the extension settings defined in CrystalLineParser in OptionsMgr as the default value.
37 * Register the settings read from the registry in CrystalLineParser.
38 * @param [in] pOptionsMgr Pointer to OptionsMgr
40 void Init(COptionsMgr *pOptionsMgr)
42 if (pOptionsMgr == nullptr)
45 for (int i = CrystalLineParser::SRC_ABAP; i <= CrystalLineParser::SRC_XML; i++)
47 // Register the extension settings defined in CrystalLineParser in OptionsMgr as the default value.
48 CrystalLineParser::TextDefinition* def = CrystalLineParser::GetTextType(i);
51 String name = strutils::format(_T("%s/%s.exts"), Section, def->name);
52 pOptionsMgr->InitOption(name, String(def->exts));
54 // Register the settings read from the registry in CrystalLineParser.
55 String exts = pOptionsMgr->GetString(name);
56 CrystalLineParser::SetExtension(i, exts.c_str());
62 * @brief Load extension settings from OptionsMgr.
63 * @param [in] pOptionsMgr Pointer to OptionsMgr
64 * @param [out] pExtension Loaded extension settings
66 void Load(COptionsMgr *pOptionsMgr, String* pExtension)
68 if (pOptionsMgr == nullptr || pExtension == nullptr)
71 for (int i = CrystalLineParser::SRC_ABAP; i <= CrystalLineParser::SRC_XML; i++)
73 CrystalLineParser::TextDefinition* def = CrystalLineParser::GetTextType(i);
76 String name = strutils::format(_T("%s/%s.exts"), Section, def->name);
77 String exts = pOptionsMgr->GetString(name);
78 pExtension[i-1] = std::move(exts);
84 * @brief Save the extension settings to OptionsMgr and CrystalLineParser.
85 * @param [in] pOptionsMgr Pointer to OptionsMgr
86 * @param [in] pExtension Extension settings
88 void Save(COptionsMgr* pOptionsMgr, const String* const pExtension)
90 if (pOptionsMgr == nullptr || pExtension == nullptr)
93 for (int i = CrystalLineParser::SRC_ABAP; i <= CrystalLineParser::SRC_XML; i++)
95 // Save the extension settings to OptionsMgr.
96 CrystalLineParser::TextDefinition* def = CrystalLineParser::GetTextType(i);
99 String name = strutils::format(_T("%s/%s.exts"), Section, def->name);
100 pOptionsMgr->SaveOption(name, pExtension[i-1]);
102 // Save the extension settings to CrystalLineParser.
103 CrystalLineParser::SetExtension(i, pExtension[i-1].c_str());