How baler-dev/boxpletion works
boxpletion is a VS Code/Positron extension that suggests completions inside R box::use() declarations; it reads source and package metadata rather than loading or running imported modules. The user types in an R document, the editor invokes the completion provider, and the hint engine parses the partial declaration before consulting local/global module files or installed package libraries. It then returns module, folder, exported-name, or wildcard suggestions. The excerpts show the main calls; the README documents the user-facing capabilities, while the package-library fallback and configuration are visible in the extension source.
Main entry points: hints.ts Hint engine · extension.ts Completion provider · context.ts Context parser · resolve.ts Module listing
Components 11
Editor integration
- Completion provider
src/extension.ts
Hint generation
- Hint engine
src/hints.ts - Context parser
src/context.ts
Module and package discovery
- Module listing
src/resolve.ts - Module file lookup
src/resolve.ts - Module export parser
src/exports.ts - Package discovery
src/packages.ts - Namespace parser
src/packages.ts
Other components
- R document user
- VS Code / Positron
- Rscript
Connections 13
- R document user → VS Code / Positron: types in
README.md - VS Code / Positron → Completion provider: requests completions
src/extension.ts - Completion provider → Hint engine: requests hints
src/extension.ts - Completion provider → Rscript: queries library paths
src/extension.ts - Completion provider → Hint engine: passes roots and text
src/extension.ts - Hint engine → Context parser: parses context
src/hints.ts - Hint engine → Module listing: lists modules
src/hints.ts - Hint engine → Module file lookup: finds module file
src/hints.ts - Hint engine → Module export parser: reads module exports
src/hints.ts - Hint engine → Package discovery: lists packages
src/hints.ts - Hint engine → Namespace parser: reads package exports
src/hints.ts - Hint engine → Completion provider: returns suggestions
src/extension.ts - Completion provider → VS Code / Positron: registers provider
src/extension.ts