MCPcopy Index your code
hub / github.com/spicetify/cli / insertNavLink

Function insertNavLink

src/apply/apply.go:381–421  ·  view source on GitHub ↗
(str string, appNameArray string)

Source from the content-addressed store, hash-verified

379}
380
381func 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
423func insertHomeConfig(jsPath string, flags Flag) {
424 if !flags.HomeConfig {

Callers 1

insertCustomAppFunction · 0.85

Calls 2

SeekToCloseParenFunction · 0.92
ReplaceOnceWithPriorityFunction · 0.92

Tested by

no test coverage detected