diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/LexMatlab.cxx | 26 | 
1 files changed, 17 insertions, 9 deletions
| diff --git a/src/LexMatlab.cxx b/src/LexMatlab.cxx index 249fa67ce..626001cd3 100644 --- a/src/LexMatlab.cxx +++ b/src/LexMatlab.cxx @@ -100,11 +100,19 @@ static void ColouriseMatlabOctaveDoc(  				transpose = true;  			}  		} else if (sc.state == SCE_MATLAB_STRING) { -			if (sc.ch == '\'' && sc.chPrev != '\\') { +			if (sc.ch == '\\') { +				if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') { +					sc.Forward(); +				} +			} else if (sc.ch == '\'') {  				sc.ForwardSetState(SCE_MATLAB_DEFAULT);  			}  		} else if (sc.state == SCE_MATLAB_DOUBLEQUOTESTRING) { -			if (sc.ch == '"' && sc.chPrev != '\\') { +			if (sc.ch == '\\') { +				if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') { +					sc.Forward(); +				} +			} else if (sc.ch == '\"') {  				sc.ForwardSetState(SCE_MATLAB_DEFAULT);  			}  		} else if (sc.state == SCE_MATLAB_COMMENT || sc.state == SCE_MATLAB_COMMAND) { @@ -126,7 +134,7 @@ static void ColouriseMatlabOctaveDoc(  					sc.SetState(SCE_MATLAB_STRING);  				}  			} else if (sc.ch == '"') { -              sc.SetState(SCE_MATLAB_DOUBLEQUOTESTRING); +				sc.SetState(SCE_MATLAB_DOUBLEQUOTESTRING);  			} else if (isdigit(sc.ch) || (sc.ch == '.' && isdigit(sc.chNext))) {  				sc.SetState(SCE_MATLAB_NUMBER);  			} else if (isalpha(sc.ch)) { @@ -148,17 +156,17 @@ static void ColouriseMatlabOctaveDoc(  static void ColouriseMatlabDoc(unsigned int startPos, int length, int initStyle,                                 WordList *keywordlists[], Accessor &styler) { -  ColouriseMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsMatlabCommentChar); +	ColouriseMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsMatlabCommentChar);  }  static void ColouriseOctaveDoc(unsigned int startPos, int length, int initStyle,                                 WordList *keywordlists[], Accessor &styler) { -  ColouriseMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsOctaveCommentChar); +	ColouriseMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsOctaveCommentChar);  }  static void FoldMatlabOctaveDoc(unsigned int startPos, int length, int, -                          WordList *[], Accessor &styler, -                          bool (*IsComment)(Accessor&,int,int)) { +                                WordList *[], Accessor &styler, +                                bool (*IsComment)(Accessor&, int, int)) {  	int endPos = startPos + length; @@ -202,12 +210,12 @@ static void FoldMatlabOctaveDoc(unsigned int startPos, int length, int,  static void FoldMatlabDoc(unsigned int startPos, int length, int initStyle,                            WordList *keywordlists[], Accessor &styler) { -  FoldMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsMatlabComment); +	FoldMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsMatlabComment);  }  static void FoldOctaveDoc(unsigned int startPos, int length, int initStyle,                            WordList *keywordlists[], Accessor &styler) { -  FoldMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsOctaveComment); +	FoldMatlabOctaveDoc(startPos, length, initStyle, keywordlists, styler, IsOctaveComment);  }  static const char * const matlabWordListDesc[] = { | 
