Run! - VS Code Extension 🚀

A powerful and intuitive VS Code extension that adds a convenient run button to the status bar for multiple programming languages. Execute your code instantly with one click or a simple keyboard shortcut!
🌐 Official Website & Documentation
Visit our comprehensive documentation website: dabbh.github.io
What's on the Website:
- 📚 Complete User Guide: Step-by-step tutorials for all features
- 🔧 Installation Guide: Detailed setup instructions for all platforms
- ⚙️ Configuration Manual: Advanced .Run file configuration examples
- 🚀 Quick Start Guide: Get running in minutes
- 🎯 Language-Specific Guides: Tailored tutorials for each supported language
- 💡 Tips & Tricks: Pro tips for maximum productivity
- 🆘 Troubleshooting: Solutions to common issues
- 📝 Examples: Real-world code examples and use cases
🆕 Latest Updates (v0.4.0)
🎓 Interactive Tutorial System
- Getting Started Walkthrough: Step-by-step introduction for beginners
- Advanced Tutorial: Professional techniques and optimization strategies
- Click-through Navigation: Seamless transition from basic to advanced features
- Hands-on Learning: Interactive steps with completion tracking
🔐 Enhanced Security Features
- Mandatory Directory Navigation: Automatic
cd
to file directory before execution
- Cross-Platform Command Building: Smart shell detection (PowerShell vs Bash)
- Safe Path Handling: Proper escaping of paths with spaces and special characters
- Execution Context Safety: Ensures code runs in the correct directory
- Smart Auto-Completion: Intelligent suggestions for .Run file configuration
- Improved Error Handling: Better error messages and graceful failure recovery
- Enhanced Cross-Platform Support: Optimized commands for Windows, macOS, and Linux
- Memory Optimization: Reduced extension footprint and faster startup
🎨 User Experience Enhancements
- Intuitive Walkthroughs: Learn features without leaving VS Code
- Professional Documentation: Complete English documentation website
- Advanced Configuration Options: Power-user features for complex projects
- Team Collaboration Tools: Configuration sharing and CI/CD integration guides
✨ Key Features
- 🎯 One-Click Execution: Run your code instantly from the status bar
- ⌨️ Keyboard Shortcut: Quick execution with
Ctrl+Cmd+R
- 🌍 Multi-Language Support: Supports 13+ popular programming languages including LaTeX
- 🔍 Smart Detection: Automatically detects file type and shows appropriate run button
- 💻 Terminal Integration: Executes code in VS Code's integrated terminal
- 💾 Auto-Save: Automatically saves your file before execution
- 🛡️ Error Handling: Gracefully handles compilation and runtime errors
- 🔄 Re-run Capability: Easy to re-run code after fixing bugs
- ⚙️ Custom Configuration: Support for
.Run
files with language-specific settings
- 🎛️ Variable Substitution: Use
{filename}
and {filenameWithExt}
placeholders
- 📝 Default Commands: Smart defaults for C files without user prompts
- 🎓 Interactive Tutorials: Built-in walkthrough system for learning all features
- 🔐 Enhanced Security: Mandatory directory navigation and safe execution
- 📚 Professional Documentation: Comprehensive guides on our website
🚀 New in Version 0.4.0
🎓 Interactive Learning System
The extension now includes a comprehensive tutorial system:
Getting Started Tutorial
- One-Click Learning: Click the tutorial button to start
- Step-by-Step Guide: Learn basic features interactively
- Real-Time Examples: Practice with actual code files
- Progress Tracking: Visual completion indicators
Advanced Techniques Tutorial
- Professional Workflows: Learn expert-level configurations
- Cross-Platform Mastery: Master Windows, macOS, and Linux setups
- Performance Optimization: Debug builds, release optimizations
- Team Collaboration: CI/CD integration and configuration sharing
- Power User Features: Dynamic configurations and advanced scripting
🔐 Security & Reliability Enhancements
- Automatic Directory Navigation: Always executes code in the correct directory
- Cross-Platform Command Safety: Smart shell detection and proper escaping
- Safe Mode by Default: Temporary executables prevent file conflicts
- Robust Error Handling: Better error messages and recovery
🌐 Professional Documentation
Our new website at dabbh.github.io provides:
- Complete Installation Guides for all platforms
- Language-Specific Tutorials with real examples
- Advanced Configuration Examples for complex projects
- Troubleshooting Database with solutions to common issues
- Best Practices Guide for professional development
🎯 How to Access New Features
- Start Tutorial: Command Palette → "Run!: Getting Started Tutorial"
- Advanced Tutorial: Complete basic tutorial, then click "Advanced Tutorial"
- Documentation: Visit dabbh.github.io for comprehensive guides
- Quick Config: Command Palette → "Run!: Create .Run File" for instant setup
📦 Installation
🌐 Complete Installation Guide
For detailed installation instructions with screenshots and troubleshooting, visit our website:
dabbh.github.io/installation
Quick Installation Options
From VSIX (Recommended)
- Download the latest
.vsix
file from releases
- Open VS Code
- Press
Ctrl+Shift+P
(Windows/Linux) or Cmd+Shift+P
(macOS)
- Type "Extensions: Install from VSIX"
- Select the downloaded file
- Reload VS Code when prompted
From Marketplace
- Open VS Code Extensions view (
Ctrl+Shift+X
)
- Search for "Run!" by Danbh
- Click Install
- Start using immediately!
Post-Installation
- Start the Tutorial: Command Palette → "Run!: Getting Started Tutorial"
- Visit Documentation: dabbh.github.io for complete guides
- Configure Languages: See our Configuration Guide for your specific setup
🎯 Usage
🎓 New User? Start Here!
Interactive Tutorial: Command Palette (Ctrl+Shift+P
) → "Run!: Getting Started Tutorial"
The built-in tutorial will guide you through all features step-by-step. After completing the basic tutorial, continue with the Advanced Tutorial for professional techniques.
Quick Start Methods
- Open a file with supported extension (see language table below)
- Look for the "▶ Run [Language]" button in the status bar
- Click the button to execute your code instantly
Method 2: Keyboard Shortcut
- Press
Ctrl+Cmd+R
(Linux/Windows) or Ctrl+Cmd+R
(Mac)
- Works only when a supported file is active in the editor
Method 3: Command Palette
- Press
Ctrl+Shift+P
→ Type "Run!: Run Code"
- Available commands:
Run!: Run Code
- Execute current file
Run!: Create .Run File
- Set up custom configuration
Run!: Getting Started Tutorial
- Learn all features
Run!: Advanced Tutorial
- Master professional techniques
Execution Output
- View results in VS Code's integrated terminal
- Each execution creates a new terminal: "Run [Language]"
- Terminal automatically opens and displays output
- New: Automatic directory navigation ensures code runs in correct location
📚 Learn More
🛠️ Supported Languages
Language |
File Extension |
Command Used |
Requirements |
Python |
.py |
python3 "filename.py" (Linux/macOS)
python "filename.py" (Windows) |
Python 3.x |
Java |
.java |
javac *.java && java classname |
JDK |
C |
.c |
gcc "filename.c" -o output && ./output (Linux/macOS)
gcc "filename.c" -o output.exe && output.exe (Windows) |
GCC |
C++ |
.cpp |
g++ "filename.cpp" -o output && ./output |
G++ |
JavaScript |
.js |
node "filename.js" |
Node.js |
TypeScript |
.ts |
npx ts-node "filename.ts" |
Node.js + ts-node |
Go |
.go |
go run "filename.go" |
Go compiler |
Rust |
.rs |
rustc "filename.rs" -o output && ./output |
Rust |
PHP |
.php |
php "filename.php" |
PHP |
Ruby |
.rb |
ruby "filename.rb" |
Ruby |
C# |
.cs |
dotnet run |
.NET SDK |
Dart |
.dart |
dart run "filename.dart" |
Dart SDK |
LaTeX |
.tex |
pdflatex "filename.tex" && xdg-open output.pdf (Linux)
pdflatex "filename.tex" && open output.pdf (macOS)
pdflatex "filename.tex" && start output.pdf (Windows) |
LaTeX distribution |
Run! automatically detects your operating system and uses the appropriate commands:
- 🐧 Linux: Uses
python3
, xdg-open
, no .exe
files for compiled languages
- 🍎 macOS: Uses
python3
, open
, no .exe
files for compiled languages
- 🪟 Windows: Uses
python
, start
, creates .exe
files for compiled languages
📋 Requirements
Make sure you have the required tools installed for the languages you want to use:
- Python: Python 3.x interpreter
- Java: JDK (Java Development Kit)
- C/C++: GCC/G++ compiler
- Node.js: For JavaScript and TypeScript
- Go: Go programming language
- Rust: Rust programming language
- PHP: PHP interpreter
- Ruby: Ruby interpreter
- C#: .NET SDK
- Dart: Dart SDK
- LaTeX: LaTeX distribution (TeX Live, MiKTeX, etc.)
TypeScript Additional Setup
For TypeScript support, install ts-node globally:
npm install -g ts-node
🔧 Quick Setup
Ubuntu/Debian
# Essential tools
sudo apt update
sudo apt install python3 default-jdk build-essential nodejs npm php ruby-full
# Additional languages
curl -OL https://golang.org/dl/go1.21.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# .NET SDK
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update && sudo apt install -y dotnet-sdk-8.0
# TypeScript support
npm install -g ts-node
# LaTeX (Ubuntu/Debian)
sudo apt install texlive-full
Windows
macOS
# Using Homebrew
brew install python3 openjdk node go rust php ruby
xcode-select --install
# .NET SDK
brew install --cask dotnet
# LaTeX
brew install --cask mactex
# TypeScript support
npm install -g ts-node
📝 Examples
Python Example
print("Hello World!")
name = input("What's your name? ")
print(f"Hello {name}!")
Java Example
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
C Example
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}
LaTeX Example
\documentclass{article}
\begin{document}
Hello World!
\end{document}
⚙️ Custom Configuration with .Run Files
📚 Complete Configuration Guide: dabbh.github.io/configuration
Create a .Run
file in your project directory to customize execution commands for different languages. The extension automatically configures VS Code to treat .Run
files as INI files for proper syntax highlighting and editing support.
🚀 Quick Setup
Command Palette → Run!: Create .Run File
→ Select Languages → Ready!
Configuration Priority
The extension searches for .Run files in the following order:
- Local .Run file - In the same directory as your code file
- User Global .Run file - In user's home directory:
- Windows:
%USERPROFILE%\.vscode\global.Run
- macOS:
~/.vscode/global.Run
- Linux:
~/.vscode/global.Run
- Workspace Global .Run file - In workspace
.vscode/global.Run
(fallback)
- Built-in defaults - Extension's default settings
Available Commands
- Create .Run File: Create a project-specific configuration file
- Open .Run File: Open existing .Run file (local or global)
- Create Global .Run File: Create a user-wide configuration file
- Edit Global .Run File: Edit the global configuration file
🌐 Advanced Configuration Examples
Visit our website for comprehensive configuration guides:
Configuration Priority
The extension searches for .Run files in the following order:
- Local .Run file - In the same directory as your code file
- User Global .Run file - In user's home directory:
- Windows:
%USERPROFILE%\.vscode\global.Run
- macOS:
~/.vscode/global.Run
- Linux:
~/.vscode/global.Run
- Workspace Global .Run file - In workspace
.vscode/global.Run
(fallback)
- Built-in defaults - Extension's default settings
Commands
- Create .Run File: Create a project-specific configuration file
- Open .Run File: Open existing .Run file (local or global)
- Create Global .Run File: Create a user-wide configuration file in
~/.vscode/global.Run
- Edit Global .Run File: Edit the global configuration file
The extension automatically handles platform-specific differences:
- Executable extensions:
.exe
on Windows, none on Unix systems
- PDF viewers:
start
on Windows, open
on macOS, xdg-open
on Linux
- Command syntax: PowerShell
if ($?)
on Windows, &&
on Unix systems
- Path separators: Automatically handled by VS Code
# Custom run configurations
[c]
compileFlags: -Wall -Wextra -g -std=c99 # Optional: add debugging and warnings
runCommand: ./{filename}
# safeMode: true by default (creates temporary executables)
# For simple compilation without extra flags, omit compileFlags or use: compileFlags:
[cpp]
compileFlags: -Wall -Wextra -std=c++17 -O2
runCommand: ./{filename}
# safeMode: true by default
[python]
fullCommand: python3 {filenameWithExt} --verbose
[rust]
compileFlags: --release
runCommand: ./{filename}
safeMode: false # Explicitly disable safe mode for this project
[latex]
fullCommand: pdflatex {filenameWithExt} && bibtex {filename} && pdflatex {filenameWithExt} && xdg-open {filename}.pdf
Available Variables
{filename}
- File name without extension (e.g., "main" for "main.c")
{filenameWithExt}
- Full file name (e.g., "main.c")
Configuration Options
compileFlags
- Custom compilation flags (for compiled languages)
runCommand
- Custom run command (used with compileFlags)
fullCommand
- Complete custom command (overrides default behavior)
safeMode
- For compiled languages (C, C++, Rust): Creates temporary executable files to avoid overwriting existing files
- Default:
true
- Creates executable with timestamp suffix and deletes it after running (recommended)
safeMode: false
- Uses standard executable names (may overwrite existing files)
- If not specified in
.Run
file, defaults to true
for safety
Safe Mode Examples
[c]
# Simple compilation (default behavior)
runCommand: ./{filename}
# safeMode: true by default (no need to specify)
[c]
# Advanced compilation with debugging and warnings
compileFlags: -Wall -Wextra -g -std=c99
runCommand: ./{filename}
[cpp]
compileFlags: -std=c++17 -O2
runCommand: ./{filename}
safeMode: false # Explicitly disable safe mode
[rust]
compileFlags: --release
runCommand: ./{filename}
# Uses safe mode by default
Supported in .Run files
All supported languages can be customized: [c]
, [cpp]
, [python]
, [java]
, [javascript]
, [typescript]
, [go]
, [rust]
, [php]
, [ruby]
, [csharp]
, [dart]
, [latex]
run

🐛 Troubleshooting
- Ensure you have a supported file open
- Check that the file extension is correct
- Try reloading VS Code:
Ctrl+Shift+P
→ "Developer: Reload Window"
Code Not Running
- Verify the required compiler/interpreter is installed
- Check for syntax errors in your code
- Ensure you're in the correct directory
🤝 Contributing
We welcome contributions! Here's how you can help:
- Fork the Repository: Create your own copy
- Create Feature Branch:
git checkout -b feature/amazing-feature
- Commit Changes:
git commit -m 'Add amazing feature'
- Push to Branch:
git push origin feature/amazing-feature
- Open Pull Request: Submit your changes for review
Ways to Contribute
- 🐛 Bug Reports: Submit issues on GitHub
- 💡 Feature Requests: Suggest new functionality
- 📝 Documentation: Help improve our guides
- 🌍 Translations: Help translate the extension
- 💻 Code: Contribute new features or fixes
Visit our Contributing Guide for detailed information.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
👨💻 Author
DanBH
🙏 Acknowledgments
- Thanks to the VS Code team for the excellent extension API
- Special thanks to all contributors and users who provided feedback
- Community support that made this extension better with each release
- If you love this extension, please give us ⭐⭐⭐⭐⭐ on GitHub and the VS Code Marketplace!
Stay Updated
- ⭐ Star the Repository: for me 😆
- 📖 Visit Documentation: dabbh.github.io for latest guides
- 🐛 Report Issues: Help us improve by reporting bugs
- 💡 Request Features: Share your ideas on GitHub
Enjoy coding with Run! 🎉
Transform your VS Code into a powerful code execution environment. From beginner-friendly one-click runs to professional CI/CD integration - Run! grows with you.
Get Started: Open Command Palette → "Run!: Getting Started Tutorial"
🛠️ Quick .Run File Creation
Create a .Run
configuration file instantly:
- Open Command Palette:
Ctrl+Shift+P
(Windows/Linux) or Cmd+Shift+P
(macOS)
- Type:
Create .Run File
- Select Languages: Choose which programming languages to include
- Generated: A
.Run
file with templates for your selected languages
Features:
- 🎯 Language Selection: Pick specific languages or get a complete template
- 📝 Ready-to-use Templates: Pre-configured settings for each language
- 🔄 Overwrite Protection: Asks before overwriting existing files
- 📂 Auto-open: Opens the created file for immediate editing
- 🎨 Syntax Highlighting: Automatically configured as INI file for better editing experience