Skip to content

Instantly share code, notes, and snippets.

@jcmoore
jcmoore / index.html
Created June 13, 2022 23:07
SuperbList -- starter kit for client-side database synchronization patterns
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
<script type="module">
import { createSignal, onCleanup, onMount } from "https://cdn.skypack.dev/solid-js";
import { render } from "https://cdn.skypack.dev/solid-js/web";
import html from "https://cdn.skypack.dev/solid-js/html";
@jcmoore
jcmoore / index.js
Last active February 12, 2021 10:03
VS Code Augmentation
// document.querySelector(".monaco-breadcrumbs").addEventListener("click", copyMonacoBreadcrumbFileContextToClipboard)
function copyMonacoBreadcrumbFileContextToClipboard () {
const text = document.querySelector(".monaco-breadcrumbs").innerText;
const str = text.slice(text.indexOf("\n", text.lastIndexOf(".") + 1) + 1)
.split("\n")
.map((line, index) => new Array(index).fill("|\t").join("") + line)
.join("\n");
const el = document.createElement('textarea');
el.value = str;
document.body.appendChild(el);
@jcmoore
jcmoore / BestTree.js
Last active November 13, 2017 06:59
BestTree.js -- humble B+Tree with configurable aggregations and search through arbitrary "secondary indexes"
// Code formatted (ruthlessly and) automatically with Prettier
// number of $values being used
const NODE_LIMIT = Symbol("BEST_NODE_LIMIT");
// cumulative count of leaf $values (redundant with limit and/or last bound...)
const NODE_SIZE = Symbol("BEST_NODE_SIZE");
// "integral" of "size" for each stem node
const NODE_BOUND = Symbol("BEST_NODE_BOUND");
// left-most of leaf $values for each stem node
const NODE_EDGE = Symbol("BEST_NODE_EDGE");
@jcmoore
jcmoore / degenerate.js
Last active October 25, 2017 06:10
degenerate.js -- promise fulfilling yield handler for generator functions
function degenerate (generator) {
return function () {
var iterator = generator.apply(this, arguments);
return new Promise(function fn (resolve, reject) {
return pass(void 0);
function pass(value) {
coop.call(iterator.next, iterator, value, resolve, reject, pass, fail);
@jcmoore
jcmoore / radixSort.js
Last active October 22, 2017 20:53
radixSort.js -- recursive bucket sorting on one and two dimensional arrays of integers
function _deorderList(skip, to, inverter, list, begin, end) {
return _deorderShadowedList(
skip,
to,
inverter,
list,
begin,
list,
begin,
end
@jcmoore
jcmoore / uidget.js
Created May 31, 2017 05:57
uidget.js
var Ui = (function (s8) {
var Uidget = s8("Uidget", {
uiml: Error(),
uimlUpdate: Error(),
uimlAssemble: Error(),
uimlProcess: Error(),
@jcmoore
jcmoore / sigilate.js
Created May 31, 2017 05:42
sigilate.js -- utilities for symbol-centric packages
function sigilate (prefix, nvps) {
return Object.keys(nvps).reduce(function (result, name) {
var err = nvps[name];
var id = err.message || name;
var sigil = Symbol(prefix ? prefix + "." + id : id);
err.message = id;
err.toString = function () {
return sigil;
};
@jcmoore
jcmoore / syntax-guide.js
Last active May 25, 2017 06:03
symbolic.js syntax style-guide
// symbolic.js syntax style-guide
(function () {
function _getPropDefs (value) {
return Object.getOwnPropertyNames(value).concat(
Object.getOwnPropertySymbols(value)
).reduce(function (target, field) {
target[field] = Object.getOwnPropertyDescriptor(value, field);
@jcmoore
jcmoore / es6.ebnf
Created May 3, 2017 03:01 — forked from avdg/es6.ebnf
ES6 bnf grammer - See https://avdg.github.io/es6.xhtml
/* ebnf file for es 6 - MAY CONTAIN ERRORS / DISAMBIGUITY */
Grammer::= Statement
/* Lexical grammer */
SourceCharacter ::= #x0000-#x10FFFF
InputElementDiv ::= WhiteSpace | LineTerminator | Comment | CommonToken | DivPunctuator | RightBracePunctuator
InputElementRegExp ::= WhiteSpace | LineTerminator | Comment | CommonToken | RightBracePunctuator | RegularExpressionLiteral
InputElementRegExpOrTemplateTail ::= WhiteSpace | LineTerminator | Comment | CommonToken | RegularExpressionLiteral | TemplateSubstitutionTail
InputElementTemplateTail ::= WhiteSpace | LineTerminator | Comment | CommonToken | DivPunctuator | TemplateSubstitutionTail
WhiteSpace ::= "<TAB>" | "<VT>" | "<FF>" | "<SP>" | "<NBSP>" | "<ZWNBSP>" | "<USP>"
@jcmoore
jcmoore / travasti-ts.js
Last active September 11, 2017 05:58
travasti -- AST traversal
// https://raw.githubusercontent.com/mozilla/source-map/182f4459415de309667845af2b05716fcf9c59ad/dist/source-map.js
var sourceMap;
// https://raw.githubusercontent.com/Microsoft/TypeScript/1a579d929f1d0ee4d45de7cee505970a24a40cc7/lib/typescript.js
var ts;
var tv = {
$: {
handle: Symbol("tv.$.handle"),