[bug#77219] gnu: Add emacs-sage-shell-mode.
Commit Message
* gnu/packages/emacs-xyz.scm (emacs-sage-shell-mode): New variable.
Change-Id: I73189f919f0f1a36b0f4826685b8ace4563a9a81
---
gnu/packages/emacs-xyz.scm | 55 ++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
base-commit: 60e4012dfcbe0df5c7e60f097ae2b11d92f982ff
Comments
Am Sonntag, dem 23.03.2025 um 22:07 +0100 schrieb Nicolas Goaziou:
> * gnu/packages/emacs-xyz.scm (emacs-sage-shell-mode): New variable.
>
> Change-Id: I73189f919f0f1a36b0f4826685b8ace4563a9a81
> ---
> gnu/packages/emacs-xyz.scm | 55
> ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 55 insertions(+)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index f00c5e4b29..dc36455058 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -6544,6 +6544,61 @@ (define-public emacs-org-pdftools
> (home-page "https://github.com/fuxialexander/org-pdftools")
> (license license:gpl3+))))
>
> +(define-public emacs-sage-shell-mode
> + (let ((commit "4291700e981a2105d55fa56382ba25046d3d268d")
> + (revision "1"))
> + (package
> + (name "emacs-sage-shell-mode")
> + (version (git-version "0.3" revision commit))
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url
> "https://github.com/sagemath/sage-shell-mode")
> + (commit commit)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> +
> "1dch7cwwslffgnzp1djlhz6a792ci42p4bvazxd9lqzhzal0rsbb"))))
> + (build-system emacs-build-system)
> + (arguments
> + (list #:phases
> + #~(modify-phases %standard-phases
> + ;; Test file contains a duplicate test, causing a
> check
> + ;; error. Remove the first occurrence.
> + (add-before 'check 'remove-duplicate-test
> + (lambda _
> + (emacs-batch-edit-file "test/sage-shell-mode-
> test.el"
> + '(progn
> + (search-forward
> + "(ert-deftest sage-shell:parse-state-func-
> call-1")
> + (goto-char (match-beginning 0))
> + (kill-sexp)
> + (basic-save-buffer)))))
There is an ert-number-tests function in emacs-utils that you can use.
> + ;; The test below is meant to be called from a CI
> environment
> + ;; and can be ignored.
> + (add-before 'check 'skip-failing-test
> + (lambda _
> + (substitute* "test/sage-shell-mode-test.el"
> + (("\\(ert-deftest sage-shell:development-
> version-test .*"
> + all)
> + (string-append all "(skip-unless
> nil)\n"))))))
> + #:tests? #true
You don't actually need #:tests? #true anymore with the next emacs-team
merge :)
> + ;; The "test" command from the Makefile rebuilds
> everything. Run
> + ;; the tests at a lower level.
> + #:test-command #~(list "emacs" "-Q" "-batch"
> + "-L" "."
> + "-l" "test/sage-shell-mode-
> test.el"
> + "-f" "ert-run-tests-batch-and-
> exit")))
> + (propagated-inputs (list emacs-deferred))
> + (home-page "https://github.com/sagemath/sage-shell-mode")
> + (synopsis "Emacs front-end for SageMath")
> + (description
> + "Sage Shell mode provides an Emacs front-end for SageMath.
> It can run
> +the Sage terminal inside Emacs, and allows editing @file{.sage}
> source files
> +with a dedicated major mode and sending their contents directly to
> that
> +terminal.")
> + (license license:gpl3+))))
> +
> (define-public emacs-sakura-theme
> (package
> (name "emacs-sakura-theme")
Cheers
@@ -6544,6 +6544,61 @@ (define-public emacs-org-pdftools
(home-page "https://github.com/fuxialexander/org-pdftools")
(license license:gpl3+))))
+(define-public emacs-sage-shell-mode
+ (let ((commit "4291700e981a2105d55fa56382ba25046d3d268d")
+ (revision "1"))
+ (package
+ (name "emacs-sage-shell-mode")
+ (version (git-version "0.3" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sagemath/sage-shell-mode")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1dch7cwwslffgnzp1djlhz6a792ci42p4bvazxd9lqzhzal0rsbb"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ ;; Test file contains a duplicate test, causing a check
+ ;; error. Remove the first occurrence.
+ (add-before 'check 'remove-duplicate-test
+ (lambda _
+ (emacs-batch-edit-file "test/sage-shell-mode-test.el"
+ '(progn
+ (search-forward
+ "(ert-deftest sage-shell:parse-state-func-call-1")
+ (goto-char (match-beginning 0))
+ (kill-sexp)
+ (basic-save-buffer)))))
+ ;; The test below is meant to be called from a CI environment
+ ;; and can be ignored.
+ (add-before 'check 'skip-failing-test
+ (lambda _
+ (substitute* "test/sage-shell-mode-test.el"
+ (("\\(ert-deftest sage-shell:development-version-test .*"
+ all)
+ (string-append all "(skip-unless nil)\n"))))))
+ #:tests? #true
+ ;; The "test" command from the Makefile rebuilds everything. Run
+ ;; the tests at a lower level.
+ #:test-command #~(list "emacs" "-Q" "-batch"
+ "-L" "."
+ "-l" "test/sage-shell-mode-test.el"
+ "-f" "ert-run-tests-batch-and-exit")))
+ (propagated-inputs (list emacs-deferred))
+ (home-page "https://github.com/sagemath/sage-shell-mode")
+ (synopsis "Emacs front-end for SageMath")
+ (description
+ "Sage Shell mode provides an Emacs front-end for SageMath. It can run
+the Sage terminal inside Emacs, and allows editing @file{.sage} source files
+with a dedicated major mode and sending their contents directly to that
+terminal.")
+ (license license:gpl3+))))
+
(define-public emacs-sakura-theme
(package
(name "emacs-sakura-theme")