(root, skipSelector = "")
| 144 | } |
| 145 | |
| 146 | function textNodesUnder(root, skipSelector = "") { |
| 147 | const nodes = []; |
| 148 | if (!root) return nodes; |
| 149 | const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { |
| 150 | acceptNode(node) { |
| 151 | if (!node.nodeValue) return NodeFilter.FILTER_REJECT; |
| 152 | if (skipSelector && node.parentElement?.closest(skipSelector)) return NodeFilter.FILTER_REJECT; |
| 153 | return NodeFilter.FILTER_ACCEPT; |
| 154 | }, |
| 155 | }); |
| 156 | while (walker.nextNode()) nodes.push(walker.currentNode); |
| 157 | return nodes; |
| 158 | } |
| 159 | |
| 160 | function aceModeForLanguage(language = "") { |
| 161 | const value = String(language || "").toLowerCase(); |
no test coverage detected