snippet gi
	const ${1:Gtk} = imports.gi.$1;
	$0
snippet lang
	const ${1:Lang} = imports.${$1|decapitalize};
	$0
snippet import
	const ${1:ModuleName} = imports.${2:path}.${$1|decapitalize};
	$0

snippet class
	const ${1:ClassName} = new Lang.Class({
		Name: '$1',

		_init: function () {
			$0
		},
	});
snippet gobject
	const ${1:ClassName} = new Lang.Class({
		Name: '$1',
		GTypeName: '${2:$1}',
		Extends: ${3:GObject.Object},

	${4:	Properties: {},}
	${5:	Signals: {},}

		_init: function (props={}) {
			this.parent(props);
			$0
		},
	});

snippet gproperty
	'${1:foo}': GObject.ParamSpec.${2:int}('$1',
		'${3:$1|capitalize}', '${4:Property description}',
		$0),
snippet gsignal
	'${1:signal}': {$0},
