Files
herolib/lib/develop/codewalker
2025-08-17 11:07:26 +02:00
..
...
2025-08-17 11:07:26 +02:00
...
2025-08-17 11:07:26 +02:00
...
2025-08-17 11:07:26 +02:00
...
2025-08-17 11:07:26 +02:00
...
2025-08-17 11:07:26 +02:00
...
2025-08-17 11:07:26 +02:00
...
2025-08-17 11:07:26 +02:00

CodeWalker Module

The CodeWalker module provides functionality to walk through directories and create a map of files with their content. It's particularly useful for processing code directories while respecting gitignore patterns.

Features

  • Walk through directories recursively
  • Respect gitignore patterns to exclude files
  • Store file content in memory
  • Export files back to a directory structure

Usage

import freeflowuniverse.herolib.lib.lang.codewalker

mut cw := codewalker.new('/tmp/adir')!

// Get content of a specific file
content := cw.filemap.get('path/to/file.txt')!

// return output again
cw.filemap.content()

// Export all files to a destination directory
cw.filemap.export('/tmp/exported_files')!

format of filemap

full files


text before will be ignored

===FILE:filename===
code
===FILE:filename===
code
===END===

text behind will be ignored

files with changes


text before will be ignored

===FILECHANGE:filename===
code
===FILECHANGE:filename===
code
===END===

text behind will be ignored

FILECHANGE and FILE can be mixed, in FILE it means we have full content otherwise only changed content e.g. a method or s struct and then we need to use morph to change it