diff options
| -rw-r--r-- | lexers/LexBash.cxx | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/lexers/LexBash.cxx b/lexers/LexBash.cxx index 165e10498..8cd6cc570 100644 --- a/lexers/LexBash.cxx +++ b/lexers/LexBash.cxx @@ -425,7 +425,6 @@ static void ColouriseBashDoc(unsigned int startPos, int length, int initStyle,  				}  				break;  			case SCE_SH_STRING:	// delimited styles -			case SCE_SH_CHARACTER:  			case SCE_SH_BACKTICKS:  			case SCE_SH_PARAM:  				if (sc.ch == '\\' && Quote.Up != '\\') { @@ -439,6 +438,14 @@ static void ColouriseBashDoc(unsigned int startPos, int length, int initStyle,  					Quote.Count++;  				}  				break; +			case SCE_SH_CHARACTER: // singly-quoted strings +				if (sc.ch == Quote.Down) { +					Quote.Count--; +					if (Quote.Count == 0) { +						sc.ForwardSetState(SCE_SH_DEFAULT); +					} +				} +				break;  		}  		// Must check end of HereDoc state 1 before default state is handled @@ -507,7 +514,7 @@ static void ColouriseBashDoc(unsigned int startPos, int length, int initStyle,  				if (sc.ch == '{') {  					sc.ChangeState(SCE_SH_PARAM);  				} else if (sc.ch == '\'') { -					sc.ChangeState(SCE_SH_CHARACTER); +					sc.ChangeState(SCE_SH_STRING);  				} else if (sc.ch == '"') {  					sc.ChangeState(SCE_SH_STRING);  				} else if (sc.ch == '(' || sc.ch == '`') { | 
