All Projects → bootstrapworld → codemirror-blocks

bootstrapworld / codemirror-blocks

Licence: other
A library for building language-specific, CodeMirror-friendly editors that are a11y-friendly.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
racket
414 projects
Less
1899 projects
HTML
75241 projects

Projects that are alternatives of or similar to codemirror-blocks

Ted2Go
Ted2Go IDE is a leading IDE for Monkey2 programming language. Written on Monkey2! Based on original Ted2.
Stars: ✭ 16 (-27.27%)
Mutual labels:  programming, ide
React Codemirror
CodeMirror component for React. @codemirror https://uiwjs.github.io/react-codemirror/
Stars: ✭ 142 (+545.45%)
Mutual labels:  ide, codemirror
WordIDE
A tool that helps you write code in your favorite IDE: your word processor!
Stars: ✭ 37 (+68.18%)
Mutual labels:  programming, ide
Elementary Ide
An unofficial elementary OS (Vala) oriented IDE.
Stars: ✭ 75 (+240.91%)
Mutual labels:  programming, ide
Robertalab
IMPORTANT: this repository statys for HISTORICAL reasons only. The actively supported repository is "openroberta-lab". In the "develop" branch of this repository please read the files "IMPORTANT_CHANGE.md" and "README.md". Thank you very much.
Stars: ✭ 121 (+450%)
Mutual labels:  programming, ide
openroberta-lab
The programming environment »Open Roberta Lab« by Fraunhofer IAIS enables children and adolescents to program robots. A variety of different programming blocks are provided to program motors and sensors of the robot. Open Roberta Lab uses an approach of graphical programming so that beginners can seamlessly start coding. As a cloud-based applica…
Stars: ✭ 98 (+345.45%)
Mutual labels:  programming, ide
Pylon
Pylon IDE, a Cloud9 v2 descendant with some added extras and support for modern node >= 10.20.1 (including v11.x, v12.x, v13.x, v14.x, v15.x). OSS licensed.
Stars: ✭ 156 (+609.09%)
Mutual labels:  programming, ide
magento-advanced-code-editor
An advanced code editor that'll make it much easier to write clean markup for CMS pages, static blocks, product pages and Transactional Emails.
Stars: ✭ 19 (-13.64%)
Mutual labels:  ide, codemirror
python-tutorial-for-beginners
Python Tutorial for Beginners with 500 Code Examples
Stars: ✭ 167 (+659.09%)
Mutual labels:  programming
language-chef
Development repository for the language-chef plugin for the Atom text editor
Stars: ✭ 16 (-27.27%)
Mutual labels:  ide
ink
The flexible TypeScript Markdown editor that powers https://octo.app
Stars: ✭ 82 (+272.73%)
Mutual labels:  codemirror
sortboard
A small ES6 library for easy sorting and filtering of elements.
Stars: ✭ 29 (+31.82%)
Mutual labels:  blocks
exlcode-chrome
EXLcode - VS Code-based Online IDE Chrome Extension
Stars: ✭ 18 (-18.18%)
Mutual labels:  ide
SBTCVM-Gen2-9
SBTCVM is a virtual machine implementation of a balanced ternary (base 3) computer. Features several compiled languages for ternary software development.
Stars: ✭ 32 (+45.45%)
Mutual labels:  programming
ilrx
I Love Ruby Examples
Stars: ✭ 35 (+59.09%)
Mutual labels:  programming
tutorials as code
so that stuff read/seen don't get muddled up with time
Stars: ✭ 42 (+90.91%)
Mutual labels:  programming
medium-code
A place to store my jupyter notebooks for my medium articles
Stars: ✭ 27 (+22.73%)
Mutual labels:  programming
ayushi7rawat
Ayushi Rawat's README
Stars: ✭ 49 (+122.73%)
Mutual labels:  programming
aino-theme
A Gutenberg-ready WordPress theme.
Stars: ✭ 107 (+386.36%)
Mutual labels:  blocks
BlocksIDE
Complete Blocks js development environment including js to blocks and blocks to js conversions
Stars: ✭ 56 (+154.55%)
Mutual labels:  ide

Build Status Coverage Status Code Climate

codemirror-blocks

codemirror-blocks is a project to make programming languages editable using visual blocks.

About this repository

This repository contains the code for all the packages maintained by the codemirror-blocks team, including the core codemirror-blocks library, and various language modules that implement block editors for individual languagues using the core library. Documentation for individual packages can be found in their respective directories:

  • codemirror-blocks - the core library used to make block editors. Start here if you'd like to implement a new block editor for a programming language of your choice.
  • wescheme-blocks - a block editor for the wescheme programming language.

Contributing Changes

To contribute changes to any of the packages in this repository, you'll need to setup a development environment.

Dev Environment

To get your dev environment up and running, follow these steps.

  1. Clone the repository onto your local machine

  2. Install dependencies with npm

    npm install
    

    Note: This repository uses npm workspaces, so you'll need to use npm v7 or later.

  3. build the library and generate type declarations

    npm run build --workspaces
    npm run build-types --workspaces --if-present
    
  4. run tests to confirm everything is setup correctly. This will run all tests in all sub-packages

    npm run test
    

Development Workflow

At any given time, you'll probably be working in only one of the repo's sub-packages. Each package provides it's own set of npm scripts to help with the build/test process. You can either run these scripts from the repository root and specify which package you are working on with --workspace=<package-name> or you can run the scripts from that packages directory without the --workspace setting. The following assumes you are doing the latter.

CMB is written in a combination of typescript and javascript, with some language extensions (like jsx syntax) that are handled by babel. As such, before any code can actually be executed, it must be transpiled to javascript. The easiest way to do this during development is to run each of the following commands in their own terminal:

  1. Continuously transpile code from the src/ directory to the lib/ directory with babel:

    npm run build-watch
    
  2. Continuously run typechecks and generate type declaration files in lib/ with typescript:

    npm run build-types-watch
    
  3. With these two processes running, you can then start the development server in yet another terminal with:

    npm start
    

    then open http://localhost:8080 in your browser to see CMB running on a web page. This web page just executes the example javascript from example/ediotor-example.js, but will automatically update whenever any code is changed.

  4. Finally, you can also run tests continuously whenever code is changed. This should always be done from the repository root to make sure you don't inadvertantly break an API that another package is depending on.

    npm run test-watch
    

Coverage reports can be generated by passing the --coverage flag to the test command:

npm test -- --coverage

The reports will be written to the .coverage/ directory.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].