Skip to content

Instantly share code, notes, and snippets.


Michal Srb xixixao

  • Facebook
  • London, UK
View GitHub Profile
View gist:4fb78f5f9569b40c01fc
+ (macro [x y]
(: (Fn Num Num Num))
(Js.binary "+" x y))
- (macro [what from]
(: (Fn Num Num Num))
(Js.binary "-" from what))
* (macro [x y]
(: (Fn Num Num Num))
View gist:e8b74ff74e98bdd0c137
Rules (type (Map Char String))
System (record angle: Num base: (List Char) rules: Rules)
tree (fn [angle] (System angle
\M "N[-M][+M][NM]"
\N "NN"
\[ "["
\] "]"
View testfile.js
* Given the starting source, starting position, and the ending source this
* function guesses where the cursor should move to.
function updateCursor(
startSource: string,
startPosition: {row: number, column: number},
endSource: string,
): {row: number, column: number} {
for (const accuracy of ACCURACIES) {
xixixao / drawBetterSelection.js
Last active Jun 13, 2021
Mac-like selection background for Codemirror6
View drawBetterSelection.js
import { drawSelection, ViewPlugin, Direction } from "@codemirror/view";
import { combineConfig, Facet, EditorSelection } from "@codemirror/state";
const [_, _2, hideNativeSelection] = drawSelection();
const selectionConfig = Facet.define({
combine(configs) {
return combineConfig(