From 28ae399d87bc356ad9729a74a124571654d87cc5 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Tue, 13 Jul 2021 23:19:54 -0700 Subject: [PATCH] =?UTF-8?q?Add=20=E2=80=98emacs-oni-bats=E2=80=99=20and=20?= =?UTF-8?q?related=20packages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oni/packages/emacs-config.scm | 61 +++++++++++- oni/packages/emacs.scm | 24 +++++ oni/packages/go.scm | 182 ++++++++++++++++++++++++++++++++++ 3 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 oni/packages/go.scm diff --git a/oni/packages/emacs-config.scm b/oni/packages/emacs-config.scm index bfe3f4e..812e1f5 100644 --- a/oni/packages/emacs-config.scm +++ b/oni/packages/emacs-config.scm @@ -5,7 +5,9 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages emacs-xyz) #:use-module (gnu packages llvm) - #:use-module (oni packages emacs)) + #:use-module (gnu packages bash) + #:use-module (oni packages emacs) + #:use-module (oni packages go)) (define-public emacs-oni-config (let ((commit "a7bf05b48c47740de50c2adbc0fa8da703958f7b") @@ -150,6 +152,17 @@ Emacs"))) (synopsis "My core Emacs configuration") (description "This package provides my core configuration for Emacs"))) +(define-public emacs-oni-smartparens + (package + (inherit emacs-oni-config) + (name "emacs-oni-smartparens") + (arguments + '(#:include '("oni-smartparens.el"))) + (propagated-inputs + `(("emacs-smartparens" ,emacs-smartparens))) + (synopsis "My Emacs smartparens configuration") + (description "This package provides my configuration for Emacs smartparens"))) + (define-public emacs-oni-flycheck (package (inherit emacs-oni-config) @@ -191,3 +204,49 @@ Emacs"))) ("clang" ,clang))) (synopsis "My Emacs C coding configuration") (description "This package provides my configuration for coding in C"))) + +(define-public emacs-oni-sh + (package + (inherit emacs-oni-config) + (name "emacs-oni-sh") + (arguments + '(#:include '("oni-sh.el"))) + (propagated-inputs + `(("emacs-reformatter" ,emacs-reformatter) + ("emacs-oni-flycheck" ,emacs-oni-flycheck) + ("emacs-oni-smartparens" ,emacs-oni-smartparens) + ("shfmt" ,shfmt))) + (synopsis "My Emacs Shell coding configuration") + (description "This package provides my configuration for coding in Shell"))) + +(define-public emacs-oni-yasnippet + (package + (inherit emacs-oni-config) + (name "emacs-oni-yasnippet") + (arguments + '(#:include '("oni-yasnippet.el"))) + (propagated-inputs + `(("emacs-yasnippet" ,emacs-yasnippet) + ("emacs-yasnippet-snippets" ,emacs-yasnippet-snippets) + ("emacs-diminish" ,emacs-diminish))) + (synopsis "My Emacs yasnippet configuration") + (description "This package provides my configuration for yasnippet"))) + +(define-public emacs-oni-bats + (package + (inherit emacs-oni-config) + (name "emacs-oni-bats") + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-oni-org + (lambda _ + (chdir "oni-bats")))) + #:include '("\\.el$" "^snippets\\/bats-mode\\/"))) + (propagated-inputs + `(("emacs-bats" ,emacs-bats) + ("emacs-oni-sh" ,emacs-oni-sh) + ("emacs-oni-yasnippet" ,emacs-oni-yasnippet) + ("bats" ,bats))) + (synopsis "My Emacs Bats coding configuration") + (description "This package provides my configuration for coding in Bats"))) diff --git a/oni/packages/emacs.scm b/oni/packages/emacs.scm index f8963fc..52fa781 100644 --- a/oni/packages/emacs.scm +++ b/oni/packages/emacs.scm @@ -102,6 +102,30 @@ custom pairs?)") with character preview in completion prompt.") (license license:gpl3+)))) +(define-public emacs-bats + (let ((commit "d519f7c89f5ae17dfc33400596df4564b478315f") + (revision "0")) + (package + (name "emacs-bats") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (uri (git-reference + (url "https://github.com/dougm/bats-mode") + (commit commit))) + (method git-fetch) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ikb4rb20ng1yq95g3ydwpk37axmiw38rjzn1av9m4cs81qby4jv")))) + (build-system emacs-build-system) + (home-page "https://github.com/dougm/bats-mode") + (synopsis "Emacs mode for editing and running Bats tests") + (description "bats-mode is an Emacs mode for editing and running Bats tests. + +bats-mode derives from the bash flavor of sh-mode, adding font-lock for bats +keywords.") + (license license:gpl2+)))) + (define-public emacs-flycheck-posframe (let ((commit "8f60c9bf124ab9597d681504a73fdf116a0bde12") (revision "0")) diff --git a/oni/packages/go.scm b/oni/packages/go.scm new file mode 100644 index 0000000..31f98c8 --- /dev/null +++ b/oni/packages/go.scm @@ -0,0 +1,182 @@ +(define-module (oni packages go) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (guix git-download) + #:use-module (guix build-system go) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages golang) + #:use-module (gnu packages cmake)) + +(define-public go-github-com-creack-pty + (package + (name "go-github-com-creack-pty") + (version "1.1.13") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creack/pty") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09glkl7f86njv78l849rpi80pw1ji5n1zbh48rd9ysl9rfzy34zq")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/creack/pty")) + (home-page "https://github.com/creack/pty") + (synopsis "pty") + (description + "Package pty provides functions for working with Unix terminals.") + (license license:expat))) + +(define-public go-golang-org-x-term + (package + (name "go-golang-org-x-term") + (version "0.0.0-20210615171337-6886f2dfbf5b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/term") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0661w7dp2ak1k4ii90v6chw2x8a6g4sc5j0ba58qlplaj4k5l0xs")))) + (build-system go-build-system) + (arguments '(#:import-path "golang.org/x/term")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://golang.org/x/term") + (synopsis "Go terminal/console support") + (description + "Package term provides support functions for dealing with terminals, as +commonly found on UNIX systems.") + (license license:bsd-3))) + +(define-public go-mvdan-cc-editorconfig + (package + (name "go-mvdan-cc-editorconfig") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mvdan/editorconfig") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1rav1rp8pi921gsffqr2wjdhbr12w81g31yv6iw4yb1zyh726qqg")))) + (build-system go-build-system) + (arguments + '(#:import-path "mvdan.cc/editorconfig")) + (native-inputs + `(("cmake" ,cmake))) + (home-page "https://mvdan.cc/editorconfig") + (synopsis "editorconfig") + (description + "Package editorconfig allows parsing and using EditorConfig files, as defined +in @url{https://editorconfig.org/,https://editorconfig.org/}.") + (license license:bsd-3))) + +(define-public go-github-com-google-renameio-v1 + (package + (name "go-github-com-google-renameio") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/renameio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qn84nra9nxqyqg4i496b6ijbhnxvx66hdndwl7qh7r6q8lz2ba5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/renameio")) + (home-page "https://github.com/google/renameio") + (synopsis "Atomicity vs durability") + (description + "Package renameio provides a way to atomically create or replace a file or +symbolic link.") + (license license:asl2.0))) + +(define-public go-github-com-pkg-diff + (package + (name "go-github-com-pkg-diff") + (version "0.0.0-20210226163009-20ebb0f2a09e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/diff") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g3dzgwhz4fx3ddpsv7fsa4r1v5clsp2lbw2qrkdk9y1vc5gi8yi")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/pkg/diff")) + (home-page "https://github.com/pkg/diff") + (synopsis "diff") + (description + "Package diff contains high level routines that generate a textual diff.") + (license license:bsd-3))) + +(define-public shfmt + (package + (name "shfmt") + (version "3.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mvdan/sh") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d3bn9l7k1df9prsz9zwakxi2q5750vdhrz8r91d1r3hn28nfgd4")))) + (build-system go-build-system) + (arguments + `(#:import-path "mvdan.cc/sh/v3" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (with-directory-excursion "src/mvdan.cc/sh/v3/cmd/shfmt" + (invoke "go" "build" "-ldflags" "-linkmode=external")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion "src/mvdan.cc/sh/v3/cmd/shfmt" + (install-file "shfmt" (string-append out "/bin")))))) + ;; (replace 'check + ;; (lambda _ + ;; (with-directory-excursion "src/mvdan.cc/sh/v3" + ;; (invoke "go" "test" "./...")))) + ) + #:tests? #f + #:install-source? #f)) + (propagated-inputs + `(("go-mvdan-cc-editorconfig" ,go-mvdan-cc-editorconfig) + ("go-golang-org-x-term" ,go-golang-org-x-term) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-sync" ,go-golang-org-x-sync) + ("go-github-com-rogpeppe-go-internal" ,go-github-com-rogpeppe-go-internal) + ("go-github-com-pkg-diff" ,go-github-com-pkg-diff) + ("go-github-com-kr-text" ,go-github-com-kr-text) + ("go-github-com-kr-pretty" ,go-github-com-kr-pretty) + ("go-github-com-google-renameio" ,go-github-com-google-renameio-v1) + ("go-github-com-creack-pty" ,go-github-com-creack-pty))) + (home-page "https://mvdan.cc/sh/v3") + (synopsis "sh") + (description + "This package provides a shell parser, formatter, and interpreter. Supports @url{https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html,POSIX Shell}, @url{https://www.gnu.org/software/bash/,Bash}, and +@url{http://www.mirbsd.org/mksh.htm,mksh}. Requires Go 1.15 or later.") + (license license:bsd-3)))