Commit 4966e7a1c21f

Vincent Demeester <vincent@sbr.pm>
2018-05-03 19:20:39
Add yasnippet (and some snippets)
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 0dd177d
etc/yasnippet/snippets/c++-mode/.yas-parents
@@ -0,0 +1,1 @@
+cc-mode
\ No newline at end of file
etc/yasnippet/snippets/c-mode/.yas-parents
@@ -0,0 +1,1 @@
+cc-mode
\ No newline at end of file
etc/yasnippet/snippets/cc-mode/add
@@ -0,0 +1,4 @@
+#name : /*** START TI ADD ***/ ... /*** END TI ADD ***/
+# --
+/*** START TI ADD ***/
+$0/*** END TI ADD ***/
etc/yasnippet/snippets/cc-mode/addif
@@ -0,0 +1,7 @@
+#name : START TI ADD + #if OPENCL
+# --
+/*** START TI ADD ***/
+#if OPENCL_EXTENSIONS_SUPPORTED
+$0
+#endif /* OPENCL_EXTENSIONS_SUPPORTED */
+/*** END TI ADD ***/
\ No newline at end of file
etc/yasnippet/snippets/cc-mode/class
@@ -0,0 +1,71 @@
+#name : class ... { ... }
+# --
+/**
+ * @brief Summary
+ *
+ * Description.
+ */
+class $1
+{
+  $0
+
+public:
+  /** @name Construction and Destruction
+      @{ */
+
+  $1() noexcept? {
+    TRACE_CTOR($1, "");
+  }
+
+#if defined(DEBUG_MODE)
+  virtual? ~$1() {
+    try {
+      TRACE_DTOR($1);
+    }
+    catch (...) {
+      std::terminate();
+    }
+  }
+#else
+  ~$1() = default|delete;
+#endif
+
+  /*@}*/
+
+  /** @name Assignment, Copy and Move
+      @{*/
+
+#if defined(DEBUG_MODE)
+  $1(const $1& rhs) noexcept? {
+    TRACE_CTOR($1, "copy");
+    *this = rhs;
+  }
+#else
+  $1(const $1&) = default|delete;
+#endif
+
+  $1& operator=(const $1&) = default|delete;
+  $1& operator=(const $1& rhs) noexcept? {
+    //if (this != &rhs) {
+    //}
+    return *this;
+  }
+
+#if defined(DEBUG_MODE)
+  $1($1&&r rhs) noexcept? {
+    TRACE_CTOR($1, "move");
+    *this = rhs;
+  }
+#else
+  $1($1&&r) = default|delete;
+#endif
+
+  $1& operator=($1&&r) = default|delete;
+  $1& operator=($1&&r rhs) noexcept? {
+    //if (this != &rhs) {
+    //}
+    return *this;
+  }
+
+  /*@}*/
+}; // class $1
etc/yasnippet/snippets/cc-mode/com
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: TI comment
+# --
+/*------------------------------------------------------------*/
+/* $0 */
+/*------------------------------------------------------------*/
etc/yasnippet/snippets/cc-mode/fopen
@@ -0,0 +1,3 @@
+#name : FILE *fp = fopen(..., ...);
+# --
+FILE *${fp} = fopen(${"file"}, "${r}");
etc/yasnippet/snippets/cc-mode/inc
@@ -0,0 +1,3 @@
+#name : #include "..."
+# --
+#include "$1"
etc/yasnippet/snippets/cc-mode/inc.1
@@ -0,0 +1,3 @@
+#name : #include <...>
+# --
+#include <$1>
etc/yasnippet/snippets/cc-mode/main
@@ -0,0 +1,7 @@
+#name: int main(argc, argv) { ... }
+# --
+int main(int argc, char *argv[])
+{
+    $0
+    return 0;
+}
etc/yasnippet/snippets/cc-mode/misra
@@ -0,0 +1,14 @@
+#name : MISRA-C:2004 rule implementation
+# --
+/*** START TI ADD ***/
+#if MISRA_C_2004_VALIDATION
+         if (check_misra_c_2004)
+         {
+            /*----------------------------------------------------------------*/
+            /* MISRA-C:2004 - Rule ${1:Rule} (${2:required})                            */
+            /* ${3:Description} $0*/
+            /*----------------------------------------------------------------*/
+            diagnostic(misra_${2:required}_severity, ec_misra_c_2004_$1);
+         }              /* if */
+#endif /* MISRA_C_2004_VALIDATION */
+/*** END TI ADD ***/
etc/yasnippet/snippets/cc-mode/ns
@@ -0,0 +1,5 @@
+#name : namespace ...
+# --
+namespace $1 {
+    $0
+}
etc/yasnippet/snippets/cc-mode/once
@@ -0,0 +1,8 @@
+#name : #ifndef XXX; #define XXX; #endif
+# --
+#ifndef ${1:_`(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`_H_}
+#define $1
+
+$0
+
+#endif /* $1 */
\ No newline at end of file
etc/yasnippet/snippets/cc-mode/tfunc
@@ -0,0 +1,11 @@
+#name : Texas Instruments function
+# --
+/******************************************************************************/
+/* jww (`(format-time-string "%Y-%m-%d")`): NYI                                                      */
+/******************************************************************************/
+a_boolean $1($2)
+{
+   a_boolean result = FALSE;
+   $0
+   return result;
+}				/* $1 */
etc/yasnippet/snippets/cc-mode/using
@@ -0,0 +1,4 @@
+#name : using namespace ... 
+# --
+using namespace ${std};
+$0
\ No newline at end of file
etc/yasnippet/snippets/emacs-lisp-mode/hdr
@@ -0,0 +1,36 @@
+;;; `(file-name-sans-extension (file-name-nondirectory buffer-file-name))` --- $1
+
+;; Copyright (C) `(format-time-string "%Y")` `user-full-name`
+
+;; Author: `user-full-name` <`user-mail-address`>
+;; Created: `(format-time-string "%d %b %Y")`
+;; Version: 1.0
+;; Keywords: $2
+;; X-URL: https://github.com/jwiegley/${3:`(file-name-sans-extension (file-name-nondirectory buffer-file-name))`}
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; $0
+
+(defgroup `(file-name-sans-extension (file-name-nondirectory buffer-file-name))` nil
+  "$1"
+  :group '$4)
+
+(provide '`(file-name-sans-extension (file-name-nondirectory buffer-file-name))`)
+
+;;; `(file-name-nondirectory buffer-file-name)` ends here
etc/yasnippet/snippets/emacs-lisp-mode/test
@@ -0,0 +1,2 @@
+(ert-deftest $1 ()
+  (should (equal $0)))
\ No newline at end of file
etc/yasnippet/snippets/fundamental-mode/date
@@ -0,0 +1,3 @@
+#name : (current date)
+# --
+`(format-time-string "%Y-%m-%d")`
etc/yasnippet/snippets/fundamental-mode/mail
@@ -0,0 +1,3 @@
+#name : (user's email)
+# --
+`user-mail-address`
\ No newline at end of file
etc/yasnippet/snippets/fundamental-mode/time
@@ -0,0 +1,3 @@
+#name : (current time)
+# --
+`(current-time-string)`
\ No newline at end of file
etc/yasnippet/snippets/go-mode/coloneq
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: ... := ...
+# key: :=
+# --
+${1:x} := ${2:`%`}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/f
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: func
+# --
+func ${1:fun}($2) {
+	$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/fm
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: func (target) name(args) (results) { ... }
+# --
+func (${1:target}) ${2:name}(${3:args}) (${4:results}) {
+	$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/for
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: for ... { ... }
+# --
+for $1 {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/fore
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: for key, value := range ... { ... }
+# --
+for ${1:key}, ${2:value} := range ${3:target} {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/foreach
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: for key, value := range ... { ... }
+# --
+for ${1:key}, ${2:value} := range ${3:target} {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/fori
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: for i := 0; i < n; i++ { ... }
+# --
+for ${1:i} := ${2:0}; $1 < ${3:10}; $1++ {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/forw
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name : for ... { ... }
+# --
+for $1 {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/func
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: func
+# --
+func ${1:fun}($2) {
+	$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/iferr
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: if err != nil { ... }
+# --
+if err != nil {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/ifunc
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: func (...) ... { ... }
+# --
+func ($1) $2 {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/imp
@@ -0,0 +1,4 @@
+# -*- mode: snippet -*-
+# name: import
+# --
+import ${1:package}$0
\ No newline at end of file
etc/yasnippet/snippets/go-mode/import
@@ -0,0 +1,4 @@
+# -*- mode: snippet -*-
+# name: import
+# --
+import ${1:package}$0
\ No newline at end of file
etc/yasnippet/snippets/go-mode/main
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: func main() { ... }
+# --
+func main() {
+   $0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/map
@@ -0,0 +1,4 @@
+# -*- mode: snippet -*-
+# name: map
+# --
+map[${1:KeyType}]${2:ValueType}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/method
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: func (target) name(args) (results) { ... }
+# --
+func (${1:target}) ${2:name}(${3:args}) (${4:results}) {
+	$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/package
@@ -0,0 +1,4 @@
+# -*- mode: snippet -*-
+# name: package
+# --
+package ${1:`(car (last (split-string (file-name-directory buffer-file-name) "/") 2))`}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/pkg
@@ -0,0 +1,4 @@
+# -*- mode: snippet -*-
+# name: package
+# --
+package ${1:`(car (last (split-string (file-name-directory buffer-file-name) "/") 2))`}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/pr
@@ -0,0 +1,4 @@
+# -*- mode: snippet -*-
+# name: printf
+# --
+fmt.Printf("$1\n"${2:, ${3:str}})
\ No newline at end of file
etc/yasnippet/snippets/go-mode/printf
@@ -0,0 +1,4 @@
+# -*- mode: snippet -*-
+# name: printf
+# --
+fmt.Printf("$1\n"${2:, ${3:str}})
\ No newline at end of file
etc/yasnippet/snippets/go-mode/struct
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: type ... struct { ... }
+# --
+type $1 struct {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/switch
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# name: switch
+# key: switch
+# --
+switch {
+    case ${1:cond}:
+         $0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/test
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: func Test...() { ... }
+# --
+func Test${1:Name}(${2:t *testing.T}) {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/go-mode/while
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name : for ... { ... }
+# --
+for $1 {
+	`%`$0
+}
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/break
@@ -0,0 +1,1 @@
+break _ZL12diag_message13an_error_codeP17a_source_position17an_error_severity30a_diagnostic_category_kind_tag
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/cd
@@ -0,0 +1,1 @@
+cd ~/Contracts/TI/bugslayer/cl_
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/const
@@ -0,0 +1,1 @@
+(void)_Z11db_constantP10a_constant($0)
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/cree
@@ -0,0 +1,1 @@
+run --gcc -DUSE_ASCII -I/usr/local/opt/libffi/lib/libffi-3.0.11/include --llvm_file_name - ~/src/cree/test/wc.c
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/expr
@@ -0,0 +1,1 @@
+(void)_Z13db_expressionP12an_expr_node($0)
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/iar
@@ -0,0 +1,1 @@
+run --advice:power=all --diag_suppress=163 --ulp_standalone_mode=iar -D__IAR_SYSTEMS_ICC__ -D__TID__=11008 -D__intrinsic= -D__no_init= -D__persistent= --c iar.c
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/icd
@@ -0,0 +1,1 @@
+cd ~/Contracts/TI/tmp/iar
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/line
@@ -0,0 +1,1 @@
+(a_line_number)_Z15db_line_for_seqm (pos_curr_token.seq)
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/mrun
@@ -0,0 +1,1 @@
+run -I../../exec/arm -Imc2_headers --check_misra=all,-5.3 --c mc2_$0.c
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/opencl
@@ -0,0 +1,1 @@
+run --abi=eabi --opencl --c -I.. cl_$0.c
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/oper
@@ -0,0 +1,1 @@
+(void)_Z10db_operandP10an_operand($0)
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/operkind
@@ -0,0 +1,1 @@
+(an_expr_operator_kind_tag)$0->variant.operation.kind
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/run
@@ -0,0 +1,1 @@
+run --abi=eabi --opencl --c -I.. cl_$0.c
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/type
@@ -0,0 +1,1 @@
+(void)_Z7db_typeP6a_type($0->type)
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/ulpcd
@@ -0,0 +1,1 @@
+cd ~/Contracts/TI/bugslayer/ulp_
\ No newline at end of file
etc/yasnippet/snippets/gud-mode/ulprun
@@ -0,0 +1,1 @@
+run --abi=eabi --advice:power=all --remarks --c -I.. ulp_$0.c
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/.yas-ignore-filenames-as-triggers
etc/yasnippet/snippets/haskell-mode/haskell-mode/.yas-make-groups
etc/yasnippet/snippets/haskell-mode/haskell-mode/case
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# key: case
+# name: case
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+case ${1:x} of
+    ${2:Data} -> ${4:expression}
+    ${3:Data} -> ${5:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/comment.block
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# key: {-
+# name: block comment
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+{- $0 -}
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/constraint
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# key: =>
+# name: Type constraint
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+(${1:Class} ${2:m}) => $0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/data.inline
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# key: data
+# name: inline data
+# condition: (= (length "data") (current-column))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+data ${1:Type} = ${2:Data}$0 ${3:deriving (${4:Show, Eq})}
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/data.record
@@ -0,0 +1,10 @@
+# -*- mode: snippet -*-
+# key: data
+# name: record data
+# condition: (= (length "data") (current-column))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+data ${1:Type} = $1
+    { ${2:field} :: ${3:Type}
+    , ${4:field} :: ${5:Type}$0
+    } ${6:deriving (${7:Show, Eq})}
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/fn
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# key: fn
+# name: simple function
+# condition: (= (length "fn") (current-column))
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+${1:f} :: ${2:a} ${3:-> ${4:b}}
+$1 ${5:x} = ${6:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/fn.clause
@@ -0,0 +1,10 @@
+# -*- mode: snippet -*-
+# key: fn
+# name: clause function
+# condition: (= (length "fn") (current-column))
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+${1:f} :: ${2:a} ${3:-> ${4:b}}
+$1 ${5:pattern} = ${7:expression}
+$1 ${6:pattern} = ${8:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/fn.guarded
@@ -0,0 +1,11 @@
+# -*- mode: snippet -*-
+# key: fn
+# name: guarded function
+# condition: (= (length "fn") (current-column))
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+${1:f} :: ${2:a} ${3:-> ${4:b}}
+$1 ${5:x}
+    | ${6:conditional} = ${8:expression}
+    | ${7:conditional} = ${9:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/get
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# key: <-
+# name: monadic get
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+${1:x} <- ${2:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/if.block
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# key: if
+# name: block if
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+if ${1:condition}
+    then ${2:expression}
+    else ${3:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/if.inline
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# key: if
+# name: inline if
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+if ${1:condition} then ${2:expression} else ${3:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/import
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# key: imp
+# name: simple import
+# condition: (= (length "imp") (current-column))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+import           ${1:Module} ${2:(${3:f})}
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/import.qualified
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# key: imp
+# name: qualified import
+# condition: (= (length "imp") (current-column))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+import qualified ${1:Module} as ${2:${1:$(let ((name (car (last (split-string yas-text "\\\.")))))
+                                              (if (not (nil-blank-string name)) ""
+                                                  (subseq name 0 1)))}}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/instance
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# key: inst
+# name: instance
+# condition: (= (length "inst") (current-column))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+instance ${1:Class} ${2:Data} where
+    ${3:f} = ${4:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/lambda
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# key: \
+# name: lambda
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+\\${1:x} -> ${2:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/lang-pragma
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# key: lang
+# name: language pragma
+# condition: (= (length "lang") (current-column))
+# contributor: Luke Hoersten <luke@hoersten.org>, John Wiegley
+# --
+{-# LANGUAGE `(progn (require 'haskell-yas) (haskell-yas-complete "Extension: " haskell-yas-ghc-language-pragmas))` #-}
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/let
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# key: let
+# name: let
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+let ${1:x} = ${2:expression}$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/main
@@ -0,0 +1,13 @@
+# -*- mode: snippet -*-
+# key: main
+# name: main module
+# condition: (= (length "main") (current-column))
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+module Main where
+
+main :: IO ()
+main = do
+  ${1:expression}$0
+  return ()
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/module
@@ -0,0 +1,14 @@
+# -*- mode: snippet -*-
+# key: mod
+# name: simple module
+# condition: (= (length "mod") (current-column))
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+module ${1:`(if (not buffer-file-name) "Module"
+                (let ((name (file-name-sans-extension (buffer-file-name))))
+                     (if (search "src/" name)
+                         (replace-regexp-in-string "/" "." (car (last (split-string name "src/"))))
+                         (file-name-nondirectory name))))`} where
+
+$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/module.exports
@@ -0,0 +1,17 @@
+# -*- mode: snippet -*-
+# key: mod
+# name: exports module
+# condition: (= (length "mod") (current-column))
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+module ${1:`(if (not buffer-file-name) "Module"
+                (let ((name (file-name-sans-extension (buffer-file-name))))
+                     (if (search "src/" name)
+                         (replace-regexp-in-string "/" "." (car (last (split-string name "src/"))))
+                         (file-name-nondirectory name))))`}
+    ( ${3:export}
+    ${4:, ${5:export}}
+    ) where
+
+$0
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/haskell-mode/newtype
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# key: new
+# name: newtype
+# condition: (= (length "new") (current-column))
+# contributor: Luke Hoersten <luke@hoersten.org>
+# --
+newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/.hgignore
@@ -0,0 +1,7 @@
+syntax: regexp
+~$
+\#.*$
+\.DS_Store
+\.yas-compiled-snippets\.el$
+
+
etc/yasnippet/snippets/haskell-mode/hdr.yasnippet
@@ -0,0 +1,23 @@
+# -*- mode: snippet -*-
+# key: hdr
+# name: haskell header
+# expand-env: ((yas-indent-line 'fixed))
+# contributor: John Wiegley <johnw@newartisans.com>
+# --
+{-# LANGUAGE OverloadedStrings #-}
+
+module `(file-name-sans-extension (buffer-name))` where
+
+import Control.Applicative
+import Control.Monad
+import Control.Monad.IO.Class
+import Control.Monad.Trans.Class
+import Control.Monad.Trans.Control
+import Data.Maybe
+import Data.Monoid
+
+$1 :: $0
+$1 = undefined
+
+main :: IO ()
+main = undefined
\ No newline at end of file
etc/yasnippet/snippets/haskell-mode/README.md
@@ -0,0 +1,89 @@
+# Shnippet
+
+
+**Shnippet** is a collection of
+[YASnippet][yas]
+[Haskell][haskell] snippets for Emacs.
+
+
+## Installation
+
+Clone repository:
+
+    $ cd ~/.emacs.d/snippets
+    $ git clone https://github.com/LukeHoersten/shnippet
+    OR
+    $ hg clone https://bitbucket.org/LukeHoersten/shnippet
+
+Add the cloned repository to YASnippet's `yas-snippet-dirs`:
+
+    (setq yas-snippet-dirs
+          '("~/.emacs.d/snippets/shnippet"
+            "/other/paths/"
+            ))
+
+Snippets may have to be recompiled and reloaded in Emacs if YASnippet
+is already in use:
+
+    M-x yas-recompile-all
+    M-x yas-reload-all
+
+
+Haskell snippts should now be available to use! In a `haskell-mode`
+buffer, type `fn<TAB>`. A prompt should appear asking which `fn`
+snippet to expand.
+
+I **highly** recommend using YASnippet with [ido-mode]. Configure
+Emacs:
+
+    (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt))
+
+This is important so that alternatives (like `import` vs. `import
+qualified`) can quickly be selected with a single key stroke.
+
+
+## Available Expansion Keys
+
+* `new` - newtype
+* `mod` - module [simple, exports]
+* `main ` - main module and function
+* `let` - let bindings
+* `lang` - language extension pragmas
+* `\` - lambda function
+* `inst` - instance declairation
+* `imp` - import modules [simple, qualified]
+* `if` - if conditional [inline, block]
+* `<-` - monadic get
+* `fn` - top level function [simple, guarded, clauses]
+* `data` - data type definition [inline, record]
+* `=>` - type constraint
+* `{-` - block comment
+* `case` - case statement
+
+
+## Design Ideals
+
+* Keep snippet keys (the prefix used to auto-complete) to four
+  characters or less while still being as easy to guess as possible.
+
+* Have as few keys as possible. The more keys there are to remember,
+  the harder snippets are to use and learn.
+
+* Leverage [ido-mode][] when reasonable. For instance, to keep the
+  number of snippet keys to a minimum as well as auto complete things
+  like [Haskell Langauge Extension Pragmas][lang-pragma]. When
+  multiple snippets share a key (ex: `fn`), the `ido-mode` prompts are
+  unique to one character (ex: `guarded function` and `simple
+  function` are `g` and `s` respectively).
+
+
+## Authors
+
+This code is written and maintained by Luke Hoersten,
+<luke@hoersten.org>.
+
+
+[yas]: https://github.com/capitaomorte/yasnippet
+[ido-mode]: http://www.emacswiki.org/emacs/InteractivelyDoThings
+[lang-pragma]: http://hackage.haskell.org/packages/archive/Cabal/1.16.0.3/doc/html/Language-Haskell-Extension.html#t:KnownExtension
+[haskell]: http://haskell.org/
etc/yasnippet/snippets/haskell-mode/tr.yasnippet
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# key: tr
+# name: trace
+# contributor: John Wiegley <johnw@newartisans.com>
+# --
+trace ("$1: " ++ show ($1)) $ 
\ No newline at end of file
etc/yasnippet/snippets/latex-mode/acro
@@ -0,0 +1,1 @@
+\newacronym{$1}{${1:$(upcase yas-text)}}{$0}
\ No newline at end of file
etc/yasnippet/snippets/latex-mode/code
@@ -0,0 +1,10 @@
+# -*- mode: snippet -*-
+# key: code
+# expand-env: ((yas-indent-line 'fixed))
+# --
+\begin{listing}[!ht]
+  \begin{minted}[frame=single,gobble=4]{coq}
+    $0
+  \end{minted}
+  \caption{$1}
+\end{listing}
\ No newline at end of file
etc/yasnippet/snippets/latex-mode/gloss
@@ -0,0 +1,4 @@
+\newglossaryentry{$1}{
+  name={$1},
+  description={$0}
+}
\ No newline at end of file
etc/yasnippet/snippets/latex-mode/hafez
@@ -0,0 +1,3 @@
+\begin{hafez}{$1}{${2:pp.~1--2}}
+  $0
+\end{hafez}
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/case
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: case
+# key: case
+# --
+(case ${1:key-form}
+  (${2:match} ${3:result})${4:
+  (t ${5:otherwise})})
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/ccase
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: ccase
+# key: ccase
+# --
+(ccase ${1:key-form}
+  (${2:match} ${3:result}))
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/cond
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: cond
+# key: cond
+# --
+(cond (${1:test} ${2:then})
+      (t ${3:else}))
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/ctypecase
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: ctypecase
+# key: ctypecase
+# --
+(ctypecase ${1:key-form}
+  (${2:match} ${3:result}))
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defclass
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defclass
+# key: defclass
+# --
+(defclass ${1:name} (${2:parents})
+  ($0)${3:
+  (:documentation "${4:doc}")})
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defconstant
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defconstant
+# key: defconstant
+# --
+(defconstant +${1:name}+ ${2:nil}${3:
+ "${4:doc}"})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defgeneric
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defgeneric
+# key: defgeneric
+# --
+(defgeneric ${1:name} (${2:args})${3:
+  (:documentation "${4:doc}")})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/define-compiler-macro
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: define-compiler-macro
+# key: define-compiler-macro
+# --
+(define-compiler-macro ${1:name} (${2:args})
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/define-condition
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: define-condition
+# key: define-condition
+# --
+(define-condition ${1:name} (${2:parents})
+  ($0)${3:
+  (:documentation "${4:doc}")})
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/define-symbol-macro
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: define-symbol-macro
+# key: define-symbol-macro
+# --
+(define-symbol-macro ${1:name} ${2:expansion})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defmacro
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defmacro
+# key: defmacro
+# --
+(defmacro ${1:name} (${2:args }${3:&body body})${4:
+  "${5:doc}"}
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defmethod
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defmethod
+# key: defmethod
+# --
+(defmethod ${1:name} (${2:args})
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defpackage
@@ -0,0 +1,12 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defpackage
+# key: defpackage
+# --
+(defpackage   :${1:package}${2:
+  (:nicknames ${3:nicks})}${4:
+  (:use       ${5:packages})}${6:
+  (:shadow    ${7:packages})}${8:
+  (:export    ${9:packages})}${10:
+  (:documentation "${11:doc}")})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defparameter
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defparameter
+# key: defparameter
+# --
+(defparameter *${1:name}* ${2:nil}${3:
+ "${4:doc}"})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defstruct
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defstruct
+# key: defstruct
+# --
+(defstruct ${1:name}${2:
+  "${3:doc}"}
+  ($0))
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defsystem
@@ -0,0 +1,14 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defsystem
+# key: defsystem
+# --
+(asdf:defsystem :${1:system}${2:
+  :version      "${3:0.1.0}"}${4:
+  :description  "${5:description}"}${6:
+  :author       "${7:`user-full-name` <`user-mail-address`>}"}${8:
+  :serial       t}${10:
+  :license      "${11:GNU GPL, version 3}"}${12:
+  :components   (${13:(:file "file.lisp")})}${14:
+  :depends-on   (${15:#:alexandria})})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/deftype
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: deftype
+# key: deftype
+# --
+(deftype ${1:name} (${2:args})${3:
+  "${4:doc}"}
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defun
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defun
+# key: defun
+# --
+(defun ${1:name} (${2:args})${3:
+  "${4:doc}"}
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/defvar
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: defvar
+# key: defvar
+# --
+(defvar *${1:name}*${2: nil}${3:
+ "${4:doc}"})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/destructuring-bind
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: destructuring-bind
+# key: dbind
+# --
+(destructuring-bind (${1:vars}) ${2:value}
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/do
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: do
+# key: do
+# --
+(do (${1:vars})
+    (${2:end-test-form}${3: result})
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/do_
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: do*
+# key: do*
+# --
+(do* (${1:vars})
+     (${2:end-test-form}${3: result})
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/dolist
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: dolist
+# key: dolist
+# --
+(dolist (${1:var} ${2:list}${3: result})
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/dotimes
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: dotimes
+# key: dotimes
+# --
+(dotimes (${1:var} ${2:count}${3: result})
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/ecase
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: ecase
+# key: ecase
+# --
+(ecase ${1:key-form}
+  (${2:match} ${3:result}))
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/etypecase
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: etypecase
+# key: etypecase
+# --
+(etypecase ${1:key-form}
+  (${2:match} ${3:result}))
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/flet
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# contributor: Toni Querol
+# name: flet
+# key: flet
+# --
+(flet ((${1:name} (${2:args})${3:
+  "${4:doc}"}
+  ${5:body}))
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/format
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: format
+# key: format
+# --
+(format ${1:nil} ${2:str} $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/gnugpl
@@ -0,0 +1,25 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: GNU GPL 3 Header
+# key: gnugpl
+# --
+;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; -*-
+;;;
+;;; ${1:description}
+;;;
+;;; Copyright © ${2:`(format-time-string "%Y")`} `user-full-name` <`user-mail-address`>
+;;;
+;;; ${3:This program$(prog1 yas-text (fill-paragraph))} is free software:
+;;; you can redistribute it and/or modify it under the terms of the GNU
+;;; General Public License as published by the Free Software Foundation,
+;;; either version 3 of the License, or (at your option) any later version.
+;;;
+;;; ${3:$(prog1 yas-text (fill-paragraph))} is distributed in the hope that
+;;; it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License along
+;;; with this program. If not, see <http://www.gnu.org/licenses/>.
+
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/if
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: if
+# key: if
+# --
+(if ${1:test} ${2:then}${3: else})
etc/yasnippet/snippets/lisp-mode/in-package
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: in-package
+# key: in-package
+# --
+(in-package #:${1:package})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/labels
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# contributor: Toni Querol
+# name: labels
+# key: labels
+# --
+(labels ((${1:name} (${2:args})${3:
+  "${4:doc}"}
+  ${5:body}))
+  $0)
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/let
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: let
+# key: let
+# --
+(let ((${1:var} ${2:val}))
+  $0)
etc/yasnippet/snippets/lisp-mode/mapc
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: mapc
+# key: mapc
+# --
+(mapc ${1:fnc} ${2:list})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/mapcar
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: mapcar
+# key: mapcar
+# --
+(mapcar ${1:fnc} ${2:list})
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/mitlic
@@ -0,0 +1,31 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: MIT License Header
+# key: mitlic
+# --
+;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; -*-
+;;;
+;;; ${1:description}
+;;;
+;;; Copyright © ${2:`(format-time-string "%Y")`} `user-full-name` <`user-mail-address`>
+;;;
+;;; Permission is hereby granted, free of charge, to any person obtaining a
+;;; copy of this software and associated documentation files (the
+;;; "Software"), to deal in the Software without restriction, including
+;;; without limitation the rights to use, copy, modify, merge, publish,
+;;; distribute, sublicense, and/or sell copies of the Software, and to
+;;; permit persons to whom the Software is furnished to do so, subject to
+;;; the following conditions:
+;;;
+;;; The above copyright notice and this permission notice shall be included
+;;; in all copies or substantial portions of the Software.
+;;;
+;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+;;; OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+;;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+;;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+;;; LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+;;; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+;;; WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+$0
\ No newline at end of file
etc/yasnippet/snippets/lisp-mode/typecase
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# contributor: Mark Karpov
+# name: typecase
+# key: typecase
+# --
+(typecase ${1:key-form}
+  (${2:match} ${3:result})${4:
+  (t ${5:otherwise})})
\ No newline at end of file
etc/yasnippet/snippets/message-mode/check
@@ -0,0 +1,4 @@
+Hi $1,
+
+On $2 you mentioned you were going to check part $3. How's it going?
+
etc/yasnippet/snippets/message-mode/granted
@@ -0,0 +1,38 @@
+# expand-env: ((yas-indent-line 'fixed) (yas-wrap-around-region 'nil))
+# --
+
+Your wish has been granted. You can commit to Emacs and GNU ELPA. Feel free to
+use this power, but please try to be extra careful and prove yourself worthy
+of this privilege:
+
+- Send your patches for review before installing them.
+
+- Only install changes whose code follows the usual coding conventions. Some
+  of those conventions are documented in http://www.gnu.org/prep/standards;
+  you'll discover others during code review.
+
+- Always provide a good commit message (copied into or from the ChangeLog for
+  emacs.git), following the GNU coding standards (e.g. using the
+  present/imperative tense, and syntax described at
+  http://www.gnu.org/prep/standards/html_node/Change-Logs.html), and properly
+  labelling the author of the code.
+
+- If the change is a new feature or a change in behavior, don't forget to
+  mention it in the etc/NEWS file and to update the Texinfo doc accordingly.
+
+- Be sure your change is accepted as being for the better by the package's
+  maintainer. As a general rule send your patch for review before installing
+  it, unless you're absolutely positively 200% sure that everyone will be
+  pleased with the content and the form of the patch.
+
+Last but not least:
+
+- And make extra sure that all the code you install has the proper copyright:
+  if it is not your own code, make sure the author has signed the relevant
+  copyright papers (for non-trivial contributions), and indicate the author
+  correctly in the commit (and the ChangeLog if applicable).
+
+If you have the slightest doubt about any of those points, send your question
+or your patch to emacs-devel@gnu.org (or bug-gnu-emacs@gnu.org).
+
+Thank you very much for your contribution to Emacs,
etc/yasnippet/snippets/message-mode/proof
@@ -0,0 +1,22 @@
+The list of sections still needing to be proofread is here:
+
+  http://ftp.newartisans.com/pub/emacs-manual.html
+
+If you'd like a suggestion, how about:
+
+| Chapter | Part | Title                          | Page | Length |
+|---------+------+--------------------------------+------+--------|
+|      24 |   17 | Compiling and Testing Programs |  277 |     20 |
+
+Otherwise, please pick any section(s) without a "Checked By" name, and e-mail
+emacs-manual-bugs@gnu.org with the Ch/Pt numbers. I'll then add you to the
+volunteered list. Once you have some edits, send them to the same list, and
+I'll add you to the Checked By column for that section.
+
+It's OK to proofread something that's already been done, if you were hoping to
+brush up on that part of the manual. It's our goal to make sure everything is
+seen at least three times.
+
+Richard has sent instructions to many of you, but in case you haven't received
+them yet, they can be found here:
+https://lists.gnu.org/archive/html/help-gnu-emacs/2018-01/msg00295.html
etc/yasnippet/snippets/message-mode/suggest
@@ -0,0 +1,21 @@
+Hi $1,
+
+I was wondering if you'd be willing to check any of these parts for us:
+
+| Ch |  Pt | Title                                       | Page | Len |
+|----+-----+---------------------------------------------+------+-----|
+| 11 |  7a | Chapter Beginning - Font Lock mode          |   72 |   9 |
+| 13 |   9 | Commands for Fixing Typos                   |  119 |   6 |
+| 14 |     | Keyboard Macros                             |  125 |   8 |
+|    | 10b | Reverting a Buffer - Chapter End            |      |  13 |
+| 17 |     | Multiple Windows                            |  167 |   7 |
+| 24 |  17 | Compiling and Testing Programs              |  277 |  20 |
+|    | 18b | Change Logs - Chapter End                   |      |  13 |
+| 28 |  21 | The Calendar and the Diary                  |  351 |  19 |
+| 30 |  23 | Reading Mail with Rmail                     |  379 |  20 |
+|    | 26b | Customizing Key Bindings - Chapter End      |      |  14 |
+|  C |  29 | Command Line Arguments for Emacs Invocation |  507 |  15 |
+|  E |     | Emacs 25 Antinews                           |  529 |   3 |
+|  F |  31 | Emacs and Mac OS / GNUstep                  |  532 |   3 |
+|  G |     | Emacs and Microsoft Windows/MS-DOS          |  535 |  10 |
+| GL |  33 | Glossary                                    |  553 |  23 |
etc/yasnippet/snippets/org-mode/appt
@@ -0,0 +1,7 @@
+#name : APPT
+# --
+APPT $0
+SCHEDULED: `(with-temp-buffer (org-insert-time-stamp (current-time)))`
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:END:
\ No newline at end of file
etc/yasnippet/snippets/org-mode/assem
@@ -0,0 +1,31 @@
+* NOTE Assembly meeting agenda for `(with-temp-buffer (org-insert-time-stamp (current-time) nil t))`
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:OVERLAY: (face (:background "#e8f9e8"))
+:END:
+** Opening Prayers
+** Attendance [0/9]
+- [$0 ] Caroline Delaney
+- [ ] Todd Zeigler
+- [ ] Becky Thomas
+- [ ] Pamela Fox
+- [ ] Nasim Wiegley
+- [ ] Beth Youker-Schwab
+- [ ] Gail Hill
+- [ ] Christina Stone
+- [ ] John Wiegley
+** Review prior minutes of [2013-01-01 Tue]
+** New Business
+** Outstanding business
+** Upcoming events
+** Secretary's report
+** Feast suggestions
+** Treasurer's Report
+** Consultation
+** Affairs of the Local Spiritual Assembly
+*** P.I. Rep: Caroline
+*** Center Manager: Caroline
+*** Children's Education: Mary Anne, Sisi, Keith
+*** Teaching Committee: Mary Anne, Christina, JohnW and Katy
+*** Center Improvement Committee: Beth, Pamela
+** Next Assembly meeting is [2013-01-01 Tue 00:00]
etc/yasnippet/snippets/org-mode/bbdb
@@ -0,0 +1,3 @@
+#name : bbdb
+# --
+[[bbdb:$1][$1]] $0
\ No newline at end of file
etc/yasnippet/snippets/org-mode/hask
@@ -0,0 +1,2 @@
+#+begin_src haskell
+$0#+end_src
etc/yasnippet/snippets/org-mode/list
@@ -0,0 +1,7 @@
+#name : List NOTE
+# --
+*** NOTE $1 [/]
+- [ ] $0
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:END:
\ No newline at end of file
etc/yasnippet/snippets/org-mode/note
@@ -0,0 +1,6 @@
+#name : NOTE
+# --
+NOTE $0
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:END:
\ No newline at end of file
etc/yasnippet/snippets/org-mode/out
@@ -0,0 +1,4 @@
+#name : :OUTPUT: ... :END:
+# --
+:OUTPUT:
+$0:END:
etc/yasnippet/snippets/org-mode/proj
@@ -0,0 +1,6 @@
+#name : PROJECT
+# --
+PROJECT $0
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:END:
\ No newline at end of file
etc/yasnippet/snippets/org-mode/sh
@@ -0,0 +1,2 @@
+#+begin_src sh
+$0#+end_src
etc/yasnippet/snippets/org-mode/skip
@@ -0,0 +1,3 @@
+:PROPERTIES:
+:BEAMER_act: <2->
+:END:
etc/yasnippet/snippets/org-mode/src
@@ -0,0 +1,3 @@
+# --
+#+begin_src haskell
+$0#+end_src
etc/yasnippet/snippets/org-mode/status
@@ -0,0 +1,23 @@
+**** NOTE Status Report for `(with-temp-buffer (org-insert-time-stamp (current-time) nil t))`
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:END:
+***** Planned and implemented
+
+- 
+
+***** Not planned but implemented
+
+- 
+
+***** Planned but not implemented
+
+- 
+
+***** Planned for next week
+
+- 
+
+***** Questions and concerns
+
+- None this week.
etc/yasnippet/snippets/org-mode/teach
@@ -0,0 +1,21 @@
+* NOTE Assembly meeting agenda for `(with-temp-buffer (org-insert-time-stamp (current-time) nil t))`
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:OVERLAY: (face (:background "#e8f9e8"))
+:END:
+** Opening Prayers
+** Attendance [0/9]
+- [$0 ] Caroline Delaney
+- [ ] Sisi Mereness
+- [ ] John Tempey
+- [ ] Pamela Fox
+- [ ] Nami Peymani
+- [ ] Beth Youker-Schwab
+- [ ] Gail Hill
+- [ ] Christina Stone
+- [ ] John Wiegley
+** Not reviewing prior minutes at this meeting
+** Teaching
+** Consultation
+** New Business
+** Next Assembly meeting is [2013-01-01 Tue 00:00]
\ No newline at end of file
etc/yasnippet/snippets/org-mode/todo
@@ -0,0 +1,7 @@
+#name : TODO
+# --
+TODO $0
+SCHEDULED: `(with-temp-buffer (org-insert-time-stamp (current-time)))`
+:PROPERTIES:
+:ID:       `(shell-command-to-string "uuidgen")`:CREATED: `(with-temp-buffer (org-insert-time-stamp (current-time) t t))`
+:END:
\ No newline at end of file
etc/yasnippet/snippets/python-mode/def
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+# name: de
+# contributor: Orestis Markou
+# contributor: Yasser González Fernández <yglez@uh.cu>
+# contributor: Tibor Simko <tibor.simko@cern.ch>
+# --
+def ${1:name}($2):
+    """
+    $3
+    ${2:$
+    (let* ((indent
+            (concat "\n" (make-string (current-column) 32)))
+           (args
+            (mapconcat
+             '(lambda (x)
+                (if (not (string= (nth 0 x) ""))
+                    (concat "@param " (nth 0 x) ": " indent
+                            "@type " (nth 0 x) ": ")))
+             (mapcar
+              '(lambda (x)
+                 (mapcar
+                  '(lambda (x)
+                     (replace-regexp-in-string "[[:blank:]]*$" ""
+                      (replace-regexp-in-string "^[[:blank:]]*" "" x)))
+                  x))
+              (mapcar '(lambda (x) (split-string x "="))
+                      (split-string yas-text ",")))
+             indent)))
+      (if (string= args "")
+          (concat indent "@return: " indent "@rtype: " indent (make-string 3 34))
+        (mapconcat
+         'identity
+         (list "" args "@return: " "@rtype: " (make-string 3 34))
+         indent)))
+    }
+    $0
etc/yasnippet/snippets/text-mode/ggit
@@ -0,0 +1,1 @@
+https://github.com/vdemeester/$0
lisp/vde-editing.el
@@ -88,6 +88,30 @@
   :config
   (global-whitespace-cleanup-mode 1))
 
+(use-package yasnippet
+  :after (company prog-mode)
+  :defer 5
+  :bind (("C-c y d" . yas-load-directory)
+         ("C-c y i" . yas-insert-snippet)
+         ("C-c y f" . yas-visit-snippet-file)
+         ("C-c y n" . yas-new-snippet)
+         ("C-c y t" . yas-tryout-snippet)
+         ("C-c y l" . yas-describe-tables)
+         ("C-c y g" . yas-global-mode)
+         ("C-c y m" . yas-minor-mode)
+         ("C-c y a" . yas-reload-all)
+         ("C-c y x" . yas-expand))
+  :bind (:map yas-keymap
+              ("C-i" . yas-next-field-or-maybe-expand))
+  :mode ("/\\.emacs\\.d/snippets/" . snippet-mode)
+  :config
+  (yas-load-directory (emacs-path "snippets"))
+  (yas-global-mode 1)
+  :init
+  (add-hook 'term-mode-hook (lambda ()
+                              (yas-minor-mode -1))))
+
+
 (provide 'vde-editing)
 
 ;; Local Variables:
init.el
@@ -152,6 +152,9 @@ packages.")
   :bind (("C-c e M" . command-log-mode)
          ("C-c e L" . clm/open-command-log-buffer)))
 
+(eval-and-compile
+  (define-inline emacs-path (path)
+    (expand-file-name path user-emacs-directory)))
 ;; Reset default values
 (add-hook 'emacs-startup-hook #'vde-set-gc-threshold)