Making VSCode extensions ON-THE-FLY, without the ceremony of creating a new node project!

Overview

Logo

easy-extensibility

Extend VSCode without the ceremony of making a full extension! Just write your code anywhere and it'll be part of VSCode!

Tour of the extension

Features

  • New keybinding: cmd+E to evaluate a selection of JavaScript, or the entirety of the current line.
    • Use shift+cmd+E to insert the result onto the next line.
  • New keybinding: cmd+H to provide a command pallet for user-defined commands using this extension.
  • The easy-extensibility Extension API, or “E API”, which acts as a high-level user-friendly alterative to the default vscode Extension API.

Accessibility

  • 🚴 Open the tutorial to learn more about using cmd+E by invoking cmd+h tutorial
  • 📚 To learn about “saving reusable functions and having them load automatically”, please invoke cmd+h find users init.js file, or provide a template

Extensive Docs

The E API is well-documented; for example the E.readInput method's docs even suggest an example user extension. 🚀 Extensive Docs

Anaphoric Usage (with code completion & docstrings)

The current implementation treats VSCode as if it were dynamically-scoped: Any open editor may mention E, commands, vscode with no ceremonial import of any kind!

  • This is similar to the use of the keyword this in object-oriented programming: It's an implicitly introduced argument!

However, for discovarability and example uses, it would be nice to have code completetion: Just write E. and wait a second to see possible completions ---or write the name of the method you want to use and if it's part of the E API, you'll also get completion as shown below.

Code completetion with docstrings

A growing user-friendly API!

Growing API

Why this (meta)extension?

There is essentially only one step () to making an extension. 🤗 Sharing an extension, such as a tiny 5-line command, should be as easy as having that defintion code readily available.

In constrast, the default approach to making a VSCode extension is as follows:

  1. 😱 Make a new NodeJS project, say with yo code as per https://code.visualstudio.com/api/get-started/your-first-extension
  2. Actually write your extension's code
  3. 😱 Run your code in a dedicated sandbox with F5, far from your code
  4. 😱 Try your extension; stop the sandbox; alter your code; repeat.
  5. Now to actually make use of your extension, you should pacakge it with vsce package

This approach doesn't encourage making extensions ---since there's so much ceremony--- and it, likewise, doesn't encourage sharing/packaging up the resulting (tiny) extensions.

🔥 Invoke cmd+h tutorial to see the tutorial, which concludes with a comparison of our init.js-style extensions versuses thats of the default VSCode style.

You might also like...

Bypass YouTube ads! (Web Extensions)

Bypass YouTube ads! (Web Extensions)

bytads Bypass YouTube ads! Supported YouTube Advertising Formats Skippable video ads, Overlay ads! Other ad formats will be supported soon. Usage Inst

Apr 3, 2022

PHEX, but it shows up as Google Docs in the extensions. Useful if you're using it in class.

PHEX, but it shows up as Google Docs in the extensions. Useful if you're using it in class.

PHEX, but it shows up as Google Docs in the extensions. Useful if you're using it in class.

Oct 28, 2022

Chrome Extensions are something which we use very frequently in our day-to-day life for example Grammarly

Chrome-Extension Chrome Extensions are something which we use very frequently in our day-to-day life for example Grammarly, In this project similarly,

Dec 14, 2022

Zigbee2MQTT Extensions

Zigbee2MQTT Extensions What are extensions? Read this article automations-extension.js Allows you to set up simple automations directly in z2m Example

Jan 1, 2023

Extract data-like things from a website on the fly.

There-should-be-an-API Oh, I think this website needs an API. Extract data-like things from a website on the fly. Demo The demo API is hosted on a 256

Mar 26, 2022

Asciifly is a webapp where you can asciify images and youtube videos on the fly.

Asciifly is a webapp where you can asciify images and youtube videos on the fly.

Asciifly Asciifly is a webapp where you can asciify images and youtube videos on the fly. Come visit at https://asciifly.com Hosting I'm hosting this

May 23, 2022

The Remix Stack for deploying to Fly with Supabase, authentication, testing, linting, formatting, etc.

The Remix Stack for deploying to Fly with Supabase, authentication, testing, linting, formatting, etc.

Remix Supa Fly Stack Learn more about Remix Stacks. npx create-remix --template rphlmr/supa-fly-stack What's in the stack Fly app deployment with Doc

Jan 7, 2023

The Remix Blog Stack for deploying to Fly with MDX, SQLite, testing, linting, formatting, etc.

The Remix Blog Stack for deploying to Fly with MDX, SQLite, testing, linting, formatting, etc.

Remix Speed Metal Stack Learn more about Remix Stacks. npx create-remix --template Girish21/speed-metal-stack Remix Blog 📖 This blog starter template

Jan 2, 2023

The Remix Stack for deploying to Fly with SQLite, authentication, testing, linting, formatting, etc.

The Remix Stack for deploying to Fly with SQLite, authentication, testing, linting, formatting, etc.

Remix Indie Stack Learn more about Remix Stacks. npx create-remix --template remix-run/indie-stack What's in the stack Fly app deployment with Docker

Dec 30, 2022
Comments
  • Refactor the extension to be cross-platform

    Refactor the extension to be cross-platform

    This extension is designed to work on macOS (e.g. file paths, keyboard shortcuts). But VS Code runs on Linux and Windows too. In its current state the extension cannot be used on these operating systems, which is unexpected (and is not stated in the README) and a pity (because it is very useful).

    opened by mardukbp 0
Owner
Musa Al-hassy
Engineering Manager & JS Team Lead ;; Programming language enthusiast ;; Emacs & Org-mode Promoter ;; Computing Science PhD ;; Previously a Sessional Lecturer
Musa Al-hassy
Bookmarklet exploit that can force-disable extensions installed on Chrome. Also has a very fancy GUI to manage all extensions!

ext remover Bookmarklet exploit that can force-disable any extension installed on Google Chrome Instructions Here are the instructions to using this e

Echo 124 Jan 6, 2023
LiveTabs is a Javascript library that allows you to create and manage tabs on the fly. This library gives the ability to your application to act like browser tabs, making dynamic tabs.

LiveTabs Table of content Description Goals Technologies Setup Description LiveTabs is a Javascript library that allows you to create and manage tabs

Hossein Khalili 3 May 3, 2022
Fallback for SVG images by automatically creating PNG versions on-the-fly

SVGMagic - Cross browser SVG This repository is no longer actively mainted. It has proven to be very usefull back in 2013, but these days SVGs are sup

Dirk Groenen 596 Jul 27, 2022
Making(Creating , Modifying , Deleting) Lists you have to do 😎 Built Only with Html, JavaScript, Css

To-Do_App Live Demo You Can See The Project Live On: Here Description A Simple To-Do App Mainly Written In Javascript The project structure is kinda l

null 6 Nov 2, 2022
Examples and challenges of my video about Creating and testing a complete Node.js Rest API (Without frameworks)

Building a complete Node.js WebApi + testing with no frameworks Welcome, this repo is part of my youtube video about Creating and testing a complete N

Erick Wendel 120 Dec 23, 2022
We are a group of videogame URJC students making a brand new Phaser3.0 browser multiplayer game. Come and support us!

COOKIE MAYHEM - JUEGOS EN RED Este proyecto está sujeto a cambios. Somos un grupo de estudiantes de Diseño y Desesarrollo de Videojuegos en la Univers

null 6 Dec 19, 2022
A simple Node.js code to get unlimited instagram public pictures by every user without api, without credentials.

Instagram Without APIs Instagram Scraping in August 2022, no credentials required This is a Node.js library, are you looking for the same in PHP? go t

Francesco Orsi 28 Dec 29, 2022
Used for creating a out-of-the-box template without additional configuration.

ou Used for creating a out-of-the-box template without additional configuration. Templates Vue3 Lite Template Used for some simple web app Vue3 + Vite

Dewey Ou 6 Jul 17, 2022
An npm package with Tailwind CSS utility classes for creating responsive grid columns without media queries using auto fit.

Grid Auto Fit for Tailwind CSS A plugin that helps you create a responsive grid layout in Tailwind CSS without using media queries. It uses the auto-f

Thirus 80 Dec 28, 2022