Skip to content

Instantly share code, notes, and snippets.

@disnet
disnet / gist:4489250
Last active Aug 13, 2019
osx - force skim to always autoupdate
View gist:4489250
defaults write -app Skim SKAutoReloadFileUpdate -boolean true
@disnet
disnet / gist:4973724
Created Feb 17, 2013
sed - convert literate haskell to plain haskell
View gist:4973724
sed '
s/^>//
t
s/^ *$//
t
s/^/-- /
' in.lhs > out.hs
View helpers.js
import * as H from 'sweet.js/helpers' for syntax;
syntax m = ctx => {
let v = ctx.next().value;
if (H.isIdentifier(v, 'foo') {
return H.fromString(v, 'bar');
}
return H.fromString(v, 'baz');
}
m foo; // expands to 'bar'
View modules_for_syntax.js
// log.js
'lang sweet.js';
export function log(msg) {
console.log(msg);
}
// main.js
import { log } from './log.js' for syntax;
syntax m = ctx => {
log('doing some Sweet things');
View modules.js
// foo.js
'lang sweet.js';
export syntax m = // ...
// main.js
'lang sweet.js';
import { m } from './foo';
m // ...
View expansion.js
fetch("/foo.json").then(resp => {
return resp.json();
}).then(json => {
return processJson(json);
});
View operators.js
operator >>= left 1 = (left, right) => {
return #`${left}.then(${right})`;
}
fetch('/foo.json') >>= resp => { return resp.json() }
>>= json => { return processJson(json) }
@disnet
disnet / getlocation.js
Created Mar 21, 2016
handle url parsing in IE
View getlocation.js
// the web is crazy
// http://stackoverflow.com/questions/736513/how-do-i-parse-a-url-into-hostname-and-path-in-javascript
function getLocation(href) {
var location = document.createElement("a");
location.href = href;
// IE doesn't populate all link properties when setting .href with a relative URL,
// however .href will return an absolute URL which then can be used on itself
// to populate these additional fields.
if (location.host == "") {
location.href = location.href;
View test.js
letstx $name ... = [name1, name2, name3];
letstx $type ... ... = [[type1, type2], [type3, type4]]
View gist:8609245
let function = macro {
case { _ * $id ($args ...) { $body ... } } => {
var body = #{ $body ... };
var isAwaitGenerator = false;
for (var i = 0; i < body.length; i++) {
if (body[i].token.type === parser.Token.Identifier &&
body[i].token.value === 'await') {
var expr = getExpr(body.slice(i));
if (expr.success) {
isAwaitGenerator = true;
You can’t perform that action at this time.