guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: etc: Add snippets.


From: Ricardo Wurmus
Subject: 01/01: etc: Add snippets.
Date: Fri, 15 Dec 2017 17:15:42 -0500 (EST)

rekado pushed a commit to branch master
in repository guix.

commit 42cdcdff1945b112452029c6a79445aac15ffd16
Author: Ricardo Wurmus <address@hidden>
Date:   Fri Dec 15 23:10:54 2017 +0100

    etc: Add snippets.
    
    * etc/snippets/scheme-mode/guix-cvs-reference,
    etc/snippets/scheme-mode/guix-git-reference,
    etc/snippets/scheme-mode/guix-hg-reference,
    etc/snippets/scheme-mode/guix-origin,
    etc/snippets/scheme-mode/guix-package,
    etc/snippets/scheme-mode/guix-svn-reference,
    etc/snippets/text-mode/guix-commit-message-add-package,
    etc/snippets/text-mode/guix-commit-message-update-package: New files.
    * doc/contributing.texi (The Perfect Setup): Document snippets.
---
 doc/contributing.texi                              | 28 ++++++++++++++++++
 etc/snippets/scheme-mode/guix-cvs-reference        |  8 +++++
 etc/snippets/scheme-mode/guix-git-reference        |  7 +++++
 etc/snippets/scheme-mode/guix-hg-reference         |  7 +++++
 etc/snippets/scheme-mode/guix-origin               | 23 +++++++++++++++
 etc/snippets/scheme-mode/guix-package              | 34 ++++++++++++++++++++++
 etc/snippets/scheme-mode/guix-svn-reference        |  7 +++++
 .../text-mode/guix-commit-message-add-package      |  8 +++++
 .../text-mode/guix-commit-message-update-package   |  9 ++++++
 9 files changed, 131 insertions(+)

diff --git a/doc/contributing.texi b/doc/contributing.texi
index 1dd3ea8..01f8aad 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -193,6 +193,34 @@ facilities to directly operate on the syntax tree, such as 
raising an
 s-expression or wrapping it, swallowing or rejecting the following
 s-expression, etc.
 
address@hidden code snippets
address@hidden templates
address@hidden reducing boilerplate
+We also provide templates for common git commit messages and package
+definitions in the @file{etc/snippets} directory.  These templates can
+be used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to
+expand short trigger strings to interactive text snippets.  You may want
+to add the snippets directory to the @var{yas-snippet-dirs} variable in
+Emacs.
+
address@hidden
+;; @r{Assuming the Guix checkout is in ~/src/guix.}
+(with-eval-after-load 'yasnippet
+  (add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets"))
address@hidden lisp
+
+The commit message snippets depend on @url{https://magit.vc/, Magit} to
+display staged files.  When editing a commit message type @code{add}
+followed by @kbd{TAB} to insert a commit message template for adding a
+package; type @code{update} followed by @kbd{TAB} to insert a template
+for updating a package.
+
+The main snippet for @code{scheme-mode} is triggered by typing
address@hidden followed by @kbd{TAB}.  This snippet also inserts the
+trigger string @code{origin...}, which can be expanded further.  The
address@hidden snippet in turn may insert other trigger strings ending on
address@hidden, which also can be expanded further.
+
 
 @node Coding Style
 @section Coding Style
diff --git a/etc/snippets/scheme-mode/guix-cvs-reference 
b/etc/snippets/scheme-mode/guix-cvs-reference
new file mode 100644
index 0000000..fbc5034
--- /dev/null
+++ b/etc/snippets/scheme-mode/guix-cvs-reference
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# name: guix-cvs-reference
+# key: cvs-reference...
+# --
+(cvs-reference
+  (root-directory "${1:root-directory}")
+  (module "${2:module}")
+  (revision "${3:revision}"))
\ No newline at end of file
diff --git a/etc/snippets/scheme-mode/guix-git-reference 
b/etc/snippets/scheme-mode/guix-git-reference
new file mode 100644
index 0000000..29ca6a9
--- /dev/null
+++ b/etc/snippets/scheme-mode/guix-git-reference
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: guix-git-reference
+# key: git-reference...
+# --
+(git-reference
+  (url "$1")
+  (commit ${2:commit}))
\ No newline at end of file
diff --git a/etc/snippets/scheme-mode/guix-hg-reference 
b/etc/snippets/scheme-mode/guix-hg-reference
new file mode 100644
index 0000000..95de16d
--- /dev/null
+++ b/etc/snippets/scheme-mode/guix-hg-reference
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: guix-hg-reference
+# key: hg-reference...
+# --
+(hg-reference
+  (url "$1")
+  (changeset ${2:changeset}))
\ No newline at end of file
diff --git a/etc/snippets/scheme-mode/guix-origin 
b/etc/snippets/scheme-mode/guix-origin
new file mode 100644
index 0000000..68d4713
--- /dev/null
+++ b/etc/snippets/scheme-mode/guix-origin
@@ -0,0 +1,23 @@
+# -*- mode: snippet -*-
+# name: guix-origin
+# key: origin...
+# --
+(origin
+ (method ${1:$$(yas-choose-value "url-fetch"
+                                 "url-fetch/tarbomb"
+                                 "url-fetch/zipbomb"
+                                 "cvs-fetch"
+                                 "git-fetch"
+                                 "hg-fetch"
+                                 "svn-fetch")})
+ (uri ${1:$(cond ((equal yas-text "git-fetch") "git-reference...")
+                 ((equal yas-text "svn-fetch") "svn-reference...")
+                 ((equal yas-text "hg-fetch")  "hg-reference...")
+                 ((equal yas-text "cvs-fetch") "cvs-reference...")
+                 (t "(string-append \\"https://\\"; version 
\\".tar.gz\\")"))}$0)
+ ${1:$(cond ((member yas-text '("git-fetch" "svn-fetch" "hg-fetch" 
"cvs-fetch"))
+             "(file-name (string-append name \\"-\\" version 
\\"-checkout\\"))")
+            (t ""))}
+ (sha256
+  (base32
+    "$2")))
\ No newline at end of file
diff --git a/etc/snippets/scheme-mode/guix-package 
b/etc/snippets/scheme-mode/guix-package
new file mode 100644
index 0000000..d392e82
--- /dev/null
+++ b/etc/snippets/scheme-mode/guix-package
@@ -0,0 +1,34 @@
+# -*- mode: snippet -*-
+# name: guix-package
+# key: package...
+# --
+(define-public $1
+  (package
+    (name "$1")
+    (version "$2")
+    (source origin...$0)
+    (build-system ${3:$$(yas-choose-value "ant-build-system"
+                                          "asdf-build-system"
+                                          "cargo-build-system"
+                                          "cmake-build-system"
+                                          "dub-build-system"
+                                          "emacs-build-system"
+                                          "font-build-system"
+                                          "glib-or-gtk-build-system"
+                                          "gnu-build-system"
+                                          "go-build-system"
+                                          "haskell-build-system"
+                                          "meson-build-system"
+                                          "minify-build-system"
+                                          "ocaml-build-system"
+                                          "perl-build-system"
+                                          "python-build-system"
+                                          "r-build-system"
+                                          "ruby-build-system"
+                                          "texlive-build-system"
+                                          "trivial-build-system"
+                                          "waf-build-system")})
+    (home-page "$4")
+    (synopsis "$5")
+    (description "$6")
+    (license $7)))
\ No newline at end of file
diff --git a/etc/snippets/scheme-mode/guix-svn-reference 
b/etc/snippets/scheme-mode/guix-svn-reference
new file mode 100644
index 0000000..7d897dc
--- /dev/null
+++ b/etc/snippets/scheme-mode/guix-svn-reference
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: guix-svn-reference
+# key: svn-reference...
+# --
+(svn-reference
+  (url "$1")
+  (revision ${2:svn-revision}))
\ No newline at end of file
diff --git a/etc/snippets/text-mode/guix-commit-message-add-package 
b/etc/snippets/text-mode/guix-commit-message-add-package
new file mode 100644
index 0000000..1aebe8a
--- /dev/null
+++ b/etc/snippets/text-mode/guix-commit-message-add-package
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# name: guix-commit-message-add-package
+# key: add
+# condition: git-commit-mode
+# --
+gnu: Add $1.
+
+* `(car (magit-staged-files))` ($1): New variable.
\ No newline at end of file
diff --git a/etc/snippets/text-mode/guix-commit-message-update-package 
b/etc/snippets/text-mode/guix-commit-message-update-package
new file mode 100644
index 0000000..79fcf7c
--- /dev/null
+++ b/etc/snippets/text-mode/guix-commit-message-update-package
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: guix-commit-message-update-package
+# key: update
+# condition: git-commit-mode
+# --
+gnu: $1: Update to $2.
+
+* `(car (magit-staged-files))` ($1): Update to $2.$0
+`(mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files)) 
"\n")`
\ No newline at end of file



reply via email to

[Prev in Thread] Current Thread [Next in Thread]