summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README4
-rw-r--r--wigust/packages/emacs.scm1319
-rw-r--r--wigust/packages/python.scm199
-rw-r--r--wigust/packages/ruby.scm280
4 files changed, 1802 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..dc9e8aa
--- /dev/null
+++ b/README
@@ -0,0 +1,4 @@
+-*- mode: org -*-
+
+This repository contains Guix packages not included in origin
+repository or modified for own purposes. \ No newline at end of file
diff --git a/wigust/packages/emacs.scm b/wigust/packages/emacs.scm
new file mode 100644
index 0000000..920a317
--- /dev/null
+++ b/wigust/packages/emacs.scm
@@ -0,0 +1,1319 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix 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.
+;;;
+;;; GNU Guix 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 Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (wigust packages emacs)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix gexp)
+ #:use-module (guix monads)
+ #:use-module (guix store)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system emacs)
+ #:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system trivial)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages shells)
+ #:use-module (gnu packages chez)
+ #:use-module (gnu packages code)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages haskell)
+ #:use-module (gnu packages tex)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages tcl)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages lesstif)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages w3m)
+ #:use-module (gnu packages wget)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages acl)
+ #:use-module (gnu packages package-management)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pdf)
+ #:use-module (gnu packages scheme)
+ #:use-module (gnu packages statistics)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages mp3)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages fribidi)
+ #:use-module (gnu packages gd)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages emacs)
+ #:use-module (guix utils)
+ #:use-module (srfi srfi-1)
+ #:use-module (ice-9 match))
+
+(define-public emacs-company-lua
+ (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4")
+ (revision "1"))
+ (package
+ (name "emacs-company-lua")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ptrv/company-lua.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-company" ,emacs-company)
+ ("emacs-s" ,emacs-s)
+ ("emacs-f" ,emacs-f)
+ ("emacs-lua-mode" ,emacs-lua-mode)))
+ (home-page "https://github.com/ptrv/company-lua")
+ (synopsis "Company backend for Lua")
+ (description "Company backend for Lua")
+ (license license:gpl3+))))
+
+(define-public emacs-company-quickhelp
+ (package
+ (name "emacs-company-quickhelp")
+ (version "2.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/expez/company-quickhelp/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-pos-tip" ,emacs-pos-tip)
+ ("emacs-company" ,emacs-company)))
+ (home-page "https://www.github.com/expez/company-quickhelp")
+ (synopsis "Popup documentation for completion candidates")
+ (description "Emacs @code{company-mode} extension to show a documentation
+for the completion candidate.")
+ (license license:gpl3+)))
+
+(define-public emacs-company-tern
+ (package
+ (name "emacs-company-tern")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/proofit404/company-tern/archive/"
+ "v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qgrgnbajgnsnx4az4ajnlrhc73q0xxjikk617nf3cs87x4772a6"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-company" ,emacs-company)
+ ("emacs-tern" ,emacs-tern)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/proofit404/company-tern")
+ (synopsis "Tern backend for company-mode")
+ (description "Tern backend for company-mode.")
+ (license license:gpl3+)))
+
+(define-public emacs-discover-my-major
+ (package
+ (name "emacs-discover-my-major")
+ (version "1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://github.com/steckerhalter/discover-my-major"
+ "/archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-makey" ,emacs-makey)))
+ (home-page
+ "https://github.com/steckerhalter/discover-my-major")
+ (synopsis "Discover key bindings for the current Emacs major mode")
+ (description
+ "Discover key bindings and their meaning for the current Emacs major mode ")
+ (license license:gpl3+)))
+
+(define-public emacs-dumb-jump
+ (package
+ (name "emacs-dumb-jump")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jacktasia/dumb-jump/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "14sfnlgfc81y2il5v0njvmdh39lxpy8kz4j0prlc2rzd2bk0a8n5"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-f" ,emacs-f)
+ ("emacs-s" ,emacs-s)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-popup" ,emacs-popup)))
+ (home-page "https://github.com/jacktasia/dumb-jump")
+ (synopsis "Jump to definition for multiple languages without configuration")
+ (description "Dumb Jump is an Emacs \"jump to definition\" package with
+support for multiple programming languages that favors \"just working\" over
+speed or accuracy. This means minimal -- and ideally zero -- configuration
+with absolutely no stored indexes (TAGS) or persistent background processes.
+Dumb Jump performs best with The Silver Searcher `ag` or ripgrep `rg`
+installed. Dumb Jump requires at least GNU Emacs 24.3. ")
+ (license license:gpl3+)))
+
+(define-public emacs-edit-indirect
+ (package
+ (name "emacs-edit-indirect")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/Fanael/edit-indirect")
+ (synopsis "Edit regions in separate buffers")
+ (description "Edit regions in separate buffers, like
+@code{org-edit-src-code} but for arbitrary regions.")
+ (license license:gpl3+)))
+
+(define-public emacs-edit-server
+ (package
+ (name "emacs-edit-server")
+ (version "1.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir-elisp
+ ;; Elisp directory is not in root of the source.
+ (lambda _
+ (chdir "servers"))))))
+ (home-page "https://github.com/stsquad/emacs_chrome")
+ (synopsis "Server that responds to edit requests from Chromium")
+ (description "Provides an edit server to respond to requests from Emacs.
+
+To open pages for editing in new buffers in your existing Emacs
+instance:
+
+@code{(when (require 'edit-server nil t)
+ (setq edit-server-new-frame nil)
+ (edit-server-start))}
+
+To open pages for editing in new frames using a running emacs
+started in --daemon mode:
+
+@code{(when (and (require 'edit-server nil t) (daemonp))
+ (edit-server-start))}
+
+Buffers are edited in `text-mode' by default; to use a different
+major mode, change `edit-server-default-major-mode' or customize
+`edit-server-url-major-mode-alist' to specify major modes based
+on the remote URL:
+
+@code{(setq edit-server-url-major-mode-alist
+ '((\"github\\\\.com\" . markdown-mode)))}
+
+Alternatively, set the mode in `edit-server-start-hook'. For
+example:
+
+@code{(add-hook 'edit-server-start-hook
+ (lambda ()
+ (when (string-match \"github.com\" (buffer-name))
+ (markdown-mode))))}")
+ (license license:gpl3+)))
+
+(define-public emacs-elisp-refs
+ (package
+ (name "emacs-elisp-refs")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-f" ,emacs-f)
+ ("emacs-list-utils" ,emacs-list-utils)
+ ("emacs-loop" ,emacs-loop)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/Wilfred/elisp-refs")
+ (synopsis "Find callers of elisp functions or macros")
+ (description "Find references to functions, macros or variables. Unlike a
+dumb text search, @code{elisp-refs} actually parses the code, so it's never
+confused by comments or @code{foo-bar} matching @code{foo}.")
+ (license license:gpl3+)))
+
+(define-public emacs-ggtags
+ (package
+ (name "emacs-ggtags")
+ (version "0.8.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
+ version ".el"))
+ (sha256
+ (base32
+ "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/leoliu/ggtags")
+ (synopsis "Frontend to GNU Global source code tagging system")
+ (description "Emacs frontend to GNU Global source code tagging system.
+
+The goal is to make working with GNU Global in Emacs as effortlessly and
+intuitively as possible and to integrate tightly with standard emacs packages.
+
+Features:
+@itemize
+@item Build on @code{compile.el} for asynchronicity and its large feature-set.
+@item Automatically update Global's tag files when needed with tuning for
+large source trees.
+@item Intuitive navigation among multiple matches with mode-line display of
+current match, total matches and exit status.
+@item Read tag with completion.
+@item Show definition at point.
+@item Jump to #include files.
+@item Support search history and saving a search to register/bookmark.
+@item Query replace.
+@item Manage Global's environment variables on a per-project basis.
+@item Highlight (definition) tag at point.
+@item Abbreviated display of file names.
+@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
+@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
+@code{pygments} backend.
+@item Support all Global's output formats: @code{grep}, @code{ctags-x},
+@code{cscope} etc.
+@item Support projects on remote hosts (e.g. via ``tramp``).
+@item Support eldoc.
+@item Search @code{GTAGSLIBPATH} for references and symbols.
+@end itemize\n")
+ (license license:gpl3+)))
+
+(define-public emacs-helm-youtube
+ (let ((revision "1")
+ (commit "202c27fc3b54927611e9d9c764465e1b42ef7e41"))
+ (package
+ (name "emacs-helm-youtube")
+ (version "1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/maximus12793/helm-youtube.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1wqxcz03fq2z31a1n90dg9ap3451vx1376ijbpfy9sg66pgj8yxv"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-request" ,emacs-request)
+ ("emacs-helm" ,emacs-helm)))
+ (home-page "https://github.com/maximus12793/helm-youtube")
+ (synopsis "Query YouTube and play videos in your browser")
+ (description "This package provides an interactive prompt to search on
+Youtube.")
+ (license license:gpl3+))))
+
+(define-public emacs-helpful
+ (package
+ (name "emacs-helpful")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Wilfred/helpful/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-elisp-refs" ,emacs-elisp-refs)))
+ (home-page "https://github.com/Wilfred/helpful")
+ (synopsis "More contextual information in Emacs help")
+ (description "@code{helpful} is an alternative to the built-in Emacs help
+that provides much more contextual information.
+
+@itemize
+@item Show the source code for interactively defined functions (unlike the
+built-in Help).
+@item Fall back to the raw sexp if no source is available.
+@item Show where a function is being called.
+@item Docstrings will Highlight the summary (the first sentence), include
+cross-references, hide superfluous puncuation.
+@item Show you the properties that have been applied to the current
+symbol. This provides visibility of features like edebug or byte-code
+optimisation.
+@item Provide a separate @code{helpful-command} function to view interactive
+functions.
+@item Display any keybindings that apply to interactive functions.
+@item Trace, disassemble functions from inside Helpful. This is discoverable
+and doesn't require memorisation of commands.
+@end itemize\n")
+ (license license:gpl3+)))
+
+(define-public emacs-highlight-defined
+ (package
+ (name "emacs-highlight-defined")
+ (version "0.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Fanael/highlight-defined/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/Fanael/highlight-defined")
+ (synopsis "Syntax highlighting of known Elisp symbols")
+ (description "Minor mode providing syntax highlighting of known Emacs Lisp
+symbols. Currently the code distinguishes Lisp functions, built-in functions,
+macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
+ (license license:gpl3+)))
+
+(define-public emacs-highlight-numbers
+ (package
+ (name "emacs-highlight-numbers")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Fanael/highlight-numbers/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-parent-mode" ,emacs-parent-mode)))
+ (home-page "https://github.com/Fanael/highlight-numbers")
+ (synopsis "Highlight numbers in source code")
+ (description "@code{highlight-numbers-mode} provides a minor mode for
+syntax highlighting of numeric literals in source code.
+
+It s customizable: it's easy to add or redefine what exactly consitutes a
+\"number\" in given major mode. See @code{highlight-numbers-modelist}.")
+ (license license:gpl3+)))
+
+(define-public emacs-indium
+ (package
+ (name "emacs-indium")
+ (version "0.7.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/NicolasPetton/Indium/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1r4cag75w11giihh5kkczppqibwc0qr237s5p00y5cvv6z3hhy8g"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-seq" ,emacs-seq)
+ ("emacs-js2-mode" ,emacs-js2-mode)
+ ("emacs-company" ,emacs-company)
+ ("emacs-websocket" ,emacs-websocket)
+ ("emacs-memoize" ,emacs-memoize)
+ ("emacs-sourcemap" ,emacs-sourcemap)))
+ (home-page "https://github.com/NicolasPetton/indium")
+ (synopsis "JavaScript Awesome Development Environment")
+ (description "Indium connects to a browser tab or nodejs process and
+provides many features for JavaScript development, including a REPL (with auto
+completion) & object inspection, an inspector, with history and navigation,
+and even a stepping Debugger, similar to @code{edebug}, or @code{cider}.")
+ (license license:gpl3+)))
+
+(define-public emacs-json-mode
+ (package
+ (name "emacs-json-mode")
+ (version "1.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
+ "v" version ".tar.gz"))
+ (sha256
+ (base32
+ "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-json-reformat" ,emacs-json-reformat)
+ ("emacs-json-snatcher" ,emacs-json-snatcher)))
+ (home-page
+ "https://github.com/joshwnj/json-mode")
+ (synopsis "Major mode for editing JSON files.")
+ (description "Extend the builtin js-mode's syntax highlighting ")
+ (license license:gpl3+)))
+
+(define-public emacs-json-reformat
+ (package
+ (name "emacs-json-reformat")
+ (version "0.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/gongo/json-reformat/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/gongo/json-reformat")
+ (synopsis "Reformatting tool for JSON")
+ (description "json-reformat.el is a reformatting tool for
+JSON (http://json.org/).
+
+## Usage
+
+ 1. Specify region
+ 2. Call 'M-x json-reformat-region'
+
+## Customize
+
+ - `json-reformat:indent-width'
+ - `json-reformat:pretty-string?'
+")
+ (license license:gpl3+)))
+
+(define-public emacs-json-snatcher
+ (package
+ (name "emacs-json-snatcher")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
+ (build-system emacs-build-system)
+ (home-page "http://github.com/sterlingg/json-snatcher")
+ (synopsis "Grabs the path to JSON values in a JSON file")
+ (description "Well this was my first excursion into ELisp programmming.
+It didn't go too badly once I fiddled around with a bunch of the functions.
+
+The process of getting the path to a JSON value at point starts with
+a call to the jsons-print-path function.
+
+It works by parsing the current buffer into a list of parse tree nodes
+if the buffer hasn't already been parsed in the current Emacs session.
+While parsing, the region occupied by the node is recorded into the
+jsons-parsed-regions hash table as a list.The list contains the location
+of the first character occupied by the node, the location of the last
+character occupied, and the path to the node. The parse tree is also stored
+in the jsons-parsed list for possible future use.
+
+Once the buffer has been parsed, the node at point is looked up in the
+jsons-curr-region list, which is the list of regions described in the
+previous paragraph for the current buffer. If point is not in one of these
+interval ranges nil is returned, otherwise the path to the value is returned
+in the form [<key-string>] for objects, and [<loc-int>] for arrays.
+eg: ['value1'][0]['value2'] gets the array at with name value1, then gets the
+0th element of the array (another object), then gets the value at 'value2'.
+
+
+Installation:
+
+IMPORTANT: Works ONLY in Emacs 24 due to the use of the lexical-binding variable.
+
+To install add the json-snatcher.el file to your load-path, and
+add the following lines to your .emacs file:
+(require 'json-snatcher)
+(defun js-mode-bindings ()
+ \"Sets a hotkey for using the json-snatcher plugin.\"
+ (when (string-match \"\\\\.json$\" (buffer-name))
+ (local-set-key (kbd \"C-c C-g\") 'jsons-print-path)))
+(add-hook 'js-mode-hook 'js-mode-bindings)
+(add-hook 'js2-mode-hook 'js-mode-bindings)
+
+This binds the key to snatch the path to the JSON value to C-c C-g only
+when either JS mode, or JS2 mode is active on a buffer ending with
+the .json extension.")
+ (license license:gpl3+)))
+
+(define-public emacs-list-utils
+ (package
+ (name "emacs-list-utils")
+ (version "0.4.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
+ (build-system emacs-build-system)
+ (home-page "http://github.com/rolandwalker/list-utils")
+ (synopsis "List-manipulation utility functions")
+ (description "List manipulation library for Emacs.")
+ (license license:gpl3+)))
+
+(define-public emacs-loop
+ (package
+ (name "emacs-loop")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/Wilfred/loop.el")
+ (synopsis "Imperative loop structures for Emacs")
+ (description "Loop structures familiar to users of other languages. This
+library adds a selection of popular loop structures as well as break and
+continue.")
+ (license license:gpl3+)))
+
+(define-public emacs-makey
+ (package
+ (name "emacs-makey")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mickeynp/makey/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/mickeynp/makey")
+ (synopsis "Interactive commandline mode")
+ (description "Interactive commandline mode")
+ (license license:gpl3+)))
+
+(define-public emacs-nnreddit
+ (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
+ (revision "1"))
+ (package
+ (name "emacs-nnreddit")
+ (version (string-append "0.0.1-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/paul-issartel/nnreddit.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/paul-issartel/nnreddit")
+ (synopsis "Reddit backend for the Gnus newsreader")
+ (description "@url{https://www.reddit.com} backend for the Gnus
+newsreader.")
+ (license license:gpl3+))))
+
+(define-public emacs-npm-mode
+ (package
+ (name "emacs-npm-mode")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/mojochao/npm-mode")
+ (synopsis "Minor mode for working with npm projects")
+ (description "@code{npm-mode} provides a minor mode to work with npm
+projects.")
+ (license license:gpl3+)))
+(define-public emacs-org-protocol-capture-html
+ (let ((commit "0e39b7e2261599d28e6bbd094a0657d9315719bc")
+ (revision "1"))
+ (package
+ (name "emacs-org-protocol-capture-html")
+ (version (string-append "0.0.1-" revision "."
+ (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/alphapapa/org-protocol-capture-html.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0l80nb2dxfm1bws1rqqkavswnpyqbwlv84q1zp4lrsfarjb3l56c"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("pandoc" ,ghc-pandoc)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-shell-script
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "org-protocol-capture-html.sh"
+ (string-append (assoc-ref outputs "out")
+ "/bin")))))))
+ (home-page "https://github.com/alphapapa/org-protocol-capture-html.git")
+ (synopsis "Captures Web pages into Org using Pandoc to process HTML")
+ (description "This package captures Web pages into Org-mode using Pandoc to
+process HTML. It can also use eww's eww-readable functionality to
+get the main content of a page.
+
+These are the helper functions that run in Emacs. To capture pages
+into Emacs, you can use either a browser bookmarklet or the
+org-protocol-capture-html.sh shell script. See the README.org file
+for instructions.")
+ (license license:gpl3+))))
+
+(define-public emacs-parent-mode
+ (package
+ (name "emacs-parent-mode")
+ (version "2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/Fanael/parent-mode")
+ (synopsis "Get major mode's parent modes")
+ (description "Get major mode's parent modes")
+ (license license:gpl3+)))
+
+(define-public emacs-pos-tip
+ (package
+ (name "emacs-pos-tip")
+ (version "0.4.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri "https://www.emacswiki.org/emacs/download/pos-tip.el")
+ (file-name (string-append "pos-tip-" version ".el"))
+ (sha256
+ (base32
+ "1c14693h903mbgapks9zgxl6l3pkipc5r7n4ik0szjl4hsghc4z3"))))
+ (build-system emacs-build-system)
+ (home-page "https://www.emacswiki.org/emacs/pos-tip.el")
+ (synopsis "Function to display a tooltip at mouse position")
+ (description "The standard library tooltip.el provides the function for
+displaying a tooltip at mouse position which allows users to easily show it.
+However, locating tooltip at arbitrary buffer position in window is not easy.
+This program provides such function to be used by other frontend programs.")
+ (license license:gpl2+)))
+
+(define-public emacs-rjsx-mode
+ (package
+ (name "emacs-rjsx-mode")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/felipeochoa/rjsx-mode/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vlk298g79nz0cw5sgnp2683gr72x5sfsqbyxjsg521ka3lyjq98"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-js2-mode" ,emacs-js2-mode)))
+ (home-page "https://github.com/felipeochoa/rjsx-mode/")
+ (synopsis "Real support for JSX")
+ (description "Defines a major mode @code{rjsx-mode} based on
+@code{js2-mode} for editing JSX files. @code{rjsx-mode} extends the parser in
+@code{js2-mode} to support the full JSX syntax. This means you get all of the
+@code{js2} features plus proper syntax checking and highlighting of JSX code
+blocks.
+
+Some features that this mode adds to js2:
+
+@itemize
+@item Highlighting JSX tag names and attributes (using the rjsx-tag and
+rjsx-attr faces)
+@item Highlight undeclared JSX components
+@item Parsing the spread operator {...otherProps}
+@item Parsing && and || in child expressions {cond && <BigComponent/>}
+@item Parsing ternary expressions {toggle ? <ToggleOn /> : <ToggleOff />}
+@end itemize
+
+Additionally, since rjsx-mode extends the js2 AST, utilities using
+the parse tree gain access to the JSX structure.")
+ (license license:gpl3+)))
+
+(define-public emacs-seq
+ (package
+ (name "emacs-seq")
+ (version "2.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
+ (sha256
+ (base32
+ "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
+ (build-system emacs-build-system)
+ (home-page "http://elpa.gnu.org/packages/seq.html")
+ (synopsis "Sequence manipulation functions")
+ (description "Sequence-manipulation functions that complement basic
+functions provided by subr.el.
+
+All functions are prefixed with \"seq-\".
+
+All provided functions work on lists, strings and vectors.
+
+Functions taking a predicate or iterating over a sequence using a function as
+argument take the function as their first argument and the sequence as their
+second argument. All other functions take the sequence as their first
+argument.")
+ (license license:gpl3+)))
+
+(define-public emacs-skewer-mode
+ (package
+ (name "emacs-skewer-mode")
+ (version "1.6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-simple-httpd" ,emacs-simple-httpd)
+ ("emacs-js2-mode" ,emacs-js2-mode)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-html-js
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((skewer-mode (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp/guix.d"
+ "/skewer-mode-"
+ ,version)))
+ (for-each (lambda (file)
+ (install-file file skewer-mode))
+ '("example.html"
+ "skewer-everything.user.js"
+ "skewer.js")))
+ #t)))))
+ (home-page "https://github.com/skeeto/skewer-mode")
+ (synopsis "Live web development in Emacs")
+ (description
+ "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
+a web browser. Expressions are sent on-the-fly from an editing buffer to be
+evaluated in the browser, just like Emacs does with an inferior Lisp process
+in Lisp modes.")
+ (license license:unlicense)))
+
+(define-public emacs-slime-company
+ (package
+ (name "emacs-slime-company")
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/anwyn/slime-company/archive/"
+ "v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-slime" ,emacs-slime)
+ ("emacs-company" ,emacs-company)))
+ (home-page "http://company-mode.github.io")
+ (synopsis
+ "slime completion backend for company mode")
+ (description
+ "This is a backend implementation for the completion package company-mode
+by Nikolaj Schumacher. Supports the normal and the fuzzy completion modes of
+SLIME.
+
+Installation:
+
+ Put this file somewhere into your load-path
+ (or just into slime-path/contribs) and then call
+
+ (slime-setup '(slime-company))
+
+Also have the following, more convenient key bindings for company mode in my
+.emacs:
+
+ (define-key company-active-map (kbd \"\\C-n\") 'company-select-next)
+ (define-key company-active-map (kbd \"\\C-p\") 'company-select-previous)
+ (define-key company-active-map (kbd \"\\C-d\") 'company-show-doc-buffer)
+ (define-key company-active-map (kbd \"M-.\") 'company-show-location)
+")
+ (license license:gpl3+)))
+
+(define-public emacs-sourcemap
+ (package
+ (name "emacs-sourcemap")
+ (version "0.03")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/syohex/emacs-sourcemap")
+ (synopsis "Sourcemap parser")
+ (description "Sourcemap parser")
+ (license license:gpl3+)))
+
+(define-public emacs-sr-speedbar
+ (package
+ (name "emacs-sr-speedbar")
+ (version "20161025")
+ (source
+ (origin
+ (method url-fetch)
+ (uri "https://www.emacswiki.org/emacs/download/sr-speedbar.el")
+ (file-name (string-append "sr-speedbar-" version ".el"))
+ (sha256
+ (base32
+ "15kvl270a5xx1w5fjlrawslnpwyks2x17356xcr0idhv5xw2wn30"))))
+ (build-system emacs-build-system)
+ (home-page "https://www.emacswiki.org/emacs/download/sr-speedbar.el")
+ (synopsis "Same frame Emacs @code{speedbar}")
+ (description "Show the speedbar in the same Emacs frame or in an extra
+window. Customize the inital width of the speedbar.")
+ (license license:gpl3+)))
+
+(define-public emacs-stickyfunc-enhance
+ (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
+ (revision "1"))
+ (package
+ (name "emacs-stickyfunc-enhance")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
+ (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
+ (description
+ "@code{semantic-stickyfunc-mode} shows the function point is currently
+in at the first line of the current buffer. This is useful when you have a
+very long function that spreads more than a screen, and you don't have to
+scroll up to read the function name and then scroll down to original position.")
+ (license license:gpl3+))))
+
+(define-public emacs-stumpwm-mode
+ (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
+ (revision "1"))
+ (package
+ (name "emacs-stumpwm-mode")
+ (version (string-append "0.0.1-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stumpwm/stumpwm-contrib.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir-elisp
+ ;; Elisp directory is not in root of the source.
+ (lambda _
+ (chdir "util/swm-emacs"))))))
+ (home-page "https://github.com/stumpwm/stumpwm-contrib")
+ (synopsis "Emacs minor-mode for Stumpwm")
+ (description "Emacs minor-mode for Stumpwm")
+ (license license:gpl3+))))
+
+(define-public emacs-suggest
+ (package
+ (name "emacs-suggest")
+ (version "0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-loop" ,emacs-loop)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-s" ,emacs-s)
+ ("emacs-f" ,emacs-f)))
+ (home-page "https://github.com/Wilfred/suggest.el")
+ (synopsis "Suggest Elisp functions that give the output requested")
+ (description "Suggest.el will find functions that give the output
+requested. It's a great way of exploring list, string and arithmetic
+functions.")
+ (license license:gpl3+)))
+
+(define-public emacs-tern
+ (package
+ (name "emacs-tern")
+ (version "0.21.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/ternjs/tern/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1pzchd29i6dxfgm0ackr2vc2xqpczjkwl5h6l8jils0bcfaj48ss"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir-elisp
+ ;; Elisp directory is not in root of the source.
+ (lambda _
+ (chdir "emacs"))))))
+ (home-page "http://ternjs.net/")
+ (synopsis "Tern-powered JavaScript integration")
+ (description "Tern-powered JavaScript integration.")
+ (license license:gpl3+)))
+
+(define-public emacs-web-beautify
+ (package
+ (name "emacs-web-beautify")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/yasuyk/web-beautify")
+ (synopsis "Format HTML, CSS and JavaScript/JSON")
+ (description "Add the following to your Emacs init file.
+
+ (require 'web-beautify) ;; Not necessary if using ELPA package
+ (eval-after-load 'js2-mode
+ '(define-key js2-mode-map (kbd \"C-c b\") 'web-beautify-js))
+ (eval-after-load 'json-mode
+ '(define-key json-mode-map (kbd \"C-c b\") 'web-beautify-js))
+ (eval-after-load 'sgml-mode
+ '(define-key html-mode-map (kbd \"C-c b\") 'web-beautify-html))
+ (eval-after-load 'css-mode
+ '(define-key css-mode-map (kbd \"C-c b\") 'web-beautify-css))
+
+If you want to automatically format before saving a file,
+add the following hook to your Emacs configuration:
+
+ (eval-after-load 'js2-mode
+ '(add-hook 'js2-mode-hook
+ (lambda ()
+ (add-hook 'before-save-hook 'web-beautify-js-buffer t t))))
+
+ (eval-after-load 'json-mode
+ '(add-hook 'json-mode-hook
+ (lambda ()
+ (add-hook 'before-save-hook 'web-beautify-js-buffer t t))))
+
+ (eval-after-load 'sgml-mode
+ '(add-hook 'html-mode-hook
+ (lambda ()
+ (add-hook 'before-save-hook 'web-beautify-html-buffer t t))))
+
+ (eval-after-load 'css-mode
+ '(add-hook 'css-mode-hook
+ (lambda ()
+ (add-hook 'before-save-hook 'web-beautify-css-buffer t t))))
+
+For more information, See URL https://github.com/yasuyk/web-beautify.")
+ (license license:gpl3+)))
+
+(define-public emacs-websocket
+ (package
+ (name "emacs-websocket")
+ (version "1.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/ahyatt/emacs-websocket/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "07nz1spb2nklyf94fdh1rzbmscms9qxc7ypl77fzyvyw3az6qr50"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/ahyatt/emacs-websocket")
+ (synopsis "Emacs WebSocket client and server")
+ (description "This implements RFC 6455, which can be found at
+@url{http://tools.ietf.org/html/rfc6455}.
+
+This library contains code to connect Emacs as a client to a websocket server,
+and for Emacs to act as a server for websocket connections.
+
+Websockets clients are created by calling @code{websocket-open}, which returns
+a @code{websocket} struct. Users of this library use the websocket struct,
+and can call methods @code{websocket-send-text}, which sends text over the
+websocket, or @code{websocket-send}, which sends a @code{websocket-frame}
+struct, enabling finer control of what is sent. A callback is passed to
+@code{websocket-open} that will retrieve websocket frames called from the
+websocket. Websockets are eventually closed with @code{websocket-close}.
+
+Server functionality is similar. A server is started with
+@code{websocket-server} called with a port and the callbacks to use, which
+returns a process. The process can later be closed with
+@code{websocket-server-close}. A @code{websocket} struct is also created for
+every connection, and is exposed through the callbacks.")
+ (license license:gpl3+)))
+
+(define-public emacs-wordgen
+ (package
+ (name "emacs-wordgen")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/Fanael/wordgen.el")
+ (synopsis "Random word generator")
+ (description "Generate random words using user-provided rules.
+
+Example:
+(wordgen '((result (concat-reeval [(2 1) (5 2) (4 3)] syl))
+ (syl (++ c v coda))
+ (c [(4 \"p\") (5 \"t\") (5 \"k\") (3 \"m\") (4 \"n\") (3 \"s\") (4
+\"l\") (3 \"r\")])
+ (v [\"a\" \"e\" \"i\" \"o\" \"u\"])
+ (coda [(4 \"\") \"m\" \"n\"]))
+ :word-count 5)
+
+=> (\"komlamkim\" \"kepa\" \"mennem\" \"ne\" \"palu\")
+
+See the function `wordgen' for complete description.
+")
+ (license license:gpl3+)))
+
+(define-public geiser-checkout
+ (let ((commit "9581e61f9d8839281fe42344dd5fe885ea7359ea")
+ (revision "1"))
+ (package
+ (inherit geiser)
+ (name "geiser")
+ (version (string-append "0.9" "-" revision "."
+ (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.savannah.gnu.org/geiser.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "0nx86pzncab0b7700m8sc7k3nzml4v9frrq77lljjcjhw71gnvnn"))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("texinfo" ,texinfo)
+ ,@(package-native-inputs geiser)))
+ (arguments
+ (substitute-keyword-arguments
+ `(#:parallel-build? #t
+ #:tests? #f
+ ,@(package-arguments geiser))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'autogen
+ (lambda _
+ (zero? (system* "sh" "autogen.sh"))))
+ (delete 'reset-gzip-timestamps))))))))
+
+(define-public emacs-guix-checkout
+ (package
+ (inherit emacs-guix)
+ (version (string-append (package-version emacs-guix) "-checkout"))
+ (propagated-inputs
+ `(("geiser" ,geiser-checkout)
+ ("dash" ,emacs-dash)
+ ("bui" ,emacs-bui)
+ ("magit-popup" ,emacs-magit-popup)))))
+
+(define-public emacs-checkout
+ (let ((commit "d31cd79b40dbd5459b16505a4ee4340210499277")
+ (revision "1"))
+ (package
+ (inherit emacs)
+ (name "emacs")
+ (version (string-append "26.0.50" "-" revision "."
+ (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ ;; "git://git.savannah.gnu.org/emacs.git"
+ (url "git://localhost/~natsu/src/emacs")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (patches (search-patches "emacs-exec-path.patch"
+ "emacs-source-date-epoch.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete the bundled byte-compiled elisp files and
+ ;; generated autoloads.
+ '(with-directory-excursion "lisp"
+ (for-each delete-file
+ (append (find-files "." "\\.elc$")
+ (find-files "." "loaddefs\\.el$")))
+
+ ;; Make sure Tramp looks for binaries in the right places on
+ ;; remote GuixSD machines, where 'getconf PATH' returns
+ ;; something bogus.
+ (substitute* "net/tramp-sh.el"
+ ;; Patch the line after "(defcustom tramp-remote-path".
+ (("\\(tramp-default-remote-path")
+ (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
+ "~/.guix-profile/bin" "~/.guix-profile/sbin"
+ "/run/current-system/profile/bin"
+ "/run/current-system/profile/sbin")))))
+ (sha256
+ (base32 "0rzv8rj27nazvls3r1wfxbnx42h3qp2qbqzljvi1j4pa59k1n7zf"))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("bash" ,bash-minimal)
+ ("perl" ,perl)
+ ("rc" ,rc)
+ ("python" ,python-2.7)
+ ("chez-scheme" ,chez-scheme)
+ ,@(package-native-inputs emacs)))
+ (arguments
+ (substitute-keyword-arguments
+ `(#:parallel-build? #t
+ #:tests? #f
+ ,@(package-arguments emacs))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'autogen
+ (lambda _
+ (zero? (system* "sh" "autogen.sh"))))
+ (delete 'reset-gzip-timestamps))))))))
+
+(define-public emacs-indium-checkout
+ (let ((commit "d98a9e0cd11d8230c4c3d0b59c4ac60520e34ebb")
+ (revision "1"))
+ (package
+ (inherit emacs-indium)
+ (name "emacs-indium")
+ (version (string-append (package-version emacs-indium) "-" revision "."
+ (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/NicolasPetton/Indium.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1q3yf45fmbjppv3ahb1gdb95pa3kyn18x5m23ihpxz1pziz3a074")))))))
+
diff --git a/wigust/packages/python.scm b/wigust/packages/python.scm
new file mode 100644
index 0000000..474175b
--- /dev/null
+++ b/wigust/packages/python.scm
@@ -0,0 +1,199 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix 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.
+;;;
+;;; GNU Guix 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 Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (wigust packages python)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages adns)
+ #:use-module (gnu packages attr)
+ #:use-module (gnu packages backup)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages crypto)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages django)
+ #:use-module (gnu packages file)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gstreamer)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages openstack)
+ #:use-module (gnu packages password-utils)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages sdl)
+ #:use-module (gnu packages search)
+ #:use-module (gnu packages shells)
+ #:use-module (gnu packages ssh)
+ #:use-module (gnu packages statistics)
+ #:use-module (gnu packages tex)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages tcl)
+ #:use-module (gnu packages bdw-gc)
+ #:use-module (gnu packages python)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system python)
+ #:use-module (guix build-system trivial)
+ #:use-module (srfi srfi-1))
+
+(define-public python-ranger-fm
+ (package
+ (name "python-ranger-fm")
+ (version "1.9.0b5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ranger-fm" version))
+ (sha256
+ (base32
+ "0iqghgyhrn27pfyl63mn6g8lkd3768mqk6gn8gfg2hysfd1p8gfw"))))
+ (build-system python-build-system)
+ (home-page "http://ranger.nongnu.org")
+ (synopsis "Vim-like file manager")
+ (description "Vim-like file manager")
+ (license #f)))
+
+(define-public python-github
+ (let ((commit "c82e90e5bd65eaadeabbdbbbe37bc7e3dc295b3e")
+ (revision "1"))
+ (package
+ (name "python-github")
+ (version (string-append "1.0.0a4" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sigmavirus24/github3.py.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "17vfzjshr5p567x28zvilcsy0n814hcx4wjiz185n7p44sgc577r"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-ndg-httpsclient" ,python-ndg-httpsclient)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-pyopenssl" ,python-pyopenssl)
+ ("python-betamax-matchers" ,python-betamax-matchers)
+ ("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-uritemplate" ,python-uritemplate)))
+ (home-page "https://github3py.readthedocs.org")
+ (synopsis "Python wrapper for the GitHub API")
+ (description "Python wrapper for the GitHub API
+@url{http://developer.github.com/v3}.")
+ (license license:bsd-3))))
+
+(define-public python2-github
+ (let ((base (package-with-python2
+ (strip-python2-variant python-github))))
+ (package
+ (inherit base)
+ (propagated-inputs
+ `(("python2-unittest2" ,python2-unittest2)
+ ,@(package-propagated-inputs base))))))
+
+(define-public python-livereload
+ (package
+ (name "python-livereload")
+ (version "2.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "livereload" version))
+ (sha256
+ (base32
+ "0b2yyfnpddmrwjfqsndidzchkf3l9jlgzfkwl8dplim9gq6y2ba2"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)
+ ("python-tornado" ,python-tornado)))
+ (home-page "https://github.com/lepture/python-livereload")
+ (synopsis "Python LiveReload is an awesome tool for web developers")
+ (description "Python LiveReload is an awesome tool for web developers")
+ (license license:bsd-3)))
+
+(define-public python-starred
+ (let ((commit "aa4c010c791a4f84f6e26f96685552ef2ef3a4e8")
+ (revision "1"))
+ (package
+ (name "python-starred")
+ (version (string-append "1.3.1" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/maguowei/starred.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "181jr5r4m1dkb081jynlkdmy8cd55673vl8lwzb34q6diqds844a"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-click" ,python-click)
+ ("python-github" ,python-github)))
+ (home-page "https://github.com/maguowei/starred")
+ (synopsis "Awesome List used GitHub stars")
+ (description "Awesome List used GitHub stars.")
+ (license license:expat))))
+
+(define-public python2-starred
+ (let ((base (package-with-python2
+ (strip-python2-variant python-starred))))
+ (package
+ (inherit base)
+ (propagated-inputs
+ `(("python2-github2", python2-github)
+ ,@(alist-delete "python-github"
+ (package-propagated-inputs base)
+ equal?))))))
diff --git a/wigust/packages/ruby.scm b/wigust/packages/ruby.scm
new file mode 100644
index 0000000..36bc380
--- /dev/null
+++ b/wigust/packages/ruby.scm
@@ -0,0 +1,280 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix 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.
+;;;
+;;; GNU Guix 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 Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (wigust packages ruby)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages java)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages ragel)
+ #:use-module (gnu packages ruby)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages version-control)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages web)
+ #:use-module (guix build-system ruby))
+
+(define-public ruby-guard-livereload
+ (package
+ (name "ruby-guard-livereload")
+ (version "2.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "guard-livereload" version))
+ (sha256
+ (base32
+ "0yd74gdbbv2yz2caqwpsavzw8d5fd5y446wp8rdjw8wan0yd6k8j"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-em-websocket" ,ruby-em-websocket)
+ ("ruby-guard" ,ruby-guard)
+ ("ruby-guard-compat" ,ruby-guard-compat)
+ ("ruby-multi-json" ,ruby-multi-json)))
+ (arguments
+ '(#:tests? #f)) ; no required file
+ (synopsis "Automatically reloads your browser when files are modified.")
+ (description "LiveReload automatically reloads your browser when 'view'
+files are modified.")
+ (home-page "https://rubygems.org/gems/guard-livereload")
+ (license license:expat)))
+
+(define-public ruby-http-parser-rb
+ (package
+ (name "ruby-http-parser.rb")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "http_parser.rb" version))
+ (sha256
+ (base32
+ "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; no required file
+ (synopsis "Ruby bindings")
+ (description "Ruby bindings.")
+ (home-page "http://github.com/tmm1/http_parser.rb")
+ (license license:expat)))
+
+(define-public ruby-em-websocket
+ (package
+ (name "ruby-em-websocket")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "em-websocket" version))
+ (sha256
+ (base32
+ "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-eventmachine" ,ruby-eventmachine)
+ ("ruby-http-parser-rb" ,ruby-http-parser-rb)))
+ (arguments
+ '(#:tests? #f)) ; no required file
+ (synopsis "EventMachine based WebSocket server")
+ (description "EventMachine based WebSocket server")
+ (home-page "http://github.com/igrigorik/em-websocket")
+ (license #f)))
+
+
+(define-public ruby-gitlab
+ (package
+ (name "ruby-gitlab")
+ (version "4.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "gitlab" version))
+ (sha256
+ (base32
+ "0wzazdmzhw72r1kkj8ckb1l9ryas582r5d7c6qb609kkfs31rg6m"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-httparty" ,ruby-httparty)
+ ("ruby-terminal-table" ,ruby-terminal-table)))
+ (arguments
+ `(#:tests? #f)) ; depends on non-existing file
+ (synopsis "Ruby client and CLI for GitLab API")
+ (description "Ruby client and CLI for GitLab API.")
+ (home-page "https://github.com/narkoz/gitlab")
+ (license license:bsd-3)))
+
+(define-public ruby-guard-compat
+ (package
+ (name "ruby-guard-compat")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "guard-compat" version))
+ (sha256
+ (base32
+ "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis"))))
+ (arguments
+ '(#:tests? #f)) ; no required file
+ (build-system ruby-build-system)
+ (synopsis "Helps creating valid Guard plugins and testing them")
+ (description "Helps creating valid Guard plugins and testing them.")
+ (home-page "")
+ (license license:expat)))
+
+
+(define-public ruby-httparty
+ (package
+ (name "ruby-httparty")
+ (version "0.15.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "httparty" version))
+ (sha256
+ (base32
+ "0akybx7jkzhhf7f9na12jssfcllma905c8nl93ia89akbbicvq7v"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-multi-xml" ,ruby-multi-xml)))
+ (arguments
+ `(#:tests? #f)) ; depends on non-existing file
+ (synopsis "Makes http fun")
+ (description "Makes http fun! Also, makes consuming restful web services
+dead easy.")
+ (home-page "http://jnunemaker.github.com/httparty")
+ (license license:expat)))
+
+(define-public ruby-multi-json
+ (package
+ (name "ruby-multi-json")
+ (version "1.12.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "multi_json" version))
+ (sha256
+ (base32
+ "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; no tests
+ (synopsis "A common interface to multiple JSON libraries")
+ (description "This package provides a common interface to multiple JSON
+libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby
+JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson.")
+ (home-page "http://github.com/intridea/multi_json")
+ (license license:expat)))
+
+(define-public ruby-multi-xml
+ (package
+ (name "ruby-multi-xml")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "multi_xml" version))
+ (sha256
+ (base32
+ "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ; no tests
+ (synopsis "Provides swappable XML backends utilizing LibXML")
+ (description "Provides swappable XML backends utilizing LibXML, Nokogiri,
+Ox, or REXML.")
+ (home-page "https://github.com/sferik/multi_xml")
+ (license license:expat)))
+
+
+(define-public ruby-terminal-table
+ (package
+ (name "ruby-terminal-table")
+ (version "1.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "terminal-table" version))
+ (sha256
+ (base32
+ "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-unicode-display-width" ,ruby-unicode-display-width)))
+ (arguments
+ `(#:tests? #f)) ; no tests
+ (synopsis "Simple, feature rich ascii table generation library")
+ (description "Simple, feature rich ascii table generation library.")
+ (home-page "https://github.com/tj/terminal-table")
+ (license license:expat)))
+
+
+(define-public ruby-unicode-display-width
+ (package
+ (name "ruby-unicode-display-width")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "unicode-display_width" version))
+ (sha256
+ (base32
+ "12pi0gwqdnbx1lv5136v3vyr0img9wr0kxcn4wn54ipq4y41zxq8"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-unicode-emoji" ,ruby-unicode-emoji)))
+ (arguments
+ `(#:tests? #f)) ; no tests
+ (synopsis "Determines the monospace display width")
+ (description "Determines the monospace display width of a string using
+EastAsianWidth.txt, Unicode general category, and other data.")
+ (home-page "http://github.com/janlelis/unicode-display_width")
+ (license license:expat)))
+
+
+(define-public ruby-unicode-emoji
+ (package
+ (name "ruby-unicode-emoji")
+ (version "0.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "unicode-emoji" version))
+ (sha256
+ (base32
+ "1hrsvkdpsi534fqlk2wxvdvgykk89sajhsx7jskjncpqf8cxfcgr"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ; no tests
+ (synopsis "Retrieve emoji data about Unicode codepoints")
+ (description "Retrieve emoji data about Unicode codepoints. Also contains
+a regex to match emoji.")
+ (home-page "https://github.com/janlelis/unicode-emoji")
+ (license license:expat)))
+