# Elm snippets for Sublime Text 2 and 3 #### [Sublime Text 3](http://www.sublimetext.com/3) ## About This is a Sublime Text 2 and 3 plugin allowing you to use Elm specific snippets in Elm source files. ## Installation First of all, be sure you have [Elm](http://elm-lang.org/install) installed. Other useful Elm related packages are "Elm Language Support" and "SublimeLinter-contrib-elm-make". After you've installed Elm and the Elm related packages, you will need to setup this plugin. Each OS has a different `Packages` folder required by Sublime Text. Open it via Preferences -> Browse Packages, and copy this repository contents to the `elm_snippets` folder there. The shorter way of doing this is: ### Through [Sublime Package Manager](http://wbond.net/sublime_packages/package_control) * `Ctrl+Shift+P` or `Cmd+Shift+P` in Linux/Windows/OS X * type `install`, select `Package Control: Install Package` * type `elm_snippets`, select `elm_snippets` ### Manually Make sure you use the right Sublime Text folder. For example, on OS X, packages for version 2 are in `~/Library/Application\ Support/Sublime\ Text\ 2`, while version 3 is labeled `~/Library/Application\ Support/Sublime\ Text\ 3`. These are for Sublime Text 3: #### Mac `git clone https://github.com/rudolfb/elm_snippets ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/elm_snippets` #### Linux `git clone https://github.com/victorporof/elm_snippets ~/.config/sublime-text-3/Packages/elm_snippets` #### Windows `git clone https://github.com/victorporof/elm_snippets %APPDATA%/Sublime\ Text\ 3/Packages/elm_snippets` ## Usage Type the snippet shortcode and then press Tab to complete the snippet. Some snippets have more than one place holder. When the snippet is first displayed, the cursor is placed at the first place holder. After entering the text here, press tab to go to the next place holder. If there are no further place holders the cursor will jump to the end of the snippet. ## Snippets __cof__ ```elm case $1 of $2 -> $3 ``` ```elm case action of Increase -> { model | count = model.count + 1 } ``` __imp__ ```elm import $1 ``` ```elm import Mouse ``` __impas__ ```elm import $1 as $2 ``` ```elm import Html.Events as Events ``` __impea__ ```elm import $1 exposing (..) ``` ```elm import Html exposing (..) ``` __impes__ ```elm import $1 exposing ($2) ``` ```elm import Html exposing (Html) ``` __mod__ ```elm module $1 (..) where $0 ``` Pressing Tab after entering the module name will automatically position the cursor on the start of the next line. ```elm module Main (..) where ``` __sig__ ```elm Signal ``` __siga__ ```elm Signal.Address ``` A space is automatically appended to the string and the cursor placed after the trailing space. __sigma__ ```elm Signal.map ($1) $2 ``` ```elm Signal.map (view mb.address) modelSignal ``` __sigmb__ ```elm Signal.mailbox "" ``` __sigs__ ```elm Signal.Signal ``` __str__ ```elm String ``` __ta__ ```elm type alias $1 = $2 $0 ``` __type__ ```elm type $1 = $2 $0 ``` __let__ ```elm let $1 = $2 in $3 ``` Pressing Tab after entering the alias name will automatically position the cursor indented on the next line, and you can enter the alias definition. Pressing Tab after entering the alias definition will automatically position the cursor on the start of the next line. ```elm type alias Model = { count : Int } ``` ## Contributing Use these snippets as you please. I only ask that if you come up with an incredibly handy snippet, or simply one that I have missed, that you let me know via GitHub so that I can improve these for everybody. Thanks! ## Thanks These snippets are based on a similar Atom project [atom-elm-snippets](https://github.com/chiefGui/atom-elm-snippets) The Sublime [HTML-Snippets](https://github.com/joshnh/HTML-Snippets) package served as the template for this package. Thank you!