add c and jai
This commit is contained in:
51
c/config/config.h
Normal file
51
c/config/config.h
Normal file
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
// config.h — Global program configuration (config.ini next to binary)
|
||||
//
|
||||
// Stores internal program state: active theme, recent project directories,
|
||||
// and other preferences. This file is managed by the program, not the user.
|
||||
// Per-project settings belong in .editorconfig.
|
||||
|
||||
#include "base/base_inc.h"
|
||||
|
||||
////////////////////////////////
|
||||
// Constants
|
||||
|
||||
#define CONFIG_MAX_RECENT_DIRS 10
|
||||
#define CONFIG_PATH_MAX 1024
|
||||
|
||||
////////////////////////////////
|
||||
// Config state
|
||||
|
||||
typedef struct Config {
|
||||
char theme[64]; // active theme name
|
||||
char recent_dirs[CONFIG_MAX_RECENT_DIRS][CONFIG_PATH_MAX]; // most recent first
|
||||
S32 recent_dir_count;
|
||||
B32 show_line_numbers;
|
||||
B32 syntax_enabled;
|
||||
B32 block_cursor;
|
||||
B32 cursor_smear;
|
||||
B32 smooth_scroll;
|
||||
F32 ui_scale;
|
||||
F32 editor_font_size;
|
||||
char editor_font[64]; // "FiraCode", "JetBrains Mono", "Cascadia Mono"
|
||||
char ui_font[64]; // "Inter", "FiraCode", etc.
|
||||
S32 window_width;
|
||||
S32 window_height;
|
||||
char active_project[CONFIG_PATH_MAX];
|
||||
} Config;
|
||||
|
||||
// Global config instance
|
||||
extern Config g_config;
|
||||
|
||||
// Resolve the path to config.ini (next to the running binary).
|
||||
static void config_get_path(char *out, S32 out_size);
|
||||
|
||||
// Load config from disk. Populates g_config. If the file doesn't exist,
|
||||
// writes a default one and returns defaults.
|
||||
static void config_load(void);
|
||||
|
||||
// Save current g_config state to disk.
|
||||
static void config_save(void);
|
||||
|
||||
// Push a directory to the front of the recent list (deduplicates).
|
||||
static void config_push_recent_dir(const char *dir);
|
||||
Reference in New Issue
Block a user