MCPcopy Create free account
hub / github.com/JordanCoin/codemap / resolveRelative

Function resolveRelative

scanner/filegraph.go:228–254  ·  view source on GitHub ↗

resolveRelative handles ./foo and ../bar style imports

(imp, fromDir string, idx *fileIndex)

Source from the content-addressed store, hash-verified

226
227// resolveRelative handles ./foo and ../bar style imports
228func resolveRelative(imp, fromDir string, idx *fileIndex) []string {
229 // Count parent directory levels
230 levels := 0
231 rest := imp
232 for strings.HasPrefix(rest, "../") {
233 levels++
234 rest = strings.TrimPrefix(rest, "../")
235 }
236 rest = strings.TrimPrefix(rest, "./")
237
238 // Navigate up from fromDir
239 targetDir := fromDir
240 for i := 0; i < levels; i++ {
241 targetDir = filepath.Dir(targetDir)
242 if targetDir == "." {
243 targetDir = ""
244 }
245 }
246
247 // Build candidate path
248 candidate := rest
249 if targetDir != "" {
250 candidate = filepath.Join(targetDir, rest)
251 }
252
253 return tryExactMatch(candidate, idx)
254}
255
256// tryExactMatch looks for exact path matches with common extensions.
257// Extension list derived from the canonical scanner registry.

Callers 3

TestDepsResolveRelativeFunction · 0.85
fuzzyResolveFunction · 0.85
TestResolveRelativeFunction · 0.85

Calls 1

tryExactMatchFunction · 0.85

Tested by 2

TestDepsResolveRelativeFunction · 0.68
TestResolveRelativeFunction · 0.68