Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-06-11 19:35:11 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-06-11 19:35:11 +0400
commit66134ea38166742444720a4fe2f8d95effd8866a (patch)
tree3282fd6536cbf98d3173270c5a5c0fb154bccf7c /source/blender/editors/space_text
parenta0a99e4a4d90ea4226b29d97ee83b02e4e439156 (diff)
patch [#22570] Text editor syntax coloring update
from Jacob F (raccoon) This does two things to the text editor: 1) Adds coloring (same color as numbers) for True and False. 2) Fixes [#22551] Syntax coloring offset does not update when using real tabs and changing tab width
Diffstat (limited to 'source/blender/editors/space_text')
-rw-r--r--source/blender/editors/space_text/space_text.c4
-rw-r--r--source/blender/editors/space_text/text_draw.c26
2 files changed, 27 insertions, 3 deletions
diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c
index 3a23cd32629..96b38f2e78d 100644
--- a/source/blender/editors/space_text/space_text.c
+++ b/source/blender/editors/space_text/space_text.c
@@ -118,15 +118,13 @@ static void text_listener(ScrArea *sa, wmNotifier *wmn)
/* context changes */
switch(wmn->category) {
case NC_TEXT:
- if(!wmn->reference || wmn->reference == st->text) {
+ if(!wmn->reference || wmn->reference == st->text || wmn->data == ND_DISPLAY || wmn->action == NA_EDITED) {
ED_area_tag_redraw(sa);
if(wmn->action == NA_EDITED)
if(st->text)
text_update_edited(st->text);
}
- else if(wmn->data == ND_DISPLAY)
- ED_area_tag_redraw(sa);
break;
case NC_SPACE:
diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c
index 7ae432e3d6f..3a891a66107 100644
--- a/source/blender/editors/space_text/text_draw.c
+++ b/source/blender/editors/space_text/text_draw.c
@@ -224,6 +224,21 @@ static int find_specialvar(char *string)
return i;
}
+static int find_bool(char *string)
+{
+ int i = 0;
+ /* Check for "False" */
+ if(string[0]=='F' && string[1]=='a' && string[2]=='l' && string[3]=='s' && string[4]=='e')
+ i = 5;
+ /* Check for "True" */
+ else if(string[0]=='T' && string[1]=='r' && string[2]=='u' && string[3]=='e')
+ i = 4;
+ /* If next source char is an identifier (eg. 'i' in "definate") no match */
+ if(i==0 || text_check_identifier(string[i]))
+ return -1;
+ return i;
+}
+
/* Ensures the format string for the given line is long enough, reallocating
as needed. Allocation is done here, alone, to ensure consistency. */
int text_check_format_len(TextLine *line, unsigned int len)
@@ -335,6 +350,17 @@ static void txt_format_line(SpaceText *st, TextLine *line, int do_next)
/* Numbers (digits not part of an identifier and periods followed by digits) */
else if((prev != 'q' && text_check_digit(*str)) || (*str == '.' && text_check_digit(*(str+1))))
*fmt = 'n';
+ /* Booleans */
+ else if(prev != 'q' && (i=find_bool(str)) != -1)
+ if(i>0) {
+ while(i>1) {
+ *fmt = 'n'; fmt++; str++;
+ i--;
+ }
+ *fmt = 'n';
+ }
+ else
+ *fmt = 'q';
/* Punctuation */
else if(text_check_delim(*str))
*fmt = '!';