RDS Viewer for VS Code
📊 View and explore R Data Serialization (RDS) files directly in Visual Studio Code.
Features
🚀 Main Features (v1.2.1)
- Universal RDS Support: Opens any RDS file type automatically (data frames, MI data, lists, vectors, etc.)
- Tabbed Interface: Switch between Summary and Data views
- Excel-like Data Viewer: Browse your data with familiar spreadsheet interface
- Infinite Scrolling: Smooth scrolling through datasets of any size with aggressive prefetching
- Smart Navigation: Jump to any row, navigate by 100/1000 rows, or use keyboard shortcuts
- Column Navigation: View 10 columns at a time or toggle to see all
- Search & Highlight: Find and highlight text across your dataset
- Multiple Imputation Support: Full support for MICE/Amelia imputed datasets with highlighting
- Performance Optimized: 400-row prefetching eliminates stuttering at boundaries
📋 Supported Data Types
- Data frames: Regular data frames with full variable analysis
- Multiple Imputation (MI) data: MICE and Amelia imputed datasets
- View any imputation (m=0 for original, m=1+ for imputed)
- Highlight imputed values for easy identification
- Seamless navigation across large MI datasets
- Lists: Including nested structures
- Vectors: Numeric, character, logical, factor
- Matrices: 2D numeric arrays
- Time series: ts objects
- Complex objects: S3/S4 objects
🎯 Key Features
- Universal compatibility: Any RDS file opens automatically with appropriate viewer
- Smooth performance: Infinite scrolling with aggressive prefetching (400 rows ahead)
- Fast preview: Summary information loads instantly, even for large files
- Smart data loading: Only loads data in chunks as needed (250-500 rows at a time)
- WebView UI: Clean, responsive interface optimized for large datasets
- Context menus: Right-click any .rds file to view summary or preview
- Secure: Runs R in isolated subprocess with no external dependencies
⌨️ Keyboard Shortcuts
- Home: Jump to first row
- End: Jump to last row
- PageUp/PageDown: Navigate by one page
- Ctrl/Cmd + ↑/↓: Navigate by 100 rows
- Ctrl/Cmd + G: Focus row jump input
Requirements
R installation: R must be installed on your system
- Download from: https://www.r-project.org/
- The extension will auto-detect R in common locations
- Or configure custom path in settings
R packages: The following R package is recommended:
install.packages("jsonlite")
Installation
- Install the extension from VS Code Marketplace
- Or install from VSIX file:
code --install-extension rds-viewer-1.2.1.vsix
Usage
Opening RDS Files
Right-click menu: Right-click any .rds file in the Explorer
- Select "Show RDS Summary" for quick overview
- Select "Open RDS Preview" for full data view
Command Palette: Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux)
- Type "RDS: Show Summary"
- Type "RDS: Open Preview"
File association: Double-click any .rds file to open with the viewer
Understanding the Summary View
The summary view provides:
- File name and size
- Last modified date
- R version compatibility
Object Overview
- Object type (data.frame, list, vector, etc.)
- Object class (including custom S3/S4 classes)
- Memory usage
Data Frame Details
- Dimensions: Number of rows and columns
- Complete cases: Rows without any missing values
- Variables table:
- Variable name (click to copy)
- Data type and class
- Number of unique values
- Missing value count and percentage
- Statistical summary for numeric variables
- Factor levels for categorical variables
Configuration
Configure the extension in VS Code settings:
{
"rdsViewer.rPath": "/usr/local/bin/R", // Path to R executable
"rdsViewer.maxPreviewRows": 1000, // Max rows to display
"rdsViewer.showSummaryOnOpen": true, // Show summary by default
"rdsViewer.summaryPanelPosition": "left" // Panel position: top/left/right/popup
}
Examples
Sample Data Frame Summary
📊 Data Frame Summary
Dimensions: 10,000 rows × 25 columns
Complete Rows: 8,543 (85.43%)
Missing Cells: 2,341 (0.94%)
📋 Variables (25)
┌─────────┬──────────┬─────────┬────────┐
│ Variable│ Type │ Missing │ Summary│
├─────────┼──────────┼─────────┼────────┤
│ id │ integer │ 0 │ 1~10000│
│ age │ numeric │ 12 │ μ=42.3 │
│ gender │ factor │ 0 │ 2 levels│
└─────────┴──────────┴─────────┴────────┘
Development
Building from Source
# Clone the repository
git clone https://github.com/hoon-snuecse/rds-viewer.git
cd rds-viewer
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Run in development mode
code .
# Then press F5 to launch extension development host
Testing
Test files are included in the test-data/ directory:
sample_dataframe.rds - Basic data frame with mixed types
sample_large_dataframe.rds - Large dataset (10,000 rows)
sample_complex_list.rds - Nested list structure
sample_vector.rds - Numeric vector
sample_matrix.rds - Matrix data
Troubleshooting
R not found
- Ensure R is installed: Run
R --version in terminal
- Configure R path in settings:
rdsViewer.rPath
- On macOS with Homebrew: Path is usually
/opt/homebrew/bin/R
- On Windows: Path is usually
C:\Program Files\R\R-4.x.x\bin\R.exe
RDS file won't open
- Check file permissions
- Ensure file is not corrupted: Try
readRDS("file.rds") in R console
- Check VS Code Output panel for error messages
Missing jsonlite package
Install in R console:
install.packages("jsonlite")
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
Report issues at: https://github.com/hoon-snuecse/rds-viewer/issues
License
MIT License - See LICENSE file for details
Acknowledgments
- Inspired by Excel Viewer extension architecture
- Uses R and jsonlite for data processing
- Built with VS Code Extension API
What's New in v1.2.0
✨ Major Improvements
- Universal RDS file support: Any RDS file now opens automatically
- Fixed data loading: Regular data frames now display correctly on initial load
- Eliminated scroll boundaries: Smooth infinite scrolling without 500/1000/1500 row limits
- Performance boost: 400-row prefetching prevents stuttering at boundaries
- Faster response: Scroll delay reduced from 150ms to 100ms (33% faster)
🗑️ Simplified UI
Removed rarely-used features to improve clarity:
- Column sorting (caused confusion)
- Export/Refresh buttons (cluttered UI)
- Alt+1/Alt+2 shortcuts (conflicted with system)
Kept all essential navigation shortcuts (Home, End, PageUp/Down, Ctrl+arrows, Ctrl+G)
🐛 Bug Fixes
- Fixed: Regular RDS files not displaying data on initial load
- Fixed: Tables stuck at 500/1000/1500 row boundaries
- Fixed: Stuttering when scrolling through MI datasets
- Fixed: Data format mismatch causing empty tables
Roadmap
Phase 1 ✅
- [x] Basic RDS file reading
- [x] Summary information display
- [x] WebView UI
- [x] Data frame preview
Phase 2 ✅
- [x] Search and filter with highlighting
- [x] Performance optimization with infinite scroll
- [x] Column pagination for wide datasets
- [x] Multiple Imputation (MI) data support
Phase 3 (v1.2.0) ✅
- [x] Universal RDS file support
- [x] Smooth infinite scrolling
- [x] Aggressive prefetching
- [x] UI simplification
Phase 4 (v1.2.1) ✅
- [x] Fixed debug overlay issue in production
- [x] Cleaned up packaging configuration
Enjoy exploring your R data in VS Code! 🎉