30875
|
1 " Vim syntax file
|
|
2 " Language: PoE item filter
|
|
3 " Maintainer: ObserverOfTime <chronobserver@disroot.org>
|
|
4 " Filenames: *.filter
|
|
5 " Last Change: 2022 Oct 07
|
|
6
|
|
7 if exists('b:current_syntax')
|
|
8 finish
|
|
9 endif
|
|
10
|
|
11 let s:cpo_save = &cpoptions
|
|
12 set cpoptions&vim
|
|
13
|
|
14 " Comment
|
|
15 syn keyword poefilterTodo TODO NOTE XXX contained
|
|
16 syn match poefilterCommentTag /\[[0-9A-Z\[\]]\+\]/ contained
|
|
17 syn match poefilterComment /#.*$/ contains=poefilterTodo,poefilterCommentTag,@Spell
|
|
18
|
|
19 " Blocks
|
|
20 syn keyword poefilterBlock Show Hide
|
|
21
|
|
22 " Conditions
|
|
23 syn keyword poefilterCondition
|
|
24 \ AlternateQuality
|
|
25 \ AnyEnchantment
|
|
26 \ BlightedMap
|
|
27 \ Corrupted
|
|
28 \ ElderItem
|
|
29 \ ElderMap
|
|
30 \ FracturedItem
|
|
31 \ Identified
|
|
32 \ Mirrored
|
|
33 \ Replica
|
|
34 \ Scourged
|
|
35 \ ShapedMap
|
|
36 \ ShaperItem
|
|
37 \ SynthesisedItem
|
|
38 \ UberBlightedMap
|
|
39 \ skipwhite nextgroup=poefilterBoolean
|
|
40 syn keyword poefilterCondition
|
|
41 \ ArchnemesisMod
|
|
42 \ BaseType
|
|
43 \ Class
|
|
44 \ EnchantmentPassiveNode
|
|
45 \ HasEnchantment
|
|
46 \ HasExplicitMod
|
|
47 \ ItemLevel
|
|
48 \ SocketGroup
|
|
49 \ Sockets
|
|
50 \ skipwhite nextgroup=poefilterOperator,poefilterString
|
|
51 syn keyword poefilterCondition
|
|
52 \ AreaLevel
|
|
53 \ BaseArmour
|
|
54 \ BaseDefencePercentile
|
|
55 \ BaseEnergyShield
|
|
56 \ BaseEvasion
|
|
57 \ BaseWard
|
|
58 \ CorruptedMods
|
|
59 \ DropLevel
|
|
60 \ EnchantmentPassiveNum
|
|
61 \ GemLevel
|
|
62 \ HasEaterOfWorldsImplicit
|
|
63 \ HasSearingExarchImplicit
|
|
64 \ Height
|
|
65 \ LinkedSockets
|
|
66 \ MapTier
|
|
67 \ Quality
|
|
68 \ StackSize
|
|
69 \ Width
|
|
70 \ skipwhite nextgroup=poefilterOperator,poefilterNumber
|
|
71 syn keyword poefilterCondition
|
|
72 \ GemQualityType
|
|
73 \ skipwhite nextgroup=poefilterString,poefilterQuality
|
|
74 syn keyword poefilterCondition
|
|
75 \ HasInfluence
|
|
76 \ skipwhite nextgroup=poefilterString,poefilterInfluence
|
|
77 syn keyword poefilterCondition
|
|
78 \ Rarity
|
|
79 \ skipwhite nextgroup=poefilterString,poefilterRarity
|
|
80
|
|
81 " Actions
|
|
82 syn keyword poefilterAction
|
|
83 \ PlayAlertSound
|
|
84 \ PlayAlertSoundPositional
|
|
85 \ skipwhite nextgroup=poefilterNumber,poefilterDisable
|
|
86 syn keyword poefilterAction
|
|
87 \ CustomAlertSound
|
|
88 \ CustomAlertSoundOptional
|
|
89 \ skipwhite nextgroup=poefilterString
|
|
90 syn keyword poefilterAction
|
|
91 \ DisableDropSound
|
|
92 \ EnableDropSound
|
|
93 \ DisableDropSoundIfAlertSound
|
|
94 \ EnableDropSoundIfAlertSound
|
|
95 \ skipwhite nextgroup=poefilterBoolean
|
|
96 syn keyword poefilterAction
|
|
97 \ MinimapIcon
|
|
98 \ SetBackgroundColor
|
|
99 \ SetBorderColor
|
|
100 \ SetFontSize
|
|
101 \ SetTextColor
|
|
102 \ skipwhite nextgroup=poefilterNumber
|
|
103 syn keyword poefilterAction
|
|
104 \ PlayEffect
|
|
105 \ skipwhite nextgroup=poefilterColour
|
|
106
|
|
107 " Operators
|
|
108 syn match poefilterOperator /!\|[<>=]=\?/ contained
|
|
109 \ skipwhite nextgroup=poefilterString,poefilterNumber,
|
|
110 \ poefilterQuality,poefilterRarity,poefilterInfluence
|
|
111
|
|
112 " Arguments
|
|
113 syn match poefilterString /[-a-zA-Z0-9:,']/ contained contains=@Spell
|
|
114 \ skipwhite nextgroup=poefilterString,poefilterNumber,
|
|
115 \ poefilterQuality,poefilterRarity,poefilterInfluence
|
|
116 syn region poefilterString matchgroup=poefilterQuote keepend
|
|
117 \ start=/"/ end=/"/ concealends contained contains=@Spell
|
|
118 \ skipwhite nextgroup=poefilterString,poefilterNumber,
|
|
119 \ poefilterQuality,poefilterRarity,poefilterInfluence
|
|
120 syn match poefilterNumber /-1\|0\|[1-9][0-9]*/ contained
|
|
121 \ skipwhite nextgroup=poefilterString,poefilterNumber,
|
|
122 \ poefilterQuality,poefilterRarity,poefilterInfluence,poefilterColour
|
|
123 syn keyword poefilterBoolean True False contained
|
|
124
|
|
125 " Special arguments (conditions)
|
|
126 syn keyword poefilterQuality Superior Divergent Anomalous Phantasmal
|
|
127 \ contained skipwhite nextgroup=poefilterString,poefilterQuality
|
|
128 syn keyword poefilterRarity Normal Magic Rare Unique
|
|
129 \ contained skipwhite nextgroup=poefilterString,poefilterRarity
|
|
130 syn keyword poefilterInfluence Shaper Elder
|
|
131 \ Crusader Hunter Redeemer Warlord None
|
|
132 \ contained skipwhite nextgroup=poefilterString,poefilterInfluence
|
|
133
|
|
134 " Special arguments (actions)
|
|
135 syn keyword poefilterColour Red Green Blue Brown
|
|
136 \ White Yellow Cyan Grey Orange Pink Purple
|
|
137 \ contained skipwhite nextgroup=poefilterShape,poefilterTemp
|
|
138 syn keyword poefilterShape Circle Diamond Hecagon Square Star Triangle
|
|
139 \ Cross Moon Raindrop Kite Pentagon UpsideDownHouse contained
|
|
140 syn keyword poefilterDisable None contained
|
|
141 syn keyword poefilterTemp Temp contained
|
|
142
|
|
143 " Colours
|
|
144
|
|
145 hi def link poefilterAction Statement
|
|
146 hi def link poefilterBlock Structure
|
|
147 hi def link poefilterBoolean Boolean
|
|
148 hi def link poefilterColour Special
|
|
149 hi def link poefilterComment Comment
|
|
150 hi def link poefilterCommentTag SpecialComment
|
|
151 hi def link poefilterCondition Conditional
|
|
152 hi def link poefilterDisable Constant
|
|
153 hi def link poefilterInfluence Special
|
|
154 hi def link poefilterNumber Number
|
|
155 hi def link poefilterOperator Operator
|
|
156 hi def link poefilterQuality Special
|
|
157 hi def link poefilterQuote Delimiter
|
|
158 hi def link poefilterRarity Special
|
|
159 hi def link poefilterShape Special
|
|
160 hi def link poefilterString String
|
|
161 hi def link poefilterTemp StorageClass
|
|
162 hi def link poefilterTodo Todo
|
|
163
|
|
164 let b:current_syntax = 'poefilter'
|
|
165
|
|
166 let &cpoptions = s:cpo_save
|
|
167 unlet s:cpo_save
|