# YASnippet

> template system for Emacs

**Wikidata**: [Q110888799](https://www.wikidata.org/wiki/Q110888799)  
**Source**: https://4ort.xyz/entity/yasnippet

## Summary
YASnippet is a template system for Emacs that allows users to expand abbreviations into function templates, enhancing productivity by automating repetitive code snippets. It is a free software project distributed under the GNU General Public License, version 2.0 or later, and is part of the GNU Project.

## Key Facts
- **Use**: Template processor for Emacs, specifically a template system.
- **License**: Distributed under the GNU General Public License, version 2.0 or later, with earlier versions under the Expat license.
- **Part of**: GNU Project since 2012-11-29.
- **Platform**: Cross-platform, compatible with GNU Emacs.
- **Programming Language**: Written in Emacs Lisp.
- **Latest Version**: 0.14.1 (released 2024-01-24).
- **Package Manager**: Available via GNU ELPA and MELPA.
- **Operating System**: Cross-platform, applicable to GNU Emacs.
- **Copyright Holder**: João Tavora (since 2008).

## FAQs
### Q: What is YASnippet used for?
A: YASnippet is used to expand abbreviations into function templates in Emacs, automating repetitive code snippets and improving productivity.

### Q: Is YASnippet free software?
A: Yes, YASnippet is free software distributed under the GNU General Public License, version 2.0 or later, and was previously under the Expat license.

### Q: How do I install YASnippet?
A: YASnippet can be installed via GNU ELPA or MELPA, or directly from its GitHub repository.

### Q: Who maintains YASnippet?
A: YASnippet is maintained by João Tavora, with contributions from the open-source community.

### Q: What programming language is YASnippet written in?
A: YASnippet is written in Emacs Lisp, the dialect of Lisp used in GNU Emacs.

## Why It Matters
YASnippet plays a crucial role in the Emacs ecosystem by providing a powerful template system that enhances productivity for developers. By automating the expansion of abbreviations into function templates, it reduces repetitive tasks and streamlines coding workflows. As part of the GNU Project, YASnippet aligns with the principles of free software, ensuring accessibility and customization for users. Its cross-platform compatibility and integration with major package managers like GNU ELPA and MELPA make it a valuable tool for Emacs users worldwide.

## Notable For
- **Template System**: YASnippet is a specialized template system for Emacs, distinguishing it from general-purpose text editors.
- **GNU Project Affiliation**: Being part of the GNU Project since 2012-11-29, it benefits from the GNU ecosystem's resources and community support.
- **Cross-Platform Compatibility**: Works across different platforms, ensuring broad accessibility for Emacs users.
- **Active Development**: Regular updates, with the latest stable version (0.14.1) released in 2024, indicating ongoing maintenance and improvement.
- **Open-Source License**: Dual licensing under the GNU GPL and Expat license, catering to different user preferences and compliance needs.

## Body
### Overview
YASnippet is a template system for Emacs that allows users to expand abbreviations into function templates, enhancing productivity by automating repetitive code snippets. It is part of the GNU Project and distributed under the GNU General Public License, version 2.0 or later, with earlier versions under the Expat license.

### Development and Maintenance
- **Maintainer**: João Tavora has been the primary maintainer since 2008.
- **Source Code**: Hosted on GitHub and GNU Savannah, with contributions from the open-source community.
- **Issue Tracking**: Issues are tracked on GitHub, reflecting active community engagement.

### Versions and Releases
- **Latest Version**: 0.14.1, released on 2024-01-24.
- **Previous Versions**: Includes releases from 0.8.0 (2012-08-15) to 0.14.0 (2019-12-22), with each version available via GNU ELPA.

### Distribution and Compatibility
- **Package Managers**: Available via GNU ELPA (since 2012-11-29) and MELPA.
- **Operating System**: Cross-platform, compatible with GNU Emacs.
- **Platform**: Works on various systems, ensuring broad usability.

### Licensing and Copyright
- **License**: GNU General Public License, version 2.0 or later, with earlier versions under the Expat license.
- **Copyright Holder**: João Tavora, with copyright status as copyrighted.

### Technical Details
- **Programming Language**: Emacs Lisp, the dialect of Lisp used in GNU Emacs.
- **Package IDs**: Includes GNU ELPA package ID (yasnippet) and MELPA package ID (yasnippet).
- **User Manual**: Documentation available at [joaotavora.github.io/yasnippet](https://joaotavora.github.io/yasnippet/).

### Package Information
- **Debian Packages**: Includes `elpa-yasnippet` and `yasnippet` (transition package).
- **Ubuntu Package**: `elpa-yasnippet` and `yasnippet`.
- **Gentoo Package**: `app-emacs/yasnippet`.
- **Guix Variable Name**: `emacs-yasnippet`.

### Additional Resources
- **Website**: [GitHub Repository](https://github.com/joaotavora/yasnippet).
- **Issue Tracker**: [GitHub Issues](https://github.com/joaotavora/yasnippet/issues).
- **Source Code Repositories**: GitHub and GNU Savannah.

## References

1. [Source](https://elpa.gnu.org/packages/yasnippet.html)
2. [Source](https://github.com/joaotavora/yasnippet/commit/9a9182ac472061d8bcbd72f13e5a076895e92b3b)
3. [Release 0.8.0. 2012](https://github.com/joaotavora/yasnippet/releases/tag/0.8.0)
4. [Release 0.9.1. 2016](https://github.com/joaotavora/yasnippet/releases/tag/0.9.1)
5. [yasnippet version 0.9.1. 2016](https://lists.gnu.org/archive/html/gnu-emacs-sources/2016-04/msg00009.html)
6. [Release 0.10.0. 2016](https://github.com/joaotavora/yasnippet/releases/tag/0.10.0)
7. [yasnippet version 0.10.0. 2016](https://lists.gnu.org/archive/html/gnu-emacs-sources/2016-06/msg00005.html)
8. [Release 0.11.0. 2016](https://github.com/joaotavora/yasnippet/releases/tag/0.11.0)
9. [yasnippet version 0.11.0. 2016](https://lists.gnu.org/archive/html/gnu-emacs-sources/2016-10/msg00018.html)
10. [Release 0.12.0. 2017](https://github.com/joaotavora/yasnippet/releases/tag/0.12.0)
11. [yasnippet version 0.12.0. 2017](https://lists.gnu.org/archive/html/gnu-emacs-sources/2017-07/msg00014.html)
12. [Release 0.12.1. 2017](https://github.com/joaotavora/yasnippet/releases/tag/0.12.1)
13. [yasnippet version 0.12.1. 2017](https://lists.gnu.org/archive/html/gnu-emacs-sources/2017-07/msg00018.html)
14. [Release 0.12.2. 2017](https://github.com/joaotavora/yasnippet/releases/tag/0.12.2)
15. [yasnippet version 0.12.2. 2017](https://lists.gnu.org/archive/html/gnu-emacs-sources/2017-08/msg00031.html)
16. [Release 0.13.0. 2018](https://github.com/joaotavora/yasnippet/releases/tag/0.13.0)
17. [yasnippet version 0.13.0. 2018](https://lists.gnu.org/archive/html/gnu-emacs-sources/2018-05/msg00011.html)
18. [Release 0.14.0. 2019](https://github.com/joaotavora/yasnippet/releases/tag/0.14.0)
19. [yasnippet version 0.14.0. 2019](https://lists.gnu.org/archive/html/gnu-emacs-sources/2019-12/msg00016.html)
20. [Yasnippet version 0.14.1. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-01/msg00061.html)
21. [[GNU ELPA] Yasnippet version 0.14.2. 2025](https://lists.gnu.org/archive/html/gnu-emacs-sources/2025-04/msg00010.html)
22. [[GNU ELPA] Yasnippet version 0.14.3. 2025](https://lists.gnu.org/archive/html/gnu-emacs-sources/2025-06/msg00010.html)
23. GNU Guix
24. [Source](https://github.com/joaotavora/yasnippet/commits/master/yasnippet.el?after=2384fe1655c60e803521ba59a34c0a7e48a25d06+769)
25. [Source](https://www.emacswiki.org/emacs/Yasnippet)
26. [Source](https://packages.debian.org/source/bookworm/yasnippet)
27. [Source](https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/yasnippet.el?h=externals/yasnippet)