Quantcast
Channel: marijnhaverbeke.nl/blog
Browsing index pages (45 articles)

Collaborative Editing in Wordgard

Eleven years ago, I wrote Collaborative Editing in ProseMirror, my first stab at doing collaboration in a rich text editor. Then six years ago I wrote Collaborative Editing in CodeMirror, describing a...

View Article


Wordgard Release 0.1

I am happy to announce that my latest project, which I've been talking about for years, is now out with a first release. The project is called Wordgard. It is a new iteration of a ProseMirror-style...

View Article


TypeScript's unknown type and type variance

Type systems have a tendency of sneaking up on you. You start just trying to enforce some obvious invariants like “I shouldn't be able to assign a string value to a Boolean-typed variable”, and before...

View Article

Addressing Editor Content

Every text editor system, whether it works with plain or rich text, needs some way to refer to specific positions in the document. The very first reason one runs into this, when implementing such a...

View Article

Reference Semantics and Value Semantics

The concept of an object, record, structure, or product type occurs in almost every programming language. Being able to declare a type of value that groups a number of other values together is a...

View Article


CodeMirror 6.0

CodeMirror 6 is a new code editor library for the web, a from-scratch implementation based on the experience of building and maintaining versions 1 to 5 for the past 13 years. It aims to be more...

View Article

Facets as Composable Extension Points

An extensible system, at its base, is a system that allows people to add additional functionality that was not anticipated by the core system. A good extensible system also makes sure multiple...

View Article

CodeMirror 6 Enters Beta

I'm happy to announce that with version 0.8.0 the CodeMirror 6 project is entering its beta phase, and you're very much invited to start trying it out and poking at it. Roughly, this “beta” status...

View Article


Collaborative Editing in CodeMirror

This post describes the considerations that came up in designing the document-change data structure and built-in collaborative editing feature in the upcoming version of CodeMirror (a code editor...

View Article


CodeMirror MOSS project report

Development of CodeMirror 6 this year has been generously supported by Mozilla through their MOSS program. The MOSS program asks for a closing retrospective blog post describing the progress made...

View Article

Lezer

I keep coming across people who consider parser technology a forbidding, scary field of programming. This is nonsense—a small parser can be very, very simple, and provide a wholesome exercise in...

View Article

CodeMirror 6 Status Update

It has been almost a year since we officially announced the CodeMirror 6 project, which aims to rewrite CodeMirror (a code editor for in the browser) to align its design with the technological...

View Article

Computing Indentation from Syntax Trees

Most code editors have some concept of automatic indentation. For each language, they have some logic that can compute an appropriate indentation for a given line. They may immediately indent when you...

View Article


Extensible Extension Mechanisms

(The details at the bottom of this post no longer reflect the way things work in CodeMirror 6. See this post for an updated description.) It has become fashionable to structure big systems as a number...

View Article

ProseMirror 1.0

Two years ago, I started the ProseMirror project because I wanted to take a stab at a better approach to WYSIWYG-style editing. Today, I'm releasing version 1.0 of the library. The architecture and...

View Article


My JavaScript Build Setup

I am looking forward to the time where my node.js and browser can natively run ECMAScript 6 code. Build steps are a pain, and one of the reasons I like JavaScript in the first place is the...

View Article

Being a Resident at the Recurse Center

I spent one week being a resident at the Recurse Center in New York this November. The Recurse Center is a somewhat unusual institution. They call themselves a “programmers retreat”. That more or less...

View Article


Collaborative Editing in ProseMirror

This post describes the algorithm used to make collaborative editing work in ProseMirror. For an introduction to ProseMirror, see another post here. The Problem A real-time collaborative editing system...

View Article

ProseMirror

Sometimes I lie awake at night, feverishly searching for new ways to load myself down with more poorly-paying responsibilities. And then it comes to me: I should start another open-source project!...

View Article

More Money For Better Open-Source Software

As a programmer I create artifacts that, unlike classical commodities such as loaves of bread or toothbrushes, can be copied at zero cost. Fitting copyable things into the capitalist market economy is...

View Article
Browsing index pages (45 articles)


Latest Images