summaryrefslogtreecommitdiff
path: root/src/dged/lang.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/dged/lang.h')
-rw-r--r--src/dged/lang.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/dged/lang.h b/src/dged/lang.h
index 51d9ac3..8f8a604 100644
--- a/src/dged/lang.h
+++ b/src/dged/lang.h
@@ -4,6 +4,9 @@
#include <stdbool.h>
#include <stdint.h>
+struct setting;
+struct setting_value;
+
/**
* Settings for a programming language.
*/
@@ -30,6 +33,11 @@ struct language {
void languages_init(bool register_default);
/**
+ * Free up resources associated with a language.
+ */
+void lang_destroy(struct language *lang);
+
+/**
* Get a language config by file name.
*
* @param[in] filename File name.
@@ -46,4 +54,44 @@ struct language lang_from_filename(const char *filename);
*/
struct language lang_from_id(const char *id);
+/**
+ * Get all settings associated with a language.
+ *
+ * @param lang The language to get settings for.
+ * @param settings Result array for settings.
+ * @param nsettings resulting number of settings placed in @ref settings.
+ */
+void lang_settings(struct language *lang, struct setting **settings[],
+ uint32_t *nsettings);
+
+/**
+ * Get a single setting for a language.
+ *
+ * @param lang The language to get setting for.
+ * @param key The setting key, relative to the language.
+ *
+ * @returns The setting if found, else NULL.
+ */
+struct setting *lang_setting(struct language *lang, const char *key);
+
+/**
+ * Set a setting for a language.
+ *
+ * @param lang The language to set for.
+ * @param key The setting key, relative to the language.
+ * @param value The value to set
+ */
+void lang_setting_set(struct language *lang, const char *key,
+ struct setting_value value);
+
+/**
+ * Set a default value for a language setting.
+ *
+ * @param lang The language to set for.
+ * @param key The setting key, relative to the language.
+ * @param value The value to set
+ */
+void lang_setting_set_default(struct language *lang, const char *key,
+ struct setting_value value);
+
#endif