Skip to content

Instantly share code, notes, and snippets.

@camspiers
camspiers / snap.lua
Last active June 9, 2021 14:31
Example configuration for snap
local snap = require'snap'
local fzy = snap.get'consumer.fzy'
local limit = snap.get'consumer.limit'
local producer_file = snap.get'producer.ripgrep.file'
local producer_vimgrep = snap.get'producer.ripgrep.vimgrep'
local producer_buffer = snap.get'producer.vim.buffer'
local producer_oldfile = snap.get'producer.vim.oldfile'
local select_file = snap.get'select.file'
local select_vimgrep = snap.get'select.vimgrep'
@camspiers
camspiers / finder.clj
Last active May 11, 2021 05:52
A basic nvim finder written in fennel
(module finder {autoload {nvim aniseed.nvim core aniseed.core}
require {fzy fzy}})
;; Stores mappings for buffers
(def- buffer-fns {})
;; Public but not designed to called by aything but mappings
(defn _execute [bufnr index] ((. (. buffer-fns bufnr) index)))
;; Cleans up unneeded buffer maps
(defn- clean-buffer-fns [bufnr] (tset buffer-fns bufnr nil))
;; Generates the buffer map vim call signiture
<?php
namespace Camspiers\LoggerBridge;
use Camspiers\LoggerBridge\BacktraceReporter\BacktraceReporter;
use Camspiers\LoggerBridge\BacktraceReporter\BasicBacktraceReporter;
use Camspiers\LoggerBridge\EnvReporter\DirectorEnvReporter;
use Camspiers\LoggerBridge\EnvReporter\EnvReporter;
use Camspiers\LoggerBridge\ErrorReporter\DebugErrorReporter;
use Camspiers\LoggerBridge\ErrorReporter\ErrorReporter;
@camspiers
camspiers / WorkerPool.js
Created July 15, 2014 04:04
Basic worker pool for nodejs
var spawn = require( 'child_process' ).spawn;
var fs = require( 'fs' );
var Promise = require( 'promise' );
var glob = Promise.denodeify( require( 'glob' ) );
var readFile = Promise.denodeify( fs.readFile );
var pidDir = __dirname + '/../pids/';
var WORKER_LISTEN_TIMEOUT = 10;
/**
@camspiers
camspiers / gist:9105792
Last active August 29, 2015 13:56
Make method on classes accessible as a Closure via property get
<?php
namespace Camspiers;
use ReflectionMethod;
/**
* Class ClosureAccess
* @package Camspiers
*/
@camspiers
camspiers / php53-augmentedtypes.rb
Created February 1, 2014 04:56
PHP 53 Formula for augmented types (not working)
require File.join(File.dirname(__FILE__), 'abstract-php-extension')
class Php53Augmentedtypes < AbstractPhp53Extension
init
homepage 'https://github.com/box/augmented_types'
url 'https://github.com/box/augmented_types/archive/7398253b82f8cab9e9ef0da1c0b9e7e507c37390.tar.gz'
sha1 'b6beb7ba192e302f14357aa4a30af2f9b56cc773'
head 'https://github.com/box/augmented_types.git'
version '7398253'
@camspiers
camspiers / php56.rb
Created January 25, 2014 08:56
Brew php56 formula
require File.join(File.dirname(__FILE__), 'abstract-php')
class Php56 < AbstractPhp
init
url 'http://downloads.php.net/tyrael/php-5.6.0alpha1.tar.bz2'
sha1 '08dec1cd5ef3acccaafd7ca79f5a8b22643e7d65'
version '5.6.0alpha1'
head 'https://github.com/php/php-src.git', :branch => 'PHP-5.6'
<?php
function iterator_chunk($iterable, $size, $preserve_keys = false)
{
$chunk = [];
foreach ($iterable as $key => $value) {
if ($preserve_keys) {
$chunk[$key] = $value;
} else {
/** @jsx React.DOM */
var LinkedNumberField = React.createClass({
rootNode: null,
getInitialState: function () {
return {
min: this.props.min ? this.props.min : 0,
max: this.props.max ? this.props.max : 1,
step: this.props.step ? this.props.step : 0.01,
value: this.props.value ? this.props.value : 0.5
@camspiers
camspiers / MathJ.js
Last active December 18, 2015 01:19
/** @jsx React.DOM */
var MathJ = React.createClass({
shouldComponentUpdate: function (nextProps, nextState) {
return this.props.children !== nextProps.children;
},
componentDidMount: function (rootNode) {
MathJax.Hub.Queue(["Typeset", MathJax.Hub, rootNode]);
MathJax.Hub.Queue([function () {
rootNode.style.display = 'inline';