diff options
Diffstat (limited to 'gnu/packages/text-editors.scm')
-rw-r--r-- | gnu/packages/text-editors.scm | 239 |
1 files changed, 205 insertions, 34 deletions
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 0c30a705b97..f9330008e77 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2019, 2020, 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2019, 2020, 2021, 2022, 2023 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch> ;;; Copyright © 2020 Mark Meyer <mark@ofosos.org> @@ -19,6 +19,8 @@ ;;; Copyright © 2021 Calum Irwin <calumirwin1@gmail.com> ;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com> ;;; Copyright © 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com> +;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe> +;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,7 +47,9 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages aspell) @@ -56,19 +60,22 @@ #:use-module (gnu packages code) #:use-module (gnu packages cpp) #:use-module (gnu packages crates-io) + #:use-module (gnu packages curl) #:use-module (gnu packages datastructures) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages graphics) + #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages libbsd) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) @@ -81,6 +88,8 @@ #:use-module (gnu packages qt) #:use-module (gnu packages regex) #:use-module (gnu packages ruby) + #:use-module (gnu packages sdl) + #:use-module (gnu packages slang) #:use-module (gnu packages sqlite) #:use-module (gnu packages terminals) #:use-module (gnu packages texinfo) @@ -91,7 +100,7 @@ (define-public vis (package (name "vis") - (version "0.7") ; also update the vis-test input + (version "0.8") ; also update the vis-test input (source (origin (method git-fetch) @@ -99,7 +108,7 @@ (url "https://git.sr.ht/~martanne/vis") (commit (string-append "v" version)))) (sha256 - (base32 "1g05ncsnk57kcqm9wsv6sz8b24kyzj8r5rfpa1wfwj8qkjzx3vji")) + (base32 "0ija192c9i13gbikm707jynf6my212i040ls0f8pgkbiyvls7xay")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -134,14 +143,8 @@ (substitute* "test/core/ccan-config.c" (("\"cc\"") (format #f "\"~a\"" ,(cc-for-target)))) - ;; Use the ‘vis’ executable that we wrapped above. - (install-file (string-append out "/bin/vis") ".") - - ;; XXX Delete 2 failing tests. TODO: make them not fail. :-) - (for-each delete-file - (find-files "test/vis/selections" "^complement")) - #t)))))) + (install-file (string-append out "/bin/vis") "."))))))) (native-inputs `(("vis-test" ,(origin @@ -308,7 +311,7 @@ bindings and many of the powerful features of GNU Emacs.") (define-public jucipp (package (name "jucipp") - (version "1.7.1") + (version "1.7.2") (home-page "https://gitlab.com/cppit/jucipp") (source (origin (method git-fetch) @@ -320,7 +323,7 @@ bindings and many of the powerful features of GNU Emacs.") (recursive? #t))) (file-name (git-file-name name version)) (sha256 - (base32 "0xyf1fa7jvxzvg1dxh5vc50fbwjjsar4fmlvbfhicdd1f8bhz1ii")) + (base32 "034il3z38a7qvp95f52n9rxbqmh8fxsy416rjak3zzagvfkvzyii")) (modules '((guix build utils))) (snippet '(begin @@ -344,7 +347,7 @@ bindings and many of the powerful features of GNU Emacs.") ;; Disable the CMake build test, as it does not test ;; functionality of the package, and requires doing ;; an "in-source" build. - (("add_test\\(cmake_build_test.*\\)") + (("add_test\\(cmake_(build|file_api)_test.*\\)") "") ;; Disable the git test, as it requires the full checkout. (("add_test\\(git_test.*\\)") @@ -494,7 +497,7 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on (define-public mg (package (name "mg") - (version "20220614") + (version "20221112") (source (origin (method git-fetch) (uri (git-reference @@ -503,7 +506,7 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on (file-name (git-file-name name version)) (sha256 (base32 - "145qk4bzys4igv98645vikswv9hqym46chh6xb9d82ihsvjq1wjk")) + "1wsib91f277xsx3qi8zmjcd9r9cm078rcf8hii0rwipyn04vxy83")) (modules '((guix build utils))) (snippet '(begin (substitute* "GNUmakefile" @@ -872,19 +875,19 @@ editors.") qtsvg-5 sqlite)) (arguments - `(#:tests? #f ; no check target - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-icon-directory - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "packages/linux/icons.sh" - (("/usr/share") - (string-append out "/share")))))) - (add-before 'configure 'gzip-flags - (lambda _ - (substitute* "Makefile.in" - (("^GZIP = gzip -f") "GZIP = gzip -f -n"))))))) + (list + #:tests? #f ; no check target + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-icon-directory + (lambda _ + (substitute* "packages/linux/icons.sh" + (("/usr/share") + (string-append #$output "/share"))))) + (add-before 'configure 'gzip-flags + (lambda _ + (substitute* "Makefile.in" + (("^GZIP = gzip -f") "GZIP = gzip -f -n"))))))) (synopsis "Editing platform with special features for scientists") (description "GNU TeXmacs is a text editing platform which is specialized for @@ -895,17 +898,108 @@ Octave. TeXmacs is completely extensible via Guile.") (license license:gpl3+) (home-page "https://www.texmacs.org/tmweb/home/welcome.en.html"))) +(define-public mogan + (package + (inherit texmacs) + (name "mogan") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/XmacsLabs/mogan") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04wz6xmimjv2l6baxgzm8vyq5grg102m3l4wq8i6bglv529yp4ff")))) + (build-system qt-build-system) + (inputs + (modify-inputs (package-inputs texmacs) + ;; Replaced by S7 scheme + ;; TODO: Maybe unbundle S7 + (delete "guile") + (prepend curl))) + (arguments + (substitute-keyword-arguments (package-arguments texmacs) + ((#:phases orig) + #~(modify-phases #$orig + ;; The non-deterministic compression issue is solved in Mogan. + (delete 'gzip-flags))))) + (home-page "https://github.com/XmacsLabs/mogan") + (synopsis "Scientific structural text editor") + (description + "Mogan is a scientific structural text editor, a fork of GNU TeXmacs.") + (license license:gpl3+))) + +(define-public textpieces + (package + (name "textpieces") + (version "3.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/liferooter/textpieces") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14zq2c7js80m4cq8wpdb3kyz5sw96l8znbz027w8s94gqhm632ff")))) + (arguments + '(;; The test suite fails to validate appstream file due to lack of + ;; network access + #:tests? #f + #:glib-or-gtk? #t)) + (build-system meson-build-system) + (native-inputs + (list appstream-glib + blueprint-compiler + desktop-file-utils + gettext-minimal + `(,glib "bin") + `(,gtk "bin") + pkg-config + vala)) + (inputs + (list gtk + gtksourceview + json-glib + libadwaita + libgee + python + python-pygobject + python-pyyaml)) + (home-page "https://github.com/liferooter/textpieces") + (synopsis "Quick text processor") + (description + "Text Pieces is a tool for quick text transformations such as checksums, +encoding, decoding, etc. + +The basic features of Text Pieces are: +@itemize +@item Base64 encoding and decoding +@item SHA-1, SHA-2 and MD5 checksums +@item Prettify and minify JSON +@item Covert JSON to YAML and vice versa +@item Count lines, symbols and words +@item Escape and unescape string, URL and HTML +@item Remove leading and trailing whitespaces +@item Sort and reverse sort lines +@item Reverse lines and whole text +@item You can write your own scripts and create custom tools +@end itemize") + (license license:gpl3))) + (define-public scintilla (package (name "scintilla") - (version "5.3.0") + (version "5.3.2") (source (origin (method url-fetch) (uri (let ((v (apply string-append (string-split version #\.)))) (string-append "https://www.scintilla.org/scintilla" v ".tgz"))) (sha256 - (base32 "0ys0836qjljzqk0wj6y9pnmrcw7ydzn8c06rwbawjk74dpsn0lpx")))) + (base32 "16jskdc0762iwpy4s75vmp27qds32pnpaj09h48c6qg3rmvrgslh")))) (build-system gnu-build-system) (arguments (list @@ -1055,7 +1149,7 @@ card. It offers: (define-public ne (package (name "ne") - (version "3.3.1") + (version "3.3.2") (source (origin (method git-fetch) (uri (git-reference @@ -1064,7 +1158,7 @@ card. It offers: (file-name (git-file-name name version)) (sha256 (base32 - "0sg2f6lxq6cjkpd3dvlxxns82hvq826rjnams5in97pssmknr77g")))) + "16hzja0x41xz6028d8qij9rh1vkiil8qkswd8yznwlcwyl4h04wr")))) (build-system gnu-build-system) (native-inputs (list perl texinfo)) @@ -1072,8 +1166,10 @@ card. It offers: (list ncurses)) (arguments `(#:tests? #f + #:parallel-build? #f ; or enums.h may not yet be generated #:make-flags - (list "CC=gcc" + (list "STRIP=true" ; don't + (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "LDFLAGS=-L" (assoc-ref %build-inputs "ncurses") "/lib")) @@ -1260,3 +1356,78 @@ scriptable rc file, macros, search and replace (PCRE), window splitting, multiple cursors, and integration with various shell commands.") (license license:asl2.0))) + +(define-public lite-xl + (package + (name "lite-xl") + (version "2.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lite-xl/lite-xl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pnmax68hvk1ry4bjsxwq4qimfn55pai8jlljw6jiqzcmh4mp7xm")) + (modules '((guix build utils))) + (snippet '(substitute* "meson.build" + (("dependency\\('lua5\\.4',") + "dependency('lua-5.4',"))))) + (build-system meson-build-system) + (inputs (list agg + freetype + lua-5.4 + pcre2 + reproc + sdl2)) + (native-inputs (list pkg-config)) + (home-page "https://lite-xl.com") + (synopsis "Lightweight text editor written in Lua") + (description + "Lite XL is derived from lite. It is a lightweight text editor written +mostly in Lua. It aims to provide something practical, pretty, small and fast +easy to modify and extend, or to use without doing either. + +The aim of Lite XL compared to lite is to be more user-friendly, improve the +quality of font rendering, and reduce CPU usage.") + (license license:expat))) + +(define-public jed + (package + (name "jed") + (version "0.99-19") + (source (origin + (method url-fetch) + (uri (string-append "https://www.jedsoft.org/releases/jed/jed-" + version ".tar.bz2")) + (sha256 + (base32 + "0qspdc6wss43wh1a8fddvf62xyhld5p7hl75grv4d95h5z73k8wp")) + (modules '((guix build utils))) + (snippet #~(begin + ;; Delete Windows binaries. + (delete-file-recursively "bin/w32") + + (substitute* "src/Makefile.in" + (("/bin/cp") + "cp")) + (substitute* "configure" + (("TERMCAP=-ltermcap") + "TERMCAP=")))))) + (build-system gnu-build-system) + (arguments + (list #:configure-flags + #~(list (string-append "--with-slang=" + #$(this-package-input "slang"))) + ;; jed provides no tests + #:tests? #f)) + (inputs (list slang)) + (home-page "https://www.jedsoft.org/jed/") + (synopsis "Programmer's editor using S-Lang scripting for configuration") + (description + "Jed is a powerful programmer's editor using the S-Lang scripting language +for configuration and extensibility. It provides emulation modes for the +key bindings of many editors (including Emacs and WordStar), and has syntax +highlighting for dozens of languages. Jed is very small and fast.") + (license license:gpl2+))) |