GithubHelp home page GithubHelp logo

tarsiiformes / yasnippet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from joaotavora/yasnippet

0.0 1.0 0.0 5.04 MB

A template system for Emacs

Home Page: http://joaotavora.github.com/yasnippet/

Ruby 1.14% Emacs Lisp 98.86%

yasnippet's Introduction

Build Status

Intro

YASnippet is a template system for Emacs. It allows you to type an abbreviation and automatically expand it into function templates. Bundled language templates include: C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS and more. The snippet syntax is inspired from TextMate's syntax, you can even import most TextMate templates to YASnippet. Watch a demo on YouTube.

Installation

Install the most recent version

Clone this repository somewhere

$ cd ~/.emacs.d/plugins
$ git clone --recursive https://github.com/joaotavora/yasnippet

Add the following in your .emacs file:

(add-to-list 'load-path
              "~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)

Add your own snippets to ~/.emacs.d/snippets by placing files there or invoking yas-new-snippet.

Install with package-install

In a recent emacs M-x list-packages is the recommended way to list and install packages. MELPA keeps a very recent snapshot of YASnippet, see http://melpa.org/#installing.

Install with el-get

El-get is a nice way to get the most recent version, too. See https://github.com/dimitri/el-get for instructions.

Use yas-minor-mode on a per-buffer basis

To use YASnippet as a non-global minor mode, don't call yas-global-mode; instead call yas-reload-all to load the snippet tables and then call yas-minor-mode from the hooks of major-modes where you want YASnippet enabled.

(yas-reload-all)
(add-hook 'prog-mode-hook #'yas-minor-mode)

Where are the snippets?

YASnippet no longer bundles snippets directly, but it's very easy to get some!

  1. yasnippet-snippets - a snippet collection package maintained by AndreaCrotti.

    It can be installed with M-x package-install RET yasnippet-snippets if you have added MELPA to your package sources.

  2. yasmate a tool which is dedicated to converting textmate bundles into yasnippet snippets.

    To use these snippets you have to run the tool first, so see its doc), and then point the yas-snippet-dirs variable to the .../yasmate/snippets subdir.

    If you have a working ruby environment, you can probably get lucky directly with rake convert-bundles.

  3. textmate-to-yas.el

    This is another textmate bundle converting tool using Elisp instead of Ruby.

Naturally, you can point yas-snippet-dirs to good snippet collections out there. If you have created snippets for a mode, or multiple modes, consider creating a repository to host them, then tell users that it should be added like this to yas-snippet-dirs:

(setq yas-snippet-dirs
      '("~/.emacs.d/snippets"                 ;; personal snippets
        "/path/to/some/collection/"           ;; foo-mode and bar-mode snippet collection
        "/path/to/yasnippet/yasmate/snippets" ;; the yasmate collection
        ))

(yas-global-mode 1) ;; or M-x yas-reload-all if you've started YASnippet already.

Manual, issues etc

There's comprehensive documentation on using and customising YASnippet.

There's a list of support issues, with solutions to common problems and practical snippet examples.

The Github issue tracker is where most YASnippet-related discussion happens. Nevertheless, since YASnippet is a part of Emacs, you may alternatively report bugs to the main Emacs bug list, [email protected], putting "yasnippet" somewhere in the subject.

Important note regarding bug reporting

Your bug reports are very valuable.

The most important thing when reporting bugs is making sure that we have a way to reproduce the problem exactly like it happened to you.

To do this, we need to rule out interference from external factors like other Emacs extensions or your own customisations.

Here's an example report that "sandboxes" an Emacs session just for reproducing a bug.

$ emacs --version
Emacs 24.3
$ cd /tmp/
$ git clone https://github.com/joaotavora/yasnippet.git yasnippet-bug
$ cd yasnippet-bug
$ git log -1 --oneline
6053db0 Closes #527: Unbreak case where yas-fallback-behaviour is a list
$ HOME=$PWD emacs -L . # This "sandboxes" your emacs, melpa configuration, etc

(require 'yasnippet)
(yas-global-mode 1)

When I open a foo-mode file I don't see foo-mode under the "YASnippet" menu!
OR
When loading yasnippet I see "Error: failed to frobnicate"!

Using emacs -Q or temporarily moving your .emacs init file to the side is another way to achieve good reproducibility.

Here's a another example of a bug report. It has everything needed for a successful analysis and speedy resolution.

Also, don't forget to state the Emacs version (use M-x emacs-version) and the yasnippet version you are using (if using the latest from github, do git log -1 in the dir).

Any more info is welcome, but don't just paste a backtrace or an error message string you got, unless we ask for it.

Finally, thank you very much for using YASnippet!

yasnippet's People

Contributors

joaotavora avatar npostavs avatar pluskid avatar monnier avatar jimeh avatar tarsius avatar rolandwalker avatar rwc9u avatar thisirs avatar barak avatar zonuexe avatar notetiene avatar dgutov avatar syohex avatar snikulov avatar spwhitton avatar r3n4ud avatar randymorris avatar pierretechoueyres avatar philhudson avatar ignisf avatar rnkn avatar eggert avatar knu avatar tkf avatar wasamasa avatar mineo avatar treese avatar xiaohanyu avatar zmwangx avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.