diff options
| author | Jim Pattee <unknown> | 2016-09-23 18:12:22 +1000 | 
|---|---|---|
| committer | Jim Pattee <unknown> | 2016-09-23 18:12:22 +1000 | 
| commit | eadbd5b47a18280a54d6223aca2383cd04d6007a (patch) | |
| tree | efd8e8ce60fed89c7e2247ee3f89630f79ba62a7 | |
| parent | fdb8953cdffa47ff9f13f1cc173e1cb2df191019 (diff) | |
| download | scintilla-mirror-eadbd5b47a18280a54d6223aca2383cd04d6007a.tar.gz | |
Recognize inline comments in YAML.
| -rw-r--r-- | doc/ScintillaHistory.html | 4 | ||||
| -rw-r--r-- | lexers/LexYAML.cxx | 22 | 
2 files changed, 22 insertions, 4 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 404ffa16d..b5f9fdf07 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -545,6 +545,10 @@  	<a href="http://sourceforge.net/p/scintilla/feature-requests/1143/">Feature #1143.</a>  	</li>  	<li> +	The YAML lexer recognizes inline comments. +	<a href="http://sourceforge.net/p/scintilla/bugs/1660/">Bug #1660</a>. +	</li> +	<li>  	Fix caret position after left or right movement with rectangular selection.  	<a href="http://sourceforge.net/p/scintilla/bugs/1861/">Bug #1861</a>.  	</li> diff --git a/lexers/LexYAML.cxx b/lexers/LexYAML.cxx index 5f94215d1..e420d9d79 100644 --- a/lexers/LexYAML.cxx +++ b/lexers/LexYAML.cxx @@ -148,16 +148,30 @@ static void ColouriseYAMLLine(  				styler.ColourTo(endPos, SCE_YAML_KEYWORD);  				return;  			} else { +				Sci_PositionU startComment = i; +				bInQuotes = false; +				while (startComment < lengthLine) { // Comment must be space padded +					if (lineBuffer[startComment] == '\'' || lineBuffer[startComment] == '\"') +						bInQuotes = !bInQuotes; +					if (lineBuffer[startComment] == '#' && isspacechar(lineBuffer[startComment - 1]) && !bInQuotes) +						break; +					startComment++; +				}  				Sci_PositionU i2 = i; -				while ((i < lengthLine) && lineBuffer[i]) { -					if (!(IsASCII(lineBuffer[i]) && isdigit(lineBuffer[i])) && lineBuffer[i] != '-' && lineBuffer[i] != '.' && lineBuffer[i] != ',') { -						styler.ColourTo(endPos, SCE_YAML_DEFAULT); +				while ((i < startComment) && lineBuffer[i]) { +					if (!(IsASCII(lineBuffer[i]) && isdigit(lineBuffer[i])) && lineBuffer[i] != '-'  +						    && lineBuffer[i] != '.' && lineBuffer[i] != ',' && lineBuffer[i] != ' ') { +						styler.ColourTo(startLine + startComment - 1, SCE_YAML_DEFAULT); +						if (startComment < lengthLine) +							styler.ColourTo(endPos, SCE_YAML_COMMENT);  						return;  					}  					i++;  				}  				if (i > i2) { -					styler.ColourTo(endPos, SCE_YAML_NUMBER); +					styler.ColourTo(startLine + startComment - 1, SCE_YAML_NUMBER); +					if (startComment < lengthLine) +						styler.ColourTo(endPos, SCE_YAML_COMMENT);  					return;  				}  			}  | 
