File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -134,9 +134,11 @@ struct TextParser {
134
134
var rule = " "
135
135
var buffer = " "
136
136
var inmulti = false
137
+ var inmultiTab = false
137
138
138
139
for line in lines {
139
140
141
+
140
142
// if line.hasPrefix("//") {
141
143
//// let testString = "This string is a curse"
142
144
// let expr = line.matches(for: "\\/\\/([^=]+)=([^=]+)")
@@ -146,6 +148,25 @@ struct TextParser {
146
148
// }
147
149
//// buffer = testString.replaceMatches(for: expr[0][1], template: expr[0][2])
148
150
// }
151
+
152
+ if line. hasPrefix ( " \t " ) {
153
+ inmultiTab = true
154
+ if buffer. count > 0 {
155
+ buffer = buffer + " \n " + line. trimmingCharacters ( in: CharacterSet ( charactersIn: " \t " ) )
156
+ } else {
157
+ buffer = line. trimmingCharacters ( in: CharacterSet ( charactersIn: " \t " ) )
158
+ }
159
+ continue
160
+ } else {
161
+ if inmultiTab {
162
+ inmultiTab = false
163
+ if rule != " " {
164
+ ruleSet [ rule] !. append ( buffer)
165
+ buffer = " "
166
+ continue
167
+ }
168
+ }
169
+ }
149
170
150
171
if line. hasPrefix ( " ''' " ) {
151
172
if !inmulti {
@@ -156,6 +177,7 @@ struct TextParser {
156
177
inmulti = false
157
178
if rule != " " {
158
179
ruleSet [ rule] !. append ( buffer)
180
+ buffer = " "
159
181
continue
160
182
} else {
161
183
warn ( " line ' \( buffer) ' has no valid rule " )
@@ -196,6 +218,12 @@ struct TextParser {
196
218
}
197
219
}
198
220
221
+ // if there is no newline after the last multiline element
222
+
223
+ if rule != " " && buffer != " " {
224
+ ruleSet [ rule] !. append ( buffer)
225
+ }
226
+
199
227
return ruleSet
200
228
}
201
229
You can’t perform that action at this time.
0 commit comments