                 
                 if let extractedRanges = extractedRanges, !extractedRanges.isEmpty {
                     rangesQueue.sync {
-                        ranges.append(contentsOf: extractedRanges)
+                        ranges += extractedRanges
                     }
                 }
                 

            
            let childProgress = Progress(totalUnitCount: definitions.count + 10)  // + 10 for simple words
            
            var simpleWordsDict = [Int: [String]]()
            var simpleICWordsDict = [Int: [String]]()
            let wordsQueue = DispatchQueue(label: "com.coteditor.CotEdiotor.syntax.words")
            
            var ranges = [NSRange]()
            let rangesQueue = DispatchQueue(label: "com.coteditor.CotEdiotor.syntax.ranges")
            
            DispatchQueue.concurrentPerform(iterations: definitions.count, execute: { (i: Int) in
                guard !self.isCancelled else { return }
                
                let definition = definitions[i]

                DispatchQueue.main.async {
                    childProgress.completedUnitCount += 1
                }
            }
            
            guard !self.isCancelled else { return [:] }
            
            // extract simple words
            if let charSet = self.simpleWordsCharacterSets?[syntaxType], !charSet.isEmpty {
                ranges += self.ranges(simpleWords: simpleWords,
                                      ignoreCaseWords: simpleICWords,
                                      charSet: charSet)
            }
            
            // store range array
