From beeae9b2ad36caf47f15cebd2cdc2d48753d85b6 Mon Sep 17 00:00:00 2001 From: JosefLitos Date: Tue, 31 Oct 2023 19:18:15 +0100 Subject: [PATCH 1/3] fix(selector): nbt allows =! operator --- syntax/mcfunction/mcfunction.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/mcfunction/mcfunction.vim b/syntax/mcfunction/mcfunction.vim index 49b93f2..0b66bf1 100755 --- a/syntax/mcfunction/mcfunction.vim +++ b/syntax/mcfunction/mcfunction.vim @@ -1432,7 +1432,7 @@ syn keyword mcFilterKeyword contained predicate skipwhite nextgroup=mcF " ... = ... syn match mcFilterEqGamemode contained /=/ skipwhite nextgroup=mcGamemode -syn match mcFilterEqNBT contained /=/ skipwhite nextgroup=mcNBTTag +syn match mcFilterEqNBT contained /=!\?/ skipwhite nextgroup=mcNBTTag syn match mcFilterEqPredicate contained /=/ skipwhite nextgroup=mcNsPredicate syn match mcFilterEqSort contained /=/ skipwhite nextgroup=mcFilterSort syn match mcFilterEqScores contained /=/ skipwhite nextgroup=mcFilterScores From 772d45d1d88523263a841cc7037b8d58fc1e0ce2 Mon Sep 17 00:00:00 2001 From: JosefLitos Date: Tue, 31 Oct 2023 19:31:45 +0100 Subject: [PATCH 2/3] fix(filter): added =! operator for predicates and gamemode --- syntax/mcfunction/mcfunction.vim | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/syntax/mcfunction/mcfunction.vim b/syntax/mcfunction/mcfunction.vim index 0b66bf1..83c116f 100755 --- a/syntax/mcfunction/mcfunction.vim +++ b/syntax/mcfunction/mcfunction.vim @@ -1431,13 +1431,12 @@ syn keyword mcFilterKeyword contained advancements skipwhite nextgroup=mcF syn keyword mcFilterKeyword contained predicate skipwhite nextgroup=mcFilterEqPredicate " ... = ... -syn match mcFilterEqGamemode contained /=/ skipwhite nextgroup=mcGamemode +syn match mcFilterEqGamemode contained /=!\?/ skipwhite nextgroup=mcGamemode syn match mcFilterEqNBT contained /=!\?/ skipwhite nextgroup=mcNBTTag -syn match mcFilterEqPredicate contained /=/ skipwhite nextgroup=mcNsPredicate +syn match mcFilterEqPredicate contained /=!\?/ skipwhite nextgroup=mcNsPredicate syn match mcFilterEqSort contained /=/ skipwhite nextgroup=mcFilterSort syn match mcFilterEqScores contained /=/ skipwhite nextgroup=mcFilterScores syn match mcFilterEqAdvances contained /=/ skipwhite nextgroup=mcFilterAdvancements -syn match mcFilterEqScore contained /=/ skipwhite nextgroup=mcFilterIR1,mcFilterIR2 syn match mcFilterEqAdvance contained /=/ skipwhite nextgroup=mcFilterAdvancementCriterion,mcBool syn match mcFilterEqName contained /=!\?/ skipwhite nextgroup=mcPlayerName syn match mcFilterEqTeam contained /=!\?/ skipwhite nextgroup=mcTeam From 9bcfba93e1bfbf927e719ba0835be0b9c65ccc26 Mon Sep 17 00:00:00 2001 From: JosefLitos Date: Wed, 1 Nov 2023 12:21:17 +0100 Subject: [PATCH 3/3] fix(scorefilter): added highlighting for scores filter + brace color fix --- syntax/mcfunction/mcfunction.vim | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/syntax/mcfunction/mcfunction.vim b/syntax/mcfunction/mcfunction.vim index 83c116f..7e0d73c 100755 --- a/syntax/mcfunction/mcfunction.vim +++ b/syntax/mcfunction/mcfunction.vim @@ -194,7 +194,7 @@ hi def link mcInt mcValue hi def link mcFloat mcValue syn match mcUIntRange contained contains=mcBadDecimal,mcUInt,mcRangeDots /\d*\%(\.\+\d*\)\?/ -syn match mcIntRange contained contains=mcBadDecimal,mcInt,mcRangeDots /-\?\d*\%(\.\+-\?\d*\)\?/ +syn match mcIntRange contained contains=mcBadDecimal,mcInt,mcRangeDots /-\?\d*\%(\.\.-\?\d*\)\?/ syn match mcUFloatRange contained contains=mcUFloat,mcRangeDots /[[:digit:].]*\%(\.\.[[:digit:].]*\)\?/ syn match mcFloatRange contained contains=mcFloat,mcRangeDots /[[:digit:].-]*\%(\.\.[[:digit:].-]*\)\?/ syn match mcRangeDots contained /\.\./ @@ -1461,16 +1461,20 @@ hi def link mcYRotation mcXRotation hi def link mcXRotation mcValue " Lists -syn region mcFilterScores matchgroup=mcOp start=/{/rs=e end=/}/ oneline contained contains=mcObjectiveNameFilter -syn region mcFilterAdvancements matchgroup=mcOp start=/{/rs=e end=/}/ oneline contained contains=mcNsAdvancementFilter +syn region mcFilterScores matchgroup=mcNBTBracket start=/{/rs=e end=/}/ oneline contained contains=mcFilterScoresPair,mcFilterComma +syn region mcFilterAdvancements matchgroup=mcNBTBracket start=/{/rs=e end=/}/ oneline contained contains=mcNsAdvancementFilter call s:addInstance('NsAdvancement','Filter','mcFilterEqAdvance') -syn region mcFilterAdvancementCriterion matchgroup=mcOp start=/{/rs=e end=/}/ oneline contained contains=mcAdvancementCriterion +syn region mcFilterAdvancementCriterion matchgroup=mcNBTBracket start=/{/rs=e end=/}/ oneline contained contains=mcAdvancementCriterion +syn match mcFilterScoresObjective /[A-Za-z_]\w\+/ contained +syn match mcFilterScoresPair /\w\+=\(\d\|[-.]\)\+/ contained contains=mcFilterScoresObjective,mcIntRange " Links hi def link mcFilterKeyword mcKeyword hi def link mcFilterSort mcKeyword hi def link mcFilterComma mcFilterEq +hi def link mcFilterScoresObjective mcObjective +hi def link mcFilterScoresPair mcOp for x in split('Gamemode NBT Tag Sort Scores Advances Score Advance Name Team Type Tag F UI UFR XR YR', ' ') execute 'hi def link mcFilterEq'.x 'mcFilterEq'