diff options
Diffstat (limited to 'source/blender/editors/space_text/text_format_osl.c')
-rw-r--r-- | source/blender/editors/space_text/text_format_osl.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/source/blender/editors/space_text/text_format_osl.c b/source/blender/editors/space_text/text_format_osl.c index 08cae0d978d..66980b30c4d 100644 --- a/source/blender/editors/space_text/text_format_osl.c +++ b/source/blender/editors/space_text/text_format_osl.c @@ -33,6 +33,10 @@ static int txtfmt_osl_find_builtinfunc(const char *string) { int i, len; + + /* Keep aligned args for readability. */ + /* clang-format off */ + /* list is from * https://github.com/imageworks/OpenShadingLanguage/raw/master/src/doc/osl-languagespec.pdf */ @@ -62,6 +66,8 @@ static int txtfmt_osl_find_builtinfunc(const char *string) else if (STR_LITERAL_STARTSWITH(string, "while", len)) i = len; else i = 0; + /* clang-format on */ + /* If next source char is an identifier (eg. 'i' in "definite") no match */ if (i == 0 || text_check_identifier(string[i])) return -1; @@ -71,6 +77,10 @@ static int txtfmt_osl_find_builtinfunc(const char *string) static int txtfmt_osl_find_reserved(const char *string) { int i, len; + + /* Keep aligned args for readability. */ + /* clang-format off */ + /* list is from... * https://github.com/imageworks/OpenShadingLanguage/raw/master/src/doc/osl-languagespec.pdf */ @@ -112,6 +122,8 @@ static int txtfmt_osl_find_reserved(const char *string) else if (STR_LITERAL_STARTSWITH(string, "volatile", len)) i = len; else i = 0; + /* clang-format on */ + /* If next source char is an identifier (eg. 'i' in "definite") no match */ if (i == 0 || text_check_identifier(string[i])) return -1; @@ -129,6 +141,9 @@ static int txtfmt_osl_find_specialvar(const char *string) { int i, len; + /* Keep aligned args for readability. */ + /* clang-format off */ + /* OSL shader types */ if (STR_LITERAL_STARTSWITH(string, "shader", len)) i = len; else if (STR_LITERAL_STARTSWITH(string, "surface", len)) i = len; @@ -136,6 +151,8 @@ static int txtfmt_osl_find_specialvar(const char *string) else if (STR_LITERAL_STARTSWITH(string, "displacement", len)) i = len; else i = 0; + /* clang-format on */ + /* If next source char is an identifier (eg. 'i' in "definite") no match */ if (i == 0 || text_check_identifier(string[i])) return -1; @@ -162,11 +179,18 @@ static int txtfmt_osl_find_preprocessor(const char *string) static char txtfmt_osl_format_identifier(const char *str) { char fmt; + + /* Keep aligned args for readability. */ + /* clang-format off */ + if ((txtfmt_osl_find_specialvar(str)) != -1) fmt = FMT_TYPE_SPECIAL; else if ((txtfmt_osl_find_builtinfunc(str)) != -1) fmt = FMT_TYPE_KEYWORD; else if ((txtfmt_osl_find_reserved(str)) != -1) fmt = FMT_TYPE_RESERVED; else if ((txtfmt_osl_find_preprocessor(str)) != -1) fmt = FMT_TYPE_DIRECTIVE; else fmt = FMT_TYPE_DEFAULT; + + /* clang-format on */ + return fmt; } @@ -276,6 +300,9 @@ static void txtfmt_osl_format_line(SpaceText *st, TextLine *line, const bool do_ } /* Not ws, a digit, punct, or continuing text. Must be new, check for special words */ else { + /* Keep aligned args for readability. */ + /* clang-format off */ + /* Special vars(v) or built-in keywords(b) */ /* keep in sync with 'txtfmt_osl_format_identifier()' */ if ((i = txtfmt_osl_find_specialvar(str)) != -1) prev = FMT_TYPE_SPECIAL; @@ -283,6 +310,8 @@ static void txtfmt_osl_format_line(SpaceText *st, TextLine *line, const bool do_ else if ((i = txtfmt_osl_find_reserved(str)) != -1) prev = FMT_TYPE_RESERVED; else if ((i = txtfmt_osl_find_preprocessor(str)) != -1) prev = FMT_TYPE_DIRECTIVE; + /* clang-format on */ + if (i > 0) { if (prev == FMT_TYPE_DIRECTIVE) { /* can contain utf8 */ text_format_fill(&str, &fmt, prev, i); |