Skip to content

Instantly share code, notes, and snippets.

View sirbrillig's full-sized avatar

Payton Swick sirbrillig

View GitHub Profile
sirbrillig / basic-vim-syntax-plugins.vim
Created August 4, 2022 17:57
My basic recommended vim syntax plugins
" Syntax plugins
Plug 'yuezk/vim-js'
Plug 'leafgarland/typescript-vim'
Plug 'peitalin/vim-jsx-typescript'
Plug 'MaxMEllon/vim-jsx-pretty'
Plug 'elzr/vim-json'
Plug 'moll/vim-node'
Plug 'cakebaker/scss-syntax.vim'
Plug 'hail2u/vim-css3-syntax'
Plug 'StanAngeloff/php.vim'
sirbrillig / basic-vim-settings.vim
Created August 4, 2022 17:50
Some of my most basic vim/nvim settings
syntax on
filetype on
filetype plugin on
filetype indent on
set hlsearch "highlight search matches
set autoindent "use previous line's indent level
set preserveindent " when reindenting try to preserve existing indentation as much as possible
set copyindent " when starting a new line use the indent of the previous line
set hidden "allow edited buffers to be hidden
set switchbuf=useopen "use existing buffer rather than opening a new one
sirbrillig /
Created August 23, 2021 23:40
A way to run tsc on a single file in my project; copied from
#!/bin/bash -e
cat >$TMP <<EOF
"extends": "./tsconfig.json",
"include": [
for file in "$@"; do
echo " \"$file\"," >> $TMP
// This is a little tricky because we need to verify that text never appears,
// even after some time passes, so we use this slightly convoluted technique:
async function verifyThatTextNeverAppears( text: string ) {
await expect( screen.findByText( text ) ).rejects.toThrow();
// OR, a custom Jest matcher:
expect.extend( {
Plugin Name: Checkout Experiment
Description: An experimental checkout inside wp-admin
Author: Automattic
Version: 1.0
Author URI:
class CheckoutExperiment {
import React from "react";
import { render } from "react-dom";
// @ts-ignore
import wpcomFactory from 'wpcom';
import wpcomProxyRequest from 'wpcom-proxy-request';
import {
} from "@automattic/shopping-cart";
import {
sirbrillig / .gitconfig
Created March 10, 2020 22:34
Git config alias for backup and restore of current branch
backup-create = "!f() { git branch -f backup-$(git rev-parse --abbrev-ref HEAD) && echo 'Backup created. Use git backup-restore to restore.'; }; f"
backup-restore = "!f() { echo 'Are you sure you want to overwrite the current branch with the latest backup? This cannot be undone!'; select result in Yes No; do [[ $result == "Yes" ]] && git reset --hard backup-$(git rev-parse --abbrev-ref HEAD) && echo 'Backup restored.'; break; done; }; f"
sirbrillig / index.php
Last active October 4, 2019 00:43
Example of PHP shell helper injection and test
// If this function were a class method, the injection could happen in the constructor instead
function printMessageAndExit(string $message, ?ShellHelper $shell): void {
$shell = $shell ?? new DefaultShell();
interface ShellHelper {
sirbrillig / Phabricator-Notification-Grouping.js
Last active December 17, 2018 18:07
Allows collapsing Phabricator notifications to one-per-revision
// ==UserScript==
// @name Phabricator Notification Grouping
// @namespace
// @version 0.1
// @description Allows collapsing Phabricator notifications to one-per-revision
// @author Payton Swick <>
// @match*
// @grant none
// ==/UserScript==
sirbrillig /
Last active April 30, 2018 17:17
My vegan haggis recipe

Vegan Haggins and Neeps and Tatties


  • 6 medium russet potatoes, roughly chopped
  • 1 large rutabaga, roughly chopped
  • 1/2 stick of margarine
  • salt and pepper to taste
  • 1 large onion, chopped
  • 2 medium carrots, grated