diff --git a/language/common_res.h b/language/common_res.h index 92c270cb4..bb67efd83 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -1338,6 +1338,14 @@ #define IDS_LEX_STR_SlashCmd 63408 #define IDS_LEX_STR_Processor 63409 #define IDS_LEX_STR_Argument 63410 +#define IDS_LEX_STR_CSSDefault 63411 +#define IDS_LEX_STR_CSSComment 63412 +#define IDS_LEX_STR_CSSSelector 63413 +#define IDS_LEX_STR_CSSClassID 63414 +#define IDS_LEX_STR_CSSProperty 63415 +#define IDS_LEX_STR_CSSValue 63416 +#define IDS_LEX_STR_CSSString 63417 +#define IDS_LEX_STR_CSSDirOp 63418 #define IDS_LEX_CSV_COL_0 63490 #define IDS_LEX_CSV_COL_1 63491 diff --git a/language/np3_af_za/lexer_af_za.rc b/language/np3_af_za/lexer_af_za.rc index f87b395d5..ba642b4a7 100644 --- a/language/np3_af_za/lexer_af_za.rc +++ b/language/np3_af_za/lexer_af_za.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_be_by/lexer_be_by.rc b/language/np3_be_by/lexer_be_by.rc index 40506ce5f..9315309d9 100644 --- a/language/np3_be_by/lexer_be_by.rc +++ b/language/np3_be_by/lexer_be_by.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_de_de/lexer_de_de.rc b/language/np3_de_de/lexer_de_de.rc index b0fec9993..c36552442 100644 --- a/language/np3_de_de/lexer_de_de.rc +++ b/language/np3_de_de/lexer_de_de.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_el_gr/lexer_el_gr.rc b/language/np3_el_gr/lexer_el_gr.rc index c6715fd57..dcc42c768 100644 --- a/language/np3_el_gr/lexer_el_gr.rc +++ b/language/np3_el_gr/lexer_el_gr.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_en_gb/lexer_en_gb.rc b/language/np3_en_gb/lexer_en_gb.rc index 44bda590a..c766f8c88 100644 --- a/language/np3_en_gb/lexer_en_gb.rc +++ b/language/np3_en_gb/lexer_en_gb.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_en_us/lexer_en_us.rc b/language/np3_en_us/lexer_en_us.rc index 13860ee22..e3b3a96a1 100644 --- a/language/np3_en_us/lexer_en_us.rc +++ b/language/np3_en_us/lexer_en_us.rc @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_es_es/lexer_es_es.rc b/language/np3_es_es/lexer_es_es.rc index 36bacbd32..72db056f0 100644 --- a/language/np3_es_es/lexer_es_es.rc +++ b/language/np3_es_es/lexer_es_es.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_fi_fi/lexer_fi_fi.rc b/language/np3_fi_fi/lexer_fi_fi.rc index b2476d3c5..bf1f8f63d 100644 --- a/language/np3_fi_fi/lexer_fi_fi.rc +++ b/language/np3_fi_fi/lexer_fi_fi.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_fr_fr/lexer_fr_fr.rc b/language/np3_fr_fr/lexer_fr_fr.rc index c7273d04c..6483b7118 100644 --- a/language/np3_fr_fr/lexer_fr_fr.rc +++ b/language/np3_fr_fr/lexer_fr_fr.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_hi_in/lexer_hi_in.rc b/language/np3_hi_in/lexer_hi_in.rc index 82f148301..4fa2ca0f8 100644 --- a/language/np3_hi_in/lexer_hi_in.rc +++ b/language/np3_hi_in/lexer_hi_in.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_hu_hu/lexer_hu_hu.rc b/language/np3_hu_hu/lexer_hu_hu.rc index f8ea8bee7..74483038a 100644 --- a/language/np3_hu_hu/lexer_hu_hu.rc +++ b/language/np3_hu_hu/lexer_hu_hu.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_id_id/lexer_id_id.rc b/language/np3_id_id/lexer_id_id.rc index 8abffbb38..2cd3cf6a1 100644 --- a/language/np3_id_id/lexer_id_id.rc +++ b/language/np3_id_id/lexer_id_id.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_it_it/lexer_it_it.rc b/language/np3_it_it/lexer_it_it.rc index c45fddffb..3c31f00a4 100644 --- a/language/np3_it_it/lexer_it_it.rc +++ b/language/np3_it_it/lexer_it_it.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Comando slash" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argomento" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_ja_jp/lexer_ja_jp.rc b/language/np3_ja_jp/lexer_ja_jp.rc index ae8e382af..6aad9f6b2 100644 --- a/language/np3_ja_jp/lexer_ja_jp.rc +++ b/language/np3_ja_jp/lexer_ja_jp.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_ko_kr/lexer_ko_kr.rc b/language/np3_ko_kr/lexer_ko_kr.rc index aae5735cb..88e1a8c42 100644 --- a/language/np3_ko_kr/lexer_ko_kr.rc +++ b/language/np3_ko_kr/lexer_ko_kr.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "스래시 명령" IDS_LEX_STR_Processor "프로세스" IDS_LEX_STR_Argument "인수" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_nl_nl/lexer_nl_nl.rc b/language/np3_nl_nl/lexer_nl_nl.rc index 7e8360011..b9afccab4 100644 --- a/language/np3_nl_nl/lexer_nl_nl.rc +++ b/language/np3_nl_nl/lexer_nl_nl.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_pl_pl/lexer_pl_pl.rc b/language/np3_pl_pl/lexer_pl_pl.rc index 71fb9c052..c04bdce43 100644 --- a/language/np3_pl_pl/lexer_pl_pl.rc +++ b/language/np3_pl_pl/lexer_pl_pl.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_pt_br/lexer_pt_br.rc b/language/np3_pt_br/lexer_pt_br.rc index af24ffc68..4bd191a7b 100644 --- a/language/np3_pt_br/lexer_pt_br.rc +++ b/language/np3_pt_br/lexer_pt_br.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_pt_pt/lexer_pt_pt.rc b/language/np3_pt_pt/lexer_pt_pt.rc index 35338feda..ebc83d99e 100644 --- a/language/np3_pt_pt/lexer_pt_pt.rc +++ b/language/np3_pt_pt/lexer_pt_pt.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_ru_ru/lexer_ru_ru.rc b/language/np3_ru_ru/lexer_ru_ru.rc index f3cbe168f..90b3e4003 100644 --- a/language/np3_ru_ru/lexer_ru_ru.rc +++ b/language/np3_ru_ru/lexer_ru_ru.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_sk_sk/lexer_sk_sk.rc b/language/np3_sk_sk/lexer_sk_sk.rc index 5d4e653bb..18bca88a7 100644 --- a/language/np3_sk_sk/lexer_sk_sk.rc +++ b/language/np3_sk_sk/lexer_sk_sk.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_sv_se/lexer_sv_se.rc b/language/np3_sv_se/lexer_sv_se.rc index 4daa065ae..e79378d9a 100644 --- a/language/np3_sv_se/lexer_sv_se.rc +++ b/language/np3_sv_se/lexer_sv_se.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_tr_tr/lexer_tr_tr.rc b/language/np3_tr_tr/lexer_tr_tr.rc index 15e9c50b2..f51493485 100644 --- a/language/np3_tr_tr/lexer_tr_tr.rc +++ b/language/np3_tr_tr/lexer_tr_tr.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_vi_vn/lexer_vi_vn.rc b/language/np3_vi_vn/lexer_vi_vn.rc index 531ba6852..5c5aaedcc 100644 --- a/language/np3_vi_vn/lexer_vi_vn.rc +++ b/language/np3_vi_vn/lexer_vi_vn.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_zh_cn/lexer_zh_cn.rc b/language/np3_zh_cn/lexer_zh_cn.rc index a04abc6b8..2cecb31d1 100644 --- a/language/np3_zh_cn/lexer_zh_cn.rc +++ b/language/np3_zh_cn/lexer_zh_cn.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/language/np3_zh_tw/lexer_zh_tw.rc b/language/np3_zh_tw/lexer_zh_tw.rc index 709cacd4f..bfc62aaff 100644 --- a/language/np3_zh_tw/lexer_zh_tw.rc +++ b/language/np3_zh_tw/lexer_zh_tw.rc @@ -1,4 +1,4 @@ -// Microsoft Visual C++ generated resource script. +// Microsoft Visual C++ generated resource script. // encoding: UTF-8 #pragma code_page(65001) // UTF-8 #include "resource.h" @@ -520,6 +520,14 @@ BEGIN IDS_LEX_STR_SlashCmd "Slash Command" IDS_LEX_STR_Processor "Processor" IDS_LEX_STR_Argument "Argument" + IDS_LEX_STR_CSSDefault "CSS Default" + IDS_LEX_STR_CSSComment "CSS Comment" + IDS_LEX_STR_CSSSelector "CSS Selector" + IDS_LEX_STR_CSSClassID "CSS Class/ID" + IDS_LEX_STR_CSSProperty "CSS Property" + IDS_LEX_STR_CSSValue "CSS Value" + IDS_LEX_STR_CSSString "CSS String" + IDS_LEX_STR_CSSDirOp "CSS Directive/Operator" END STRINGTABLE diff --git a/lexilla/include/LexicalStyles.iface b/lexilla/include/LexicalStyles.iface index 7e41a4aab..bfb6ef180 100644 --- a/lexilla/include/LexicalStyles.iface +++ b/lexilla/include/LexicalStyles.iface @@ -318,6 +318,15 @@ val SCE_H_SGML_ENTITY=28 val SCE_H_SGML_COMMENT=29 val SCE_H_SGML_1ST_PARAM_COMMENT=30 val SCE_H_SGML_BLOCK_DEFAULT=31 +# Embedded CSS +val SCE_HCSS_DEFAULT=32 +val SCE_HCSS_COMMENT=33 +val SCE_HCSS_SELECTOR=34 +val SCE_HCSS_CLASS=35 +val SCE_HCSS_ID=36 +val SCE_HCSS_PROPERTY=37 +val SCE_HCSS_VALUE=38 +val SCE_HCSS_OPERATOR=39 # Embedded Javascript val SCE_HJ_START=40 val SCE_HJ_DEFAULT=41 @@ -407,6 +416,11 @@ val SCE_HPHP_COMMENT=124 val SCE_HPHP_COMMENTLINE=125 val SCE_HPHP_HSTRING_VARIABLE=126 val SCE_HPHP_OPERATOR=127 +val SCE_HCSS_STRING=128 +val SCE_HCSS_PSEUDOCLASS=129 +val SCE_HCSS_IMPORTANT=130 +val SCE_HCSS_DIRECTIVE=131 +val SCE_HCSS_NUMBER=132 # Lexical states for SCLEX_PERL lex Perl=SCLEX_PERL SCE_PL_ val SCE_PL_DEFAULT=0 diff --git a/lexilla/include/SciLexer.h b/lexilla/include/SciLexer.h index 64e83b3c1..bceeb39c4 100644 --- a/lexilla/include/SciLexer.h +++ b/lexilla/include/SciLexer.h @@ -296,6 +296,14 @@ #define SCE_H_SGML_COMMENT 29 #define SCE_H_SGML_1ST_PARAM_COMMENT 30 #define SCE_H_SGML_BLOCK_DEFAULT 31 +#define SCE_HCSS_DEFAULT 32 +#define SCE_HCSS_COMMENT 33 +#define SCE_HCSS_SELECTOR 34 +#define SCE_HCSS_CLASS 35 +#define SCE_HCSS_ID 36 +#define SCE_HCSS_PROPERTY 37 +#define SCE_HCSS_VALUE 38 +#define SCE_HCSS_OPERATOR 39 #define SCE_HJ_START 40 #define SCE_HJ_DEFAULT 41 #define SCE_HJ_COMMENT 42 @@ -377,6 +385,11 @@ #define SCE_HPHP_COMMENTLINE 125 #define SCE_HPHP_HSTRING_VARIABLE 126 #define SCE_HPHP_OPERATOR 127 +#define SCE_HCSS_STRING 128 +#define SCE_HCSS_PSEUDOCLASS 129 +#define SCE_HCSS_IMPORTANT 130 +#define SCE_HCSS_DIRECTIVE 131 +#define SCE_HCSS_NUMBER 132 #define SCE_PL_DEFAULT 0 #define SCE_PL_ERROR 1 #define SCE_PL_COMMENTLINE 2 diff --git a/lexilla/lexers/LexHTML.cxx b/lexilla/lexers/LexHTML.cxx index 024fa5804..451be2e4a 100644 --- a/lexilla/lexers/LexHTML.cxx +++ b/lexilla/lexers/LexHTML.cxx @@ -42,7 +42,7 @@ namespace { #define SCE_HA_VBS (SCE_HBA_START - SCE_HB_START) #define SCE_HA_PYTHON (SCE_HPA_START - SCE_HP_START) -enum script_type { eScriptNone = 0, eScriptJS, eScriptVBS, eScriptPython, eScriptPHP, eScriptXML, eScriptSGML, eScriptSGMLblock, eScriptComment }; +enum script_type { eScriptNone = 0, eScriptJS, eScriptVBS, eScriptPython, eScriptPHP, eScriptXML, eScriptSGML, eScriptSGMLblock, eScriptComment, eScriptCSS }; enum script_mode { eHtml = 0, eNonHtmlScript, eNonHtmlPreProc, eNonHtmlScriptPreProc }; constexpr bool IsAWordChar(int ch) noexcept { @@ -103,6 +103,8 @@ script_type segIsScriptingIndicator(const Accessor &styler, Sci_PositionU start, return eScriptJS; if (Contains(s, "php")) return eScriptPHP; + if (Contains(s, "css")) + return eScriptCSS; const size_t xml = s.find("xml"); if (xml != std::string::npos) { @@ -122,7 +124,11 @@ constexpr bool IsPHPScriptState(int state) noexcept { } script_type ScriptOfState(int state) noexcept { - if ((state >= SCE_HP_START) && (state <= SCE_HP_IDENTIFIER)) { + if ((state >= SCE_HCSS_DEFAULT) && (state <= SCE_HCSS_OPERATOR)) { + return eScriptCSS; + } else if ((state >= SCE_HCSS_STRING) && (state <= SCE_HCSS_NUMBER)) { + return eScriptCSS; + } else if ((state >= SCE_HP_START) && (state <= SCE_HP_IDENTIFIER)) { return eScriptPython; } else if ((state >= SCE_HB_START && state <= SCE_HB_STRINGEOL) || (state == SCE_H_ASPAT || state == SCE_H_XCCOMMENT)) { return eScriptVBS; @@ -199,6 +205,7 @@ constexpr bool isStringState(int state) noexcept { case SCE_HPHP_SIMPLESTRING: case SCE_HPHP_HSTRING_VARIABLE: case SCE_HPHP_COMPLEX_VARIABLE: + case SCE_HCSS_STRING: bResult = true; break; default : @@ -214,6 +221,7 @@ constexpr bool stateAllowsTermination(int state) noexcept { case SCE_HPHP_COMMENT: case SCE_HP_COMMENTLINE: case SCE_HPA_COMMENTLINE: + case SCE_HCSS_COMMENT: allowTermination = false; break; default: @@ -340,7 +348,7 @@ int classifyTagHTML(Sci_PositionU start, Sci_PositionU end, styler.ColourTo(end, chAttr); } if (chAttr == SCE_H_TAG) { - if (allowScripts && (tag == "script")) { + if (allowScripts && (tag == "script" || tag == "style")) { // check to see if this is a self-closing tag by sniffing ahead bool isSelfClose = false; for (Sci_PositionU cPos = end; cPos <= end + maxLengthCheck; cPos++) { @@ -484,6 +492,9 @@ constexpr int StateForScript(script_type scriptLanguage) noexcept { case eScriptComment: Result = SCE_H_COMMENT; break; + case eScriptCSS: + Result = SCE_HCSS_DEFAULT; + break; default : break; } @@ -774,6 +785,7 @@ const char * const htmlWordListDesc[] = { "Python keywords", "PHP keywords", "SGML and DTD keywords", + "CSS properties", nullptr, }; @@ -887,14 +899,14 @@ const LexicalClass lexicalClassesHTML[] = { 29, "SCE_H_SGML_COMMENT", "comment", "SGML comment", 30, "SCE_H_SGML_1ST_PARAM_COMMENT", "error comment", "SGML first parameter - lexer internal. It is an error if any text is in this style.", 31, "SCE_H_SGML_BLOCK_DEFAULT", "default", "SGML block", - 32, "", "predefined", "", - 33, "", "predefined", "", - 34, "", "predefined", "", - 35, "", "predefined", "", - 36, "", "predefined", "", - 37, "", "predefined", "", - 38, "", "predefined", "", - 39, "", "predefined", "", + 32, "SCE_HCSS_DEFAULT", "client css default", "CSS Default", + 33, "SCE_HCSS_COMMENT", "client css comment", "CSS Comment", + 34, "SCE_HCSS_SELECTOR", "client css tag", "CSS Element Selector", + 35, "SCE_HCSS_CLASS", "client css class", "CSS Class Selector", + 36, "SCE_HCSS_ID", "client css id", "CSS ID Selector", + 37, "SCE_HCSS_PROPERTY", "client css keyword", "CSS Property", + 38, "SCE_HCSS_VALUE", "client css literal", "CSS Value", + 39, "SCE_HCSS_OPERATOR", "client css operator", "CSS Operator", 40, "SCE_HJ_START", "client javascript default", "JS Start - allows eol filled background to not start on same line as SCRIPT tag", 41, "SCE_HJ_DEFAULT", "client javascript default", "JS Default", 42, "SCE_HJ_COMMENT", "client javascript comment", "JS Comment", @@ -1054,6 +1066,7 @@ class LexerHTML : public DefaultLexer { WordList keywordsPy; WordList keywordsPHP; WordList keywordsSGML; // SGML (DTD) keywords + WordList keywordsCSS; // CSS properties OptionsHTML options; OptionSetHTML osHTML; std::set nonFoldingTags; @@ -1168,6 +1181,10 @@ Sci_Position SCI_METHOD LexerHTML::WordListSet(int n, const char *wl) { case 5: wordListN = &keywordsSGML; break; + case 6: + wordListN = &keywordsCSS; + lowerCase = true; + break; default: break; } @@ -1250,7 +1267,8 @@ void SCI_METHOD LexerHTML::Lex(Sci_PositionU startPos, Sci_Position length, int script_type clientScript = static_cast((lineState >> 8) & 0x0F); // 4 bits of script name int beforePreProc = (lineState >> 12) & 0xFF; // 8 bits of state bool isLanguageType = (lineState >> 20) & 1; // type or language attribute for script tag - int sgmlBlockLevel = (lineState >> 21); + int cssContext = (lineState >> 21) & 0x03; // 0=selector, 1=property, 2=value + int sgmlBlockLevel = (lineState >> 23); script_type scriptLanguage = ScriptOfState(state); // If eNonHtmlScript coincides with SCE_H_COMMENT, assume eScriptComment @@ -1412,7 +1430,8 @@ void SCI_METHOD LexerHTML::Lex(Sci_PositionU startPos, Sci_Position length, int ((clientScript & 0x0F) << 8) | ((beforePreProc & 0xFF) << 12) | ((isLanguageType ? 1 : 0) << 20) | - (sgmlBlockLevel << 21)); + ((cssContext & 0x03) << 21) | + (sgmlBlockLevel << 23)); lineCurrent++; lineStartVisibleChars = 0; } @@ -1467,12 +1486,15 @@ void SCI_METHOD LexerHTML::Lex(Sci_PositionU startPos, Sci_Position length, int case SCE_HPHP_SIMPLESTRING: case SCE_HPHP_COMMENT: case SCE_HPHP_COMMENTLINE: + case SCE_HCSS_COMMENT: + case SCE_HCSS_STRING: break; default : - // check if the closing tag is a script tag + // check if the closing tag matches the expected tag (script, style, or comment) if (const char *tag = (state == SCE_HJ_COMMENTLINE || state == SCE_HB_COMMENTLINE || isXml) ? "script" : - state == SCE_H_COMMENT ? "comment" : nullptr) { + state == SCE_H_COMMENT ? "comment" : + (ScriptOfState(state) == eScriptCSS) ? "style" : nullptr) { Sci_Position j = i + 2; int chr; do { @@ -1487,6 +1509,7 @@ void SCI_METHOD LexerHTML::Lex(Sci_PositionU startPos, Sci_Position length, int scriptLanguage = eScriptNone; clientScript = eScriptJS; isLanguageType = false; + cssContext = 0; i += 2; visibleChars += 2; tagClosing = true; @@ -2005,7 +2028,14 @@ void SCI_METHOD LexerHTML::Lex(Sci_PositionU startPos, Sci_Position length, int if (eClass == SCE_H_SCRIPT || eClass == SCE_H_COMMENT) { if (!tagClosing) { inScriptType = eNonHtmlScript; - scriptLanguage = eClass == SCE_H_SCRIPT ? clientScript : eScriptComment; + if (eClass == SCE_H_COMMENT) { + scriptLanguage = eScriptComment; + } else if (lastTag == "style") { + scriptLanguage = eScriptCSS; + cssContext = 0; // start in selector context + } else { + scriptLanguage = clientScript; + } } else { scriptLanguage = eScriptNone; } @@ -2383,6 +2413,200 @@ void SCI_METHOD LexerHTML::Lex(Sci_PositionU startPos, Sci_Position length, int state = SCE_HB_DEFAULT; } break; + // --------------------------------------------------------------- + // Embedded CSS state machine + // --------------------------------------------------------------- + case SCE_HCSS_DEFAULT: + if (ch == '/' && chNext == '*') { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_COMMENT; + i++; + ch = chNext; + chNext = SafeGetUnsignedCharAt(styler, i + 1); + } else if (ch == '\"') { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_STRING; + } else if (ch == '\'') { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_STRING; + } else if (ch == '{') { + styler.ColourTo(i - 1, StateToPrint); + styler.ColourTo(i, SCE_HCSS_OPERATOR); + cssContext = 1; // property context + if (fold) levelCurrent++; + } else if (ch == '}') { + styler.ColourTo(i - 1, StateToPrint); + styler.ColourTo(i, SCE_HCSS_OPERATOR); + cssContext = 0; // selector context + if (fold) levelCurrent--; + } else if (ch == ':' && cssContext == 1) { + // property:value separator + styler.ColourTo(i - 1, StateToPrint); + styler.ColourTo(i, SCE_HCSS_OPERATOR); + cssContext = 2; // value context + } else if (ch == ':' && cssContext == 0) { + // pseudo-class in selector context + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_PSEUDOCLASS; + } else if (ch == ';') { + styler.ColourTo(i - 1, StateToPrint); + styler.ColourTo(i, SCE_HCSS_OPERATOR); + if (cssContext == 2) cssContext = 1; // back to property context + } else if (ch == ',' || ch == '(' || ch == ')' || ch == '+' || ch == '~' || ch == '>') { + styler.ColourTo(i - 1, StateToPrint); + styler.ColourTo(i, SCE_HCSS_OPERATOR); + } else if (ch == '!' && cssContext == 2) { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_IMPORTANT; + } else if (ch == '@') { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_DIRECTIVE; + } else if (ch == '.' && cssContext == 0) { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_CLASS; + } else if (ch == '#' && cssContext == 0) { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_ID; + } else if (cssContext == 2 && (IsADigit(ch) || (ch == '-' && IsADigit(chNext)) || (ch == '.' && IsADigit(chNext)) || (ch == '#' && IsADigit(chNext, 16)))) { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_NUMBER; + } else if (cssContext == 2 && (IsAlphaNumeric(ch) || ch == '-' || ch == '_' || ch == '%')) { + styler.ColourTo(i - 1, StateToPrint); + state = SCE_HCSS_VALUE; + } else if (cssContext <= 1 && (IsAlphaNumeric(ch) || ch == '-' || ch == '_' || ch == '*')) { + styler.ColourTo(i - 1, StateToPrint); + if (cssContext == 1) { + state = SCE_HCSS_PROPERTY; + } else { + state = SCE_HCSS_SELECTOR; + } + } else if (ch == '[') { + // attribute selector + styler.ColourTo(i - 1, StateToPrint); + styler.ColourTo(i, SCE_HCSS_OPERATOR); + } else if (ch == ']') { + styler.ColourTo(i - 1, StateToPrint); + styler.ColourTo(i, SCE_HCSS_OPERATOR); + } + break; + case SCE_HCSS_COMMENT: + if (ch == '*' && chNext == '/') { + i++; + ch = chNext; + chNext = SafeGetUnsignedCharAt(styler, i + 1); + styler.ColourTo(i, SCE_HCSS_COMMENT); + state = SCE_HCSS_DEFAULT; + } + break; + case SCE_HCSS_STRING: + if (ch == '\"' || ch == '\'') { + // check if this quote matches the opening quote + const char chOpen = styler.SafeGetCharAt(styler.GetStartSegment()); + if (ch == chOpen) { + styler.ColourTo(i, SCE_HCSS_STRING); + state = SCE_HCSS_DEFAULT; + } + } else if (ch == '\\') { + // skip escaped character + i++; + ch = chNext; + chNext = SafeGetUnsignedCharAt(styler, i + 1); + } + break; + case SCE_HCSS_SELECTOR: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '_' && ch != '*') { + styler.ColourTo(i - 1, SCE_HCSS_SELECTOR); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; // reprocess this character in default state + continue; + } + } + break; + case SCE_HCSS_CLASS: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '_') { + styler.ColourTo(i - 1, SCE_HCSS_CLASS); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + case SCE_HCSS_ID: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '_') { + styler.ColourTo(i - 1, SCE_HCSS_ID); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + case SCE_HCSS_PSEUDOCLASS: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '_' && ch != ':') { + styler.ColourTo(i - 1, SCE_HCSS_PSEUDOCLASS); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + case SCE_HCSS_PROPERTY: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '_') { + const std::string prop = styler.GetRangeLowered(styler.GetStartSegment(), i); + styler.ColourTo(i - 1, keywordsCSS.InList(prop) ? SCE_HCSS_PROPERTY : SCE_HCSS_DEFAULT); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + case SCE_HCSS_VALUE: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '_' && ch != '%' && ch != '/' && ch != '(') { + styler.ColourTo(i - 1, SCE_HCSS_VALUE); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + case SCE_HCSS_NUMBER: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '.' && ch != '%' && ch != '#') { + styler.ColourTo(i - 1, SCE_HCSS_NUMBER); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + case SCE_HCSS_DIRECTIVE: + if (!IsAlphaNumeric(ch) && ch != '-' && ch != '_') { + styler.ColourTo(i - 1, SCE_HCSS_DIRECTIVE); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + case SCE_HCSS_IMPORTANT: + if (!IsAlphaNumeric(ch) && ch != '!') { + styler.ColourTo(i - 1, SCE_HCSS_IMPORTANT); + state = SCE_HCSS_DEFAULT; + if (!IsASpace(ch)) { + --i; + continue; + } + } + break; + // --------------------------------------------------------------- + // End embedded CSS state machine + // --------------------------------------------------------------- case SCE_HP_DEFAULT: case SCE_HP_START: if (IsAWordStart(ch)) { diff --git a/res/StdDarkModeScheme.ini b/res/StdDarkModeScheme.ini index 6ae1055f3..407b6c8a0 100644 --- a/res/StdDarkModeScheme.ini +++ b/res/StdDarkModeScheme.ini @@ -681,6 +681,14 @@ ASP VBS Comment=fore:#999999 ASP VBS Keyword=bold; fore:#F651F6 ASP VBS String=fore:#67F765 ASP VBS Number=fore:#F20C0D +CSS Default= +CSS Comment=fore:#999999 +CSS Selector=bold; fore:#B4E1F5 +CSS Class/ID=fore:#D0F548 +CSS Property=fore:#F2460D +CSS Value=fore:#A1C3D3 +CSS String=fore:#6FF76C +CSS Directive/Operator=fore:#F651F6 [XML Document] XML Tag=fore:#E96EE1 XML Attribute=fore:#F7A163 diff --git a/src/StyleLexers/styleLexHTML.c b/src/StyleLexers/styleLexHTML.c index c440f5b2a..b35bd9092 100644 --- a/src/StyleLexers/styleLexHTML.c +++ b/src/StyleLexers/styleLexHTML.c @@ -53,6 +53,45 @@ KEYWORDLIST KeyWords_HTML = "require_once return static stdclass switch this throw trait true try unset use var virtual while xor", // SGML and DTD keywords "", +// CSS properties (for embedded