diff options
| author | Albert Cervin <albert@acervin.com> | 2024-03-18 22:07:36 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2024-03-18 22:12:01 +0100 |
| commit | 1558a1b36b15eb9bde28e05beea43b619e6257c6 (patch) | |
| tree | cf17929449567278cd8487ecf2aff648122c5685 /src/main | |
| parent | eabf7f9a958026c073faecf7504cbd8bb484a6c1 (diff) | |
| download | dged-1558a1b36b15eb9bde28e05beea43b619e6257c6.tar.gz dged-1558a1b36b15eb9bde28e05beea43b619e6257c6.tar.xz dged-1558a1b36b15eb9bde28e05beea43b619e6257c6.zip | |
More work on languages/syntax
Implement another predicate and add javascript.
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/main.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/main.c b/src/main/main.c index d0d118b..b96edd4 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -214,6 +214,11 @@ int main(int argc, char *argv[]) { #ifdef SYNTAX_ENABLE char *treesitter_path_env = getenv("TREESITTER_GRAMMARS"); + struct setting *path_setting = settings_get("editor.grammars-path"); + char *settings_path = NULL; + if (path_setting != NULL && path_setting->value.type == Setting_String) { + settings_path = path_setting->value.string_value; + } const char *builtin_path = join_path(xstr(DATADIR), "grammars"); const char *treesitter_path[256] = {0}; @@ -229,6 +234,16 @@ int main(int argc, char *argv[]) { } } + if (settings_path != NULL) { + settings_path = strdup(settings_path); + char *result = strtok(settings_path, ":"); + while (result != NULL && treesitter_path_len < 256) { + treesitter_path[treesitter_path_len] = result; + ++treesitter_path_len; + result = strtok(NULL, ":"); + } + } + if (treesitter_path_len < 256) { treesitter_path[treesitter_path_len] = builtin_path; ++treesitter_path_len; @@ -239,6 +254,9 @@ int main(int argc, char *argv[]) { if (treesitter_path_env != NULL) { free((void *)treesitter_path_env); } + if (settings_path != NULL) { + free((void *)settings_path); + } free((void *)builtin_path); #endif |
