IMPORTANT NOTICE: Devheroes public code hosting will shut down at 1st of March 2023. Due to some difficulties, we have to shut down the instance. Since codeberg.org is pretty mature and welcoming, We highly recommend you to move your code there. Please be advised that on 1st of March, your data will be removed. Thanks for your time with us, and may the source be with you.

Browse Source

Add the scheme cube for guile and guix

ep12
Sameer Rahmani 2 months ago
parent
commit
99fc162767
  1. 64
      core/cubes/scheme.el

64
core/cubes/scheme.el

@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
;;; SchemeCube --- Scheme support cube for FG42 -*- lexical-binding: t; -*-
;;
;; Copyright (c) 2010-2022 Sameer Rahmani & Contributors
;;
;; Author: Sameer Rahmani <lxsameer@gnu.org>
;; URL: https://gitlab.com/FG42/FG42
;; Version: 3.0.0
;;
;; This program 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.
;;
;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;; Cubes are the building blocks of any `FG42' editor. Each `cube' is a
;; unit which defines different abilities in a deterministic and idempotent
;; way. Cubes are composable and a composition of cubes creates an editor.
;;
;;; Code:
(require 'fpkg)
(require 'fg42/cube)
(defcube fg42/guile-cube
"This cube adds supports for GNU Guile Scheme via =geiser-guile= library.
For more info checkout [[https://www.nongnu.org/geiser/]]"
(:title "Guile Cube"
:flag guile
:flag-default t)
(fg42/rainbow-delimiters-cube)
(fg42/paredit-cube)
(fpkg/use geiser-guile))
(defcube fg42/guix-cube
"This cube provides all the functionality necessary to use and develop
GNU Guix. It depends on the =fg42/guile-cube= and will execute it internally.
If you want to develop guix pass the path to the guix source via =:src=
keyword (default is =~/src/guix="
(:title "Guix Cube"
:flag guix
:flag-default t)
(let ((src (or (plist-get fg42/guix-cube-params :src)
"~/src/guix")))
(if-flag guile
(progn
(fg42/guile-cube)
(with-eval-after-load 'geiser-guile
(add-to-list 'geiser-guile-load-path src)))
(error "`fg42/guile-cube' cube in necessary to use `fg42/guix-cube'"))))
(provide 'cubes/scheme)
;;; scheme.el ends here
Loading…
Cancel
Save