in src/formatters/codesearch.js [52:97]
export function getCodeSearchLink(metric, app, item) {
const [category, name] = metric.split(/\.(?=[^.]+$)/);
// Generate all possible casings for a search query:
// https://github.com/mozilla/glean-dictionary/pull/339#issuecomment-766904256
// Javascript: camelCase.camelCase
const camelCased = name
? `${camelCase(category)}.${camelCase(name)}`
: camelCase(category);
// Kotlin, Swift: CamelCase.camelCase
const capitalizedCamelCased = name
? upperFirst(`${camelCase(category)}.${camelCase(name)}`)
: camelCase(category);
// Python: snake_case.snake_case
const snakedCased = name
? `${snakeCase(category)}.${snakeCase(name)}`
: snakeCase(category);
// Rust, C++: snake_case::snake_case
const dblColonSnakeCased = name
? `${snakeCase(category)}::${snakeCase(name)}`
: snakeCase(category);
const allLanguagePatterns = `${metric}|${camelCased}|${capitalizedCamelCased}|${snakedCased}|${dblColonSnakeCased}`;
/* eslint no-else-return: "error" */
if (searchfoxMap[app]) {
const repoName = getGithubRepoName(item.source_url);
const searchFoxPath =
repoName === "application-services" ? repoName : searchfoxMap[app];
return app === "firefox_desktop"
? `https://searchfox.org/mozilla-central/search?q=${allLanguagePatterns}®exp=true`
: `https://searchfox.org/mozilla-mobile/search?q=${allLanguagePatterns}&path=${searchFoxPath}®exp=true`;
} else if (sourcegraphMap[app]) {
return (
`https://sourcegraph.com/search?q=repo:%5Egithub%5C.com%5C/%5BMm%5Dozilla%28.*%29%5C/` +
`${sourcegraphMap[app]}%24+${allLanguagePatterns}&patternType=regexp`
);
}
return undefined;
}