summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/text-editors.scm77
2 files changed, 78 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index eec0e018b5..30a5c209fc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -359,6 +359,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/texinfo.scm			\
   %D%/packages/tex.scm				\
   %D%/packages/textutils.scm			\
+  %D%/packages/text-editors.scm			\
   %D%/packages/time.scm				\
   %D%/packages/tls.scm				\
   %D%/packages/tmux.scm				\
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
new file mode 100644
index 0000000000..4e2324dbea
--- /dev/null
+++ b/gnu/packages/text-editors.scm
@@ -0,0 +1,77 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
+;;;
+;;; 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 (gnu packages text-editors)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages terminals))
+
+(define-public vis
+  (package
+    (name "vis")
+    (version "0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/martanne/"
+                                  name "/archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0bbmkblpndc53pvr8xcfywdn8g351yxfj8c46zp5d744c3bq2nry"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("CFLAGS=-pie")
+       #:tests? #f ; No tests.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-binary
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lpeg (assoc-ref inputs "lua-lpeg"))
+                    (lua-version ,(version-major+minor (package-version lua)))
+                    (LUA_PATH (string-append lpeg "/share/lua/"
+                                             lua-version "/?.lua"))
+                    (LUA_CPATH (string-append lpeg "/lib/lua/"
+                                              lua-version "/?.so")))
+               (wrap-program (string-append out "/bin/vis")
+                 `("LUA_PATH" ":" prefix (,LUA_PATH))
+                 `("LUA_CPATH" ":" prefix (,LUA_CPATH)))
+               #t))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "VIS_PATH")
+            (files '("share/vis")))))
+    (inputs `(("lua", lua)
+              ("ncurses", ncurses)
+              ("libtermkey", libtermkey)
+              ("lua-lpeg", lua-lpeg)))
+    (synopsis "Vim-like text editor")
+    (description
+     "Vis aims to be a modern, legacy free, simple yet efficient vim-like text
+editor.  It extends vim's modal editing with built-in support for multiple
+cursors/selections and combines it with sam's structural regular expression
+based command language.")
+    (home-page "https://github.com/martanne/vis")
+    (license (list license:isc               ; Main distribution.
+                   license:public-domain     ; map.[ch]
+                   license:expat))))         ; lexers and libutf.[ch]