MCPcopy Index your code
hub / github.com/rtfpessoa/diff2html / getFilename

Function getFilename

src/diff-parser.ts:22–37  ·  view source on GitHub ↗
(line: string, linePrefix?: string, extraPrefix?: string)

Source from the content-addressed store, hash-verified

20
21const baseDiffFilenamePrefixes = ['a/', 'b/', 'i/', 'w/', 'c/', 'o/'];
22function getFilename(line: string, linePrefix?: string, extraPrefix?: string): string {
23 const prefixes = extraPrefix !== undefined ? [...baseDiffFilenamePrefixes, extraPrefix] : baseDiffFilenamePrefixes;
24
25 const FilenameRegExp = linePrefix
26 ? new RegExp(`^${escapeForRegExp(linePrefix)} "?(.+?)"?$`)
27 : new RegExp('^"?(.+?)"?$');
28
29 const [, filename = ''] = FilenameRegExp.exec(line) || [];
30 const matchingPrefix = prefixes.find(p => filename.indexOf(p) === 0);
31 const fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename;
32
33 // Cleanup timestamps generated by the unified diff (diff command) as specified in
34 // https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html
35 // Ie: 2016-10-25 11:37:14.000000000 +0200
36 return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, '');
37}
38
39function getSrcFilename(line: string, srcPrefix?: string): string | undefined {
40 return getFilename(line, '---', srcPrefix);

Callers 3

getSrcFilenameFunction · 0.85
getDstFilenameFunction · 0.85
parseFunction · 0.85

Calls 1

escapeForRegExpFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…