/codemirror-continue

Continue TypeScript/JavaScript block comments in CodeMirror

Primary LanguageTypeScript

@valtown/codemirror-continue

This continues block comments when you hit Enter in CodeMirror.

Like when you're typing and you're here:

/**<cursor>

When you hit enter, you want it to do this:

/**
 * <cursor>

Right? Well, this CodeMirror extension does just that. It also handles the case where you're on the last line of a comment, like

/**
 * My comment
 * <cursor>

And you hit /, it'll delete the previous space, giving you

/**
 * My comment
 */

Spectacular! Get it?

Usage

Import continueKeymap:

import { continueKeymap } from "@valtown/codemirror-continue";

Import keymap and Prec:

import { Prec } from "@codemirror/state";
import { keymap } from "@codemirror/view";

Add the keybinding to your CodeMirror instance's extensions array:

extensions: [
  basicSetup,
  // … other setup
  Prec.high(keymap.of(continueKeymap)),
],

And that's it! This will only do anything if your CodeMirror is using the JavaScript or TypeScript mode.