(str string, appNameArray string)
| 379 | } |
| 380 | |
| 381 | func insertNavLink(str string, appNameArray string) string { |
| 382 | // Library X |
| 383 | libraryXItemMatch := utils.SeekToCloseParen( |
| 384 | str, |
| 385 | `\("li",\{[^\{]*\{[^\{]*\{to:"\/search`, |
| 386 | '(', ')') |
| 387 | |
| 388 | if libraryXItemMatch != "" { |
| 389 | str = strings.Replace( |
| 390 | str, |
| 391 | libraryXItemMatch, |
| 392 | fmt.Sprintf("%s,Spicetify._renderNavLinks([%s], false)", libraryXItemMatch, appNameArray), |
| 393 | 1) |
| 394 | } |
| 395 | |
| 396 | utils.ReplaceOnceWithPriority(&str, |
| 397 | []string{ |
| 398 | // Global Navbar <= 1.2.45 |
| 399 | `(,[a-zA-Z_\$][\w\$]*===(?:[a-zA-Z_\$][\w\$]*\.){2}HOME_NEXT_TO_NAVIGATION&&.+?)\]`, |
| 400 | // Global Navbar >= 1.2.60, greedy matching with enclosing brackets |
| 401 | `("global-nav-bar".*[[\w\$&|]*\(0,[a-zA-Z_\$][\w\$]*\.jsx\)\(\s*\w+,\s*\{\s*className:\w*\s*\}\s*\))\]`, |
| 402 | // Global Navbar >= 1.2.87 |
| 403 | `(?s)("global-nav-bar".*?&&\s*\(0,\s*[a-zA-Z_\$][\w\$]*\.jsxs?\)\(\s*[a-zA-Z_\$][\w\$]*\s*,\s*\{\s*children:\s*)(\[\s*[\w\$]+\s*\?\s*\(0,\s*[a-zA-Z_\$][\w\$]*\.jsx\).*?\])(\s*\}\))`, |
| 404 | // Global Navbar >= 1.2.46, lazy matching |
| 405 | `("global-nav-bar".*?)(\(0,\s*[a-zA-Z_\$][\w\$]*\.jsx\))(\(\s*\w+,\s*\{\s*className:\w*\s*\}\s*\))`, |
| 406 | }, |
| 407 | func(index int, submatches ...string) string { |
| 408 | switch index { |
| 409 | case 0, 1: |
| 410 | return fmt.Sprintf("%s,Spicetify._renderNavLinks([%s], true)]", submatches[1], appNameArray) |
| 411 | case 2: |
| 412 | return fmt.Sprintf("%s[%s,Spicetify._renderNavLinks([%s], true)].flat()%s", submatches[1], submatches[2], appNameArray, submatches[3]) |
| 413 | case 3: |
| 414 | return fmt.Sprintf("%s[%s%s,Spicetify._renderNavLinks([%s], true)].flat()", submatches[1], submatches[2], submatches[3], appNameArray) |
| 415 | } |
| 416 | return "" |
| 417 | }, |
| 418 | ) |
| 419 | |
| 420 | return str |
| 421 | } |
| 422 | |
| 423 | func insertHomeConfig(jsPath string, flags Flag) { |
| 424 | if !flags.HomeConfig { |
no test coverage detected