diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini index a34227077..b003d4698 100644 --- a/Build/Notepad3.ini +++ b/Build/Notepad3.ini @@ -39,7 +39,7 @@ SettingsVersion=4 ;UseOldStyleBraceMatching=0 ;WebTemplate1=https://google.com/search?q=%s ;WebTemplate2=https://en.wikipedia.org/w/index.php?search=%s -;ExtendedWhiteSpaceChars=: +;ExtendedWhiteSpaceChars= ;AutoCompleteWordCharSet= ;AutoCompleteFillUpChars= ;LineCommentPostfixStrg= diff --git a/Versions/build.txt b/Versions/build.txt index 091d5b0a2..3c6eb2a8d 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -2714 +2715 diff --git a/language/common_res.h b/language/common_res.h index 2e3e7b2f7..24dde9cd1 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -1059,6 +1059,9 @@ #define IDS_LEX_STR_63361 63361 #define IDS_LEX_STR_63362 63362 #define IDS_LEX_STR_63363 63363 +#define IDS_LEX_STR_63364 63364 +#define IDS_LEX_STR_63365 63365 +#define IDS_LEX_STR_63366 63366 #define IDS_LEX_CSV_COL_0 63400 #define IDS_LEX_CSV_COL_1 63401 diff --git a/language/np3_en_us/lexer_en_us.rc b/language/np3_en_us/lexer_en_us.rc index c90db4b6b..720d54aae 100644 --- a/language/np3_en_us/lexer_en_us.rc +++ b/language/np3_en_us/lexer_en_us.rc @@ -461,6 +461,9 @@ BEGIN IDS_LEX_STR_63361 "Substitution" IDS_LEX_STR_63362 "Modifier" IDS_LEX_STR_63363 "Tag" + IDS_LEX_STR_63364 "Property Name" + IDS_LEX_STR_63365 "LD Keyword" + IDS_LEX_STR_63366 "ESC Sequence" END STRINGTABLE diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 2d2b64984..5978cbdb5 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 BETA diff --git a/scintilla/lexers/LexYAML.cxx b/scintilla/lexers/LexYAML.cxx index e2f0d1787..191bf54aa 100644 --- a/scintilla/lexers/LexYAML.cxx +++ b/scintilla/lexers/LexYAML.cxx @@ -122,7 +122,8 @@ static void ColouriseYAMLLine( styler.ColourTo(endPos, SCE_YAML_COMMENT); return; //} else if (lineBuffer[i] == ':' && !bInQuotes) { - } else if (lineBuffer[i] == ':' && !bInQuotes && ((i+1) < lengthLine && lineBuffer[i+1] == ' ')) { + } else if (lineBuffer[i] == ':' && !bInQuotes && + (((i+1) < lengthLine) && isspacechar(lineBuffer[i+1]))) { styler.ColourTo(startLine + i - 1, SCE_YAML_IDENTIFIER); styler.ColourTo(startLine + i, SCE_YAML_OPERATOR); // Non-folding scalar diff --git a/scintilla/lexlib/CharacterSet.h b/scintilla/lexlib/CharacterSet.h index 0470e446c..9724c4dde 100644 --- a/scintilla/lexlib/CharacterSet.h +++ b/scintilla/lexlib/CharacterSet.h @@ -101,19 +101,19 @@ public: // Functions for classifying characters -inline bool IsASpace(int ch) { +constexpr bool IsASpace(int ch) { return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d)); } -inline bool IsASpaceOrTab(int ch) { +constexpr bool IsASpaceOrTab(int ch) { return (ch == ' ') || (ch == '\t'); } -inline bool IsADigit(int ch) { +constexpr bool IsADigit(int ch) { return (ch >= '0') && (ch <= '9'); } -inline bool IsADigit(int ch, int base) { +constexpr bool IsADigit(int ch, int base) { if (base <= 10) { return (ch >= '0') && (ch < '0' + base); } else { @@ -123,23 +123,23 @@ inline bool IsADigit(int ch, int base) { } } -inline bool IsASCII(int ch) { +constexpr bool IsASCII(int ch) { return (ch >= 0) && (ch < 0x80); } -inline bool IsLowerCase(int ch) { +constexpr bool IsLowerCase(int ch) { return (ch >= 'a') && (ch <= 'z'); } -inline bool IsUpperCase(int ch) { +constexpr bool IsUpperCase(int ch) { return (ch >= 'A') && (ch <= 'Z'); } -inline bool IsUpperOrLowerCase(int ch) { +constexpr bool IsUpperOrLowerCase(int ch) { return IsUpperCase(ch) || IsLowerCase(ch); } -inline bool IsAlphaNumeric(int ch) { +constexpr bool IsAlphaNumeric(int ch) { return ((ch >= '0') && (ch <= '9')) || ((ch >= 'a') && (ch <= 'z')) || @@ -150,19 +150,19 @@ inline bool IsAlphaNumeric(int ch) { * Check if a character is a space. * This is ASCII specific but is safe with chars >= 0x80. */ -inline bool isspacechar(int ch) { +constexpr bool isspacechar(int ch) { return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d)); } -inline bool iswordchar(int ch) { +constexpr bool iswordchar(int ch) { return IsAlphaNumeric(ch) || ch == '.' || ch == '_'; } -inline bool iswordstart(int ch) { +constexpr bool iswordstart(int ch) { return IsAlphaNumeric(ch) || ch == '_'; } -inline bool isoperator(int ch) { +constexpr bool isoperator(int ch) { if (IsAlphaNumeric(ch)) return false; if (ch == '%' || ch == '^' || ch == '&' || ch == '*' || diff --git a/src/StyleLexers/styleLexJSON.c b/src/StyleLexers/styleLexJSON.c index 0bad583f5..2b968d4fa 100644 --- a/src/StyleLexers/styleLexJSON.c +++ b/src/StyleLexers/styleLexJSON.c @@ -3,24 +3,28 @@ // ---------------------------------------------------------------------------- KEYWORDLIST KeyWords_JSON = { -"false null true", -"@base @container @context @graph @id @index @language @list @reverse @set @type @value @vocab", +"Infinity NaN false null true", +"@base @container @context @direction @graph @id @import @included @index @json @language @list @nest @none " +"@prefix @propagate @protected @reverse @set @type @value @version @vocab", NULL, }; EDITLEXER lexJSON = { -SCLEX_JSON, IDS_LEX_JSON, L"JSON", L"json; eslintrc; jshintrc; jsonld; har; ipynb; wxcp; arcconfig", L"", +SCLEX_JSON, IDS_LEX_JSON, L"JSON", L"json; har; ipynb; wxcp; jshintrc; eslintrc; babelrc; prettierrc; stylelintrc; jsonld; jsonc; arcconfig; arclint; jscop", L"", &KeyWords_JSON, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, - //{ {SCE_C_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, - { {SCE_C_COMMENT}, IDS_LEX_STR_63127, L"Comment", L"fore:#646464", L"" }, - { {SCE_C_WORD}, IDS_LEX_STR_63128, L"Keyword", L"bold; fore:#A46000", L"" }, - { {SCE_C_IDENTIFIER}, IDS_LEX_STR_63129, L"Identifier", L"", L"" }, - { {SCE_JSON_STRING}, IDS_LEX_STR_63131, L"String", L"fore:#008000", L"" }, - { {SCE_C_REGEX}, IDS_LEX_STR_63135, L"Regex", L"fore:#006633; back:#FFF1A8", L"" }, + //{ {SCE_JSON_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, + { {MULTI_STYLE(SCE_JSON_LINECOMMENT,SCE_JSON_BLOCKCOMMENT,0,0)}, IDS_LEX_STR_63127, L"Comment", L"fore:#646464", L"" }, + { {SCE_JSON_KEYWORD}, IDS_LEX_STR_63128, L"Keyword", L"bold; fore:#957000", L"" }, + { {SCE_JSON_LDKEYWORD}, IDS_LEX_STR_63365, L"LD Keyword", L"bold; fore:#A61D04", L"" }, + { {MULTI_STYLE(SCE_JSON_STRING,SCE_JSON_STRINGEOL,0,0)}, IDS_LEX_STR_63131, L"String", L"fore:#008000", L"" }, + //{ {SCE_C_REGEX}, IDS_LEX_STR_63135, L"Regex", L"fore:#006633; back:#FFF1A8", L"" }, { {SCE_JSON_NUMBER}, IDS_LEX_STR_63130, L"Number", L"fore:#FF0000", L"" }, - { {SCE_C_OPERATOR}, IDS_LEX_STR_63132, L"Operator", L"fore:#B000B0", L"" }, + { {SCE_JSON_OPERATOR}, IDS_LEX_STR_63132, L"Operator", L"fore:#B000B0", L"" }, + { {SCE_JSON_PROPERTYNAME}, IDS_LEX_STR_63364, L"Property Name", L"fore:#002697", L"" }, + { {SCE_JSON_ESCAPESEQUENCE}, IDS_LEX_STR_63366, L"ESC Sequence", L"fore:#0B982E", L"" }, + { {SCE_JSON_ERROR}, IDS_LEX_STR_63252, L"Parsing Error", L"fore:#FFFF00; back:#A00000; eolfilled", L"" }, EDITLEXER_SENTINEL } }; /* diff --git a/src/VersionEx.h b/src/VersionEx.h index ce7e51eb0..0165e5a6b 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -8,8 +8,8 @@ #define SAPPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 20 -#define VERSION_REV 125 -#define VERSION_BUILD 2714 +#define VERSION_REV 127 +#define VERSION_BUILD 2715 #define SCINTILLA_VER 430 #define ONIGURUMA_REGEX_VER 6.9.4 #define UCHARDET_VER 2018.09.27