A modular solution to snippets in Atom, including support for project-specific collections.
Any valid snippets [CSON or JSON] file inside ATOM_HOME
/snippets/**
will be loaded automatically, or reloaded if modified.
This package does not interfere with the existing snippets.cson
, so you can slowly transition to this more modular approach.
The Atom Snippets…
menu item will be overridden to open your snippets folder in a new window, along with the default snippets.cson
if it still exists.
The Atom Snippets…
menu item will be overridden to open your snippets folder in a new window, along with the default snippets.cson
if it still exists.
Some snippets might only be relevant to a particular project, so it makes sense to store them with that project; these could then be committed to version control and shared between a team. These local snippets are loaded from the first item found in the root of your project based on the following order:
[.]snippets.cson
[.]snippets/**/*.cson
snippets: {object}
in package.json
snippets: {object}
in your project-configThis package also provides a service to load any snippets {object}
, file or folder…
// package.json
"consumedServices": {
"modular-snippets": {
"versions": {
"^1.0.0": "consume"
}
}
},
# index.coffee
{Disposable} = require 'atom'
snippet = # {object}, file or folder.
'.source.coffee':
Snippet:
prefix: 'prefix'
body: 'snippet'
consumeSnippets: ({load}) ->
load snippet
new Disposable -> stopUsingService load
or using ES6 if you’re into that…
// index.js
'use babel';
import { Disposable } from 'atom';
let snippet = { // object }, file or folder.
'.source.js': {
Snippet: {
prefix: 'prefix',
body: 'snippet'
}
}
};
function consumeSnippets({load} => {
load(snippet);
return new Disposable(() => stopUsingService(load));
}
apm install modular-snippets
or search “snippets” under packages within Atom.
Thanks to @thibmaek for the base repository.