MyNixOS website logo
Description

Print Directory Trees for R Projects and Folders.

Quickly visualize 'R' project directory structures with automatic project detection and clean tree output.

printtree printtree logo

printtree prints a compact directory tree for R projects or any folder.
It can optionally detect project roots associated with common R workflows (e.g., RStudio projects via .Rproj files) and print the tree from the appropriate root directory. Trees can include count summaries, Git status annotations, pattern-based ignores, pruning of empty directories, PNG snapshots, and text or Markdown exports.

The package is IDE-agnostic: if no project metadata is detected, it simply prints the directory tree for the specified folder.

Installation

# install.packages("printtree")  

Usage

library(printtree)

# Current working directory
print_rtree()

# Explicit path
print_rtree("~/Projects/myproj")

# Project name (searched in search_paths)
print_rtree("myproj", search_paths = c("~/Projects", "~/Documents"))

# Limit depth
print_rtree(max_depth = 2)

# Ignore by glob pattern
print_rtree(ignore = c("*.log", "test_*"))

# Annotate files with Git status
print_rtree(git = TRUE)

# Return lines without printing
lines <- print_rtree(return_lines = TRUE, quiet = TRUE)

# Use the old compact output without a count footer
print_rtree(count_footer = FALSE)

# Hide directories with no displayable children
print_rtree(ignore = "*.log", prune = TRUE)

# Unicode tree (if your terminal supports it)
print_rtree(format = "unicode")

# Save a PNG snapshot
print_rtree(snapshot = TRUE)

# Dark background snapshot
print_rtree(snapshot = TRUE, snapshot_bg = "black", snapshot_file = "tree-dark.png")

#or White background with dark text
print_rtree(snapshot = TRUE, snapshot_bg = "white", snapshot_file = "tree-white.png")

# Save to a specific directory
print_rtree(snapshot = TRUE, snapshot_path = "~/Pictures")

# Save a Markdown tree
write_tree(".", "tree.md", format = "md", title = "Project Tree")

Project root detection

When project = "root", printtree can walk upward from the given path to detect a project root using simple markers:

  • .Rproj files (RStudio / Posit projects)

  • DESCRIPTION files (R package roots)

This behavior can be customized using the root_markers argument.

# Detect R package root (DESCRIPTION)
print_rtree(project = "root")

# Include Quarto projects
print_rtree(project = "root",
            root_markers = c(".Rproj", "DESCRIPTION", "_quarto.yml"))

If no project root is detected, the tree is printed from the provided path.

Notes

  • Default output uses ASCII for portability.

  • Hidden files are excluded unless show_hidden = TRUE.

  • On Windows, hidden file-system attributes are also respected when hidden files are excluded.

Metadata

Version

0.2.1

License

Unknown

Platforms (80)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows