Git Product home page Git Product logo

code-runner's Introduction

Contributors Forks Stargazers Issues MIT License LinkedIn

code-runner

execute code files with ease
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Integrating with vscode
  5. Integrating with vim
  6. Contact
  7. Acknowledgments
  8. Miscelleneous

About The Project

This is a script, which compiles the code file and run it for you and delete other junk files if created during the process of compilation, all this with one command for all the languages supported by it. No more remembering different arguments for different compilers to compile, execut and debug the code.

Why this Code Runner?

  • Can detect correct version of python with 90% accuracy.
  • Has inbuilt debugger support.
  • Custom made keybindings for vim and vscode.
  • Robust code, deals with all possible cases.
    • Can execute files with spaces in their names.
    • Can execute from any location.
  • Automatically cleans executable files by default.
  • Highest number of languages supported compared to its alternatives.

Built With

This project is made with following langs/frameworks.

(back to top)

Getting Started

Installation

To install and configure the project on your system locally, use suitable method:

Install using CURL

  1. Copy and run the following command to install the run binary on your system.

    curl https://raw.githubusercontent.com/proffapt/code-runner/main/.setup/install.sh | bash
  2. Run the code

    run my_code.c

    OR

    run ~/path/to/my_code.c

Install using BREW

brew tap proffapt/brewtap
brew install code-runner

(back to top)

Uninstallation

To uninstall the tool from your system execute the following command, depending upon your installation

Uninstall using CURL

curl https://raw.githubusercontent.com/proffapt/code-runner/main/.setup/uninstall.sh | bash

Uninstall using BREW

brew uninstall code-runner

(back to top)

Usage

(back to top)

Examples

  • Compilation and Execution

    image
  • Debugging

    image
  • Python

    image

(back to top)

Integrating with vscode

Create custom keybindings for vscode to use this script more conveniently in vscode, you can copy my keybindings from vscode-keybindings into your keybindings.json

  • alt+space

    • If there is no instance of terminal: Spawns a new terminal > shifts the focus to it.
    • If the instance already exists and focus is on editor pane: Focuses the terminal.
    • If the focus is on terminal: Focuses the editor pane keeping the terminal at it's place.
  • cmd+contextmenu -- use twice for execution

    • If there is no terminal instance: Spawns a new terminal > shifts focus to it(DOESN"T EXECUTE THE CODE, press again to execute the code).
    • If instance exists and focus is on editor pane: Shifts focus to terminal(DOESN"T EXECUTE THE CODE, press again to execute the code).
    • If the focus is on terminal: Executes the code.

    ^ NOTE: Code execution is also possible even if the code file is not directly inside the folder opened in vscode.

Stores previous execution history, as there is no new terminal created everytime, it's created only when not present else uses the same terminal

cr-vscode-demo.mp4

(back to top)

Integrating with vim

Create custom keybindings for {Neo}vim to use this script more conveniently in {Neo}vim, you can copy my keybindings from the following files to your vim configuration file.

  • rr

    • In NORMAL mode: Saves the file > creates a new floaterm buffer > shifts focus to it > runs the code(CLOSE the buffer with any key after completion of execution).

Doesn't store previous execution history, as there is a new buffer created everytime

  • ff

    • In NORMAL mode with no existing floaterm buffer: Saves the file > creates a new floaterm buffer > shifts focus to it > runs the code.
    • In NORMAL mode with existing floaterm buffer but focus on code buffer: Saves the file > shifts focus to floaterm buffer > runs the code.
    • In NORMAL mode with existing floaterm buffer and focus on flaoterm buffer: Hides the floaterm buffer > focuses on the working file's buffer.
    • In TERMINAL mode: Hides active floaterm buffer > focuses on the working file's buffer.

Stores previous execution history, as there is no new buffer created everytime, it's created only when not present else uses the same buffer

cr-vim-demo.mp4

(back to top)

Contact

📫 Arpit Bhardwaj ( aka proffapt ) - proffapt's Twitter proffapt's Telegram proffapt's LinkedIn proffapt's mail proffapt's forum for cybernity

(back to top)

Acknowledgments

(back to top)

Miscelleneous

Do consider looking at other paradigms of this documentation

(back to top)

code-runner's People

Contributors

proffapt avatar prrockzed avatar yoganshsharma avatar cyberknight777 avatar grm34 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.