Silica currently parses and analyses every source file as part of its localisable string extraction process, significantly slowing builds on larger projects that use Silica as part of the build process. To counter this effect, Silica should cache analysis results from source files and avoid parsing sources that haven’t been touched since the last run.
Specifically, Silica should maintain a cache file in the source root (or at a path given with the --cache command argument) that enumerates the localisation string identifiers extracted from each source file alongside a hash value of the source text. This cache file is versioned for Silica and invalidated when a different version of Silica is used. The cache file doesn’t need to be checked in version control repositories.
Silica currently parses and analyses every source file as part of its localisable string extraction process, significantly slowing builds on larger projects that use Silica as part of the build process. To counter this effect, Silica should cache analysis results from source files and avoid parsing sources that haven’t been touched since the last run.
Specifically, Silica should maintain a cache file in the source root (or at a path given with the
--cachecommand argument) that enumerates the localisation string identifiers extracted from each source file alongside a hash value of the source text. This cache file is versioned for Silica and invalidated when a different version of Silica is used. The cache file doesn’t need to be checked in version control repositories.