diff options
| author | Zufu Liu <unknown> | 2019-11-02 10:19:22 +1100 | 
|---|---|---|
| committer | Zufu Liu <unknown> | 2019-11-02 10:19:22 +1100 | 
| commit | a35b5ddc3e2513a44374340cd245b046aa084405 (patch) | |
| tree | 59acde8933f569e46d6223c7122482f1bfaaa8dd /lexers/LexHTML.cxx | |
| parent | 3a41f3fb1bcefcb91f44e4b47a8d2f6c2e2e25b2 (diff) | |
| download | scintilla-mirror-a35b5ddc3e2513a44374340cd245b046aa084405.tar.gz | |
Feature [feature-requests:#1299] Treat custom tags from HTML5 as known tags.
These contain "-" like "custom-tag".
Diffstat (limited to 'lexers/LexHTML.cxx')
| -rw-r--r-- | lexers/LexHTML.cxx | 14 | 
1 files changed, 14 insertions, 0 deletions
| diff --git a/lexers/LexHTML.cxx b/lexers/LexHTML.cxx index 6b3748859..17c0846aa 100644 --- a/lexers/LexHTML.cxx +++ b/lexers/LexHTML.cxx @@ -266,6 +266,18 @@ void classifyAttribHTML(Sci_PositionU start, Sci_PositionU end, const WordList &  	styler.ColourTo(end, chAttr);  } +// https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-core-concepts +bool isHTMLCustomElement(const std::string &tag) { +	// check valid HTML custom element name: starts with an ASCII lower alpha and contains hyphen. +	if (tag.length() < 2 || !IsLowerCase(tag[0])) { +		return false; +	} +	if (tag.find('-') == std::string::npos) { +		return false; +	} +	return true; +} +  int classifyTagHTML(Sci_PositionU start, Sci_PositionU end,                             const WordList &keywords, Accessor &styler, bool &tagDontFold,                      bool caseSensitive, bool isXml, bool allowScripts, @@ -288,6 +300,8 @@ int classifyTagHTML(Sci_PositionU start, Sci_PositionU end,  		chAttr = SCE_H_SGML_DEFAULT;  	} else if (!keywords || keywords.InList(tag.c_str())) {  		chAttr = SCE_H_TAG; +	} else if (!isXml && isHTMLCustomElement(tag)) { +		chAttr = SCE_H_TAG;  	}  	if (chAttr != SCE_H_TAGUNKNOWN) {  		styler.ColourTo(end, chAttr); | 
