aboutsummaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authorLi-Wen Hsu <lwhsu@FreeBSD.org>2021-03-16 10:35:08 +0000
committerLi-Wen Hsu <lwhsu@FreeBSD.org>2021-03-16 10:35:08 +0000
commit17ef49165a1f975ecc8523ce8073e4ffeb8eb589 (patch)
tree8e52da4458e0c385b44c42b95d1fd007b568579d /editors
parent30f0e1c0545b654d8ae1308bc2ed585c851099b3 (diff)
downloadports-17ef49165a1f975ecc8523ce8073e4ffeb8eb589.tar.gz
ports-17ef49165a1f975ecc8523ce8073e4ffeb8eb589.zip
Add editors/sly, Common Lisp IDE for Emacs
PR: 253991 Submitted by: Olivier Certner <olivier.freebsd@free.fr>
Notes
Notes: svn path=/head/; revision=568549
Diffstat (limited to 'editors')
-rw-r--r--editors/Makefile1
-rw-r--r--editors/sly/Makefile67
-rw-r--r--editors/sly/distinfo3
-rw-r--r--editors/sly/files/patch-doc_Makefile20
-rw-r--r--editors/sly/files/patch-doc_sly.texi25
-rw-r--r--editors/sly/files/patch-sly.el46
-rw-r--r--editors/sly/pkg-descr19
-rw-r--r--editors/sly/pkg-message27
-rw-r--r--editors/sly/pkg-plist91
9 files changed, 299 insertions, 0 deletions
diff --git a/editors/Makefile b/editors/Makefile
index c3e58f673f33..ed9573123831 100644
--- a/editors/Makefile
+++ b/editors/Makefile
@@ -231,6 +231,7 @@
SUBDIR += setzer
SUBDIR += shed
SUBDIR += slime
+ SUBDIR += sly
SUBDIR += ssed
SUBDIR += sted
SUBDIR += tamago
diff --git a/editors/sly/Makefile b/editors/sly/Makefile
new file mode 100644
index 000000000000..ee793232d48a
--- /dev/null
+++ b/editors/sly/Makefile
@@ -0,0 +1,67 @@
+# $FreeBSD$
+
+PORTNAME= sly
+DISTVERSION= 1.0.43
+CATEGORIES= editors elisp
+PKGNAMESUFFIX= ${EMACS_PKGNAMESUFFIX}
+
+MAINTAINER= olce.freebsd.ports@certner.fr
+COMMENT= Sylvester the Cat's Common Lisp IDE for Emacs
+
+LICENSE= PD
+
+USES= emacs gmake
+USE_GITHUB= yes
+GH_ACCOUNT= joaotavora
+
+NO_ARCH= yes
+
+INFO= sly
+
+ALL_TARGET= all doc-sly.info
+
+PLIST_THIS_LISPDIR= ${EMACS_VERSION_SITE_LISPDIR}/sly
+THIS_LISPDIR= ${PREFIX}/${PLIST_THIS_LISPDIR}
+PLIST_SUB+= THIS_LISPDIR=${PLIST_THIS_LISPDIR}
+
+OPTIONS_DEFINE= DOCS DOCS_PDF
+OPTIONS_DEFAULT=DOCS DOCS_PDF
+
+DOCS_PDF_DESC= Build PDF documentation (requires DOCS)
+
+ROOT_DOCS_FILES= CONTRIBUTING.md NEWS.md PROBLEMS.md README.md
+GENERATED_DOCS_FILES= sly.html
+DOCS_BUILD_DEPENDS= texinfo>=5.2:print/texinfo
+
+DOCS_PDF_IMPLIES= DOCS
+DOCS_PDF_USE= tex=latex:build tex=pdftex:build tex=dvipsk:build
+
+.include <bsd.port.options.mk>
+
+.if !empty(PORT_OPTIONS:MDOCS_PDF)
+GENERATED_DOCS_FILES+= sly.pdf sly-refcard.pdf
+.endif
+
+ALL_TARGET+= ${GENERATED_DOCS_FILES:%=doc-%}
+
+PORTDOCS:= CONTRIBUTING.md NEWS.md PROBLEMS.md README.md \
+ ${GENERATED_DOCS_FILES}
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${THIS_LISPDIR}
+ (cd ${WRKSRC} && \
+ ${COPYTREE_SHARE} . ${STAGEDIR}${THIS_LISPDIR} \
+ "! ( -depth 1 ( -name Makefile -o -name *\.md -o \
+ -name \.[^.]* ) -o \
+ -path \./doc* )")
+ ${INSTALL_DATA} ${WRKSRC}/doc/${INFO}.info \
+ ${STAGEDIR}${PREFIX}/${INFO_PATH}
+
+# DOCS_PDF depends on DOCS
+post-install-DOCS-on:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${ROOT_DOCS_FILES:%=${WRKSRC}/%} \
+ ${GENERATED_DOCS_FILES:%=${WRKSRC}/doc/%} \
+ ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/editors/sly/distinfo b/editors/sly/distinfo
new file mode 100644
index 000000000000..668407632de4
--- /dev/null
+++ b/editors/sly/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1613556780
+SHA256 (joaotavora-sly-1.0.43_GH0.tar.gz) = 84b2d8326a429dcc621022d2ebbde7ed4813594d7445f264cb6ff5bf5f3bf9e9
+SIZE (joaotavora-sly-1.0.43_GH0.tar.gz) = 1835404
diff --git a/editors/sly/files/patch-doc_Makefile b/editors/sly/files/patch-doc_Makefile
new file mode 100644
index 000000000000..d280eeef6021
--- /dev/null
+++ b/editors/sly/files/patch-doc_Makefile
@@ -0,0 +1,20 @@
+--- doc/Makefile.orig 2021-01-14 09:12:56 UTC
++++ doc/Makefile
+@@ -14,7 +14,7 @@ INSTALL_CMD=install -m 644
+ # Info files generated here.
+ infofiles=sly.info
+
+-TEXI = sly.texi contributors.texi
++TEXI = sly.texi
+
+ help:
+ @echo -e "\
+@@ -38,7 +38,7 @@ sly.info: $(TEXI)
+ makeinfo $<
+
+ sly.html: $(TEXI)
+- texi2html --css-include=sly.css $<
++ makeinfo -o $@ --css-include=sly.css --html --no-split $<
+
+ html/index.html: $(TEXI)
+ makeinfo -o html --css-include=sly.css --html $<
diff --git a/editors/sly/files/patch-doc_sly.texi b/editors/sly/files/patch-doc_sly.texi
new file mode 100644
index 000000000000..4dce84be1ce8
--- /dev/null
+++ b/editors/sly/files/patch-doc_sly.texi
@@ -0,0 +1,25 @@
+--- doc/sly.texi.orig 2021-01-14 09:12:56 UTC
++++ doc/sly.texi
+@@ -3157,17 +3157,13 @@ buffer you can enter Lisp expressions and evaluate the
+ @unnumberedsec Hackers of the good hack
+
+ @SLY{} is a fork of SLIME which is itself an Extension
+-of @acronym{SLIM} by Eric Marsden. At the time of writing, the authors
+-and code-contributors of @SLY{} are:
++of @acronym{SLIM} by Eric Marsden. Please consult the Git repository
++for a list of authors and code-contributors of @SLY{}, as well as the
++bundled code from @file{hyperspec.el}, @cite{CLOCC}, and the @cite{CMU
++AI Repository}.
+
+-@include contributors.texi
+-
+-... not counting the bundled code from @file{hyperspec.el},
+-@cite{CLOCC}, and the @cite{CMU AI Repository}.
+-
+ Many people on the @code{sly-devel} mailing list have made non-code
+-contributions to @SLY{}. Life is hard though: you gotta send code to
+-get your name in the manual. @code{:-)}
++contributions to @SLY{}.
+
+ @unnumberedsec Thanks!
+
diff --git a/editors/sly/files/patch-sly.el b/editors/sly/files/patch-sly.el
new file mode 100644
index 000000000000..4f9c8a3cf619
--- /dev/null
+++ b/editors/sly/files/patch-sly.el
@@ -0,0 +1,46 @@
+--- sly.el.orig 2021-01-14 09:12:56 UTC
++++ sly.el
+@@ -7463,22 +7463,30 @@ can be found."
+ ;;;###autoload
+ (add-hook 'lisp-mode-hook 'sly-editing-mode)
+
+-(cond
+- ((or (not (memq 'slime-lisp-mode-hook lisp-mode-hook))
+- noninteractive
+- (prog1
+- (y-or-n-p "[sly] SLIME detected in `lisp-mode-hook', causes keybinding conflicts. Remove it for this Emacs session?")
+- (warn "To restore SLIME in this session, customize `lisp-mode-hook'
+-and replace `sly-editing-mode' with `slime-lisp-mode-hook'.")))
+- (remove-hook 'lisp-mode-hook 'slime-lisp-mode-hook)
++(let ((proceed-p
++ (if noninteractive
++ (lambda () t)
++ (let (asked resp)
++ (lambda ()
++ (unless asked
++ (setq resp
++ (y-or-n-p
++ (eval-when-compile
++ (concat "[sly] SLIME detected. Try to disable it "
++ "for this Emacs session?")))
++ asked t))
++ resp)))))
++ (when (and (memq 'slime-lisp-mode-hook lisp-mode-hook)
++ (funcall proceed-p))
++ (warn "To restore SLIME in this session, customize `lisp-mode-hook' and
++replace `sly-editing-mode' with `slime-lisp-mode-hook'.")
++ (remove-hook 'lisp-mode-hook 'slime-lisp-mode-hook))
+ (dolist (buffer (buffer-list))
+ (with-current-buffer buffer
+ (when (eq major-mode 'lisp-mode)
+- (sly-editing-mode 1)
+- (ignore-errors (funcall 'slime-mode -1))))))
+- (t
+- (warn
+- "`sly.el' loaded OK. To use SLY, customize `lisp-mode-hook' and remove `slime-lisp-mode-hook'.")))
++ (when (and (boundp 'slime-mode) slime-mode (funcall proceed-p))
++ (ignore-errors (funcall 'slime-mode -1)))
++ (sly-editing-mode 1)))))
+
+ (provide 'sly)
+
diff --git a/editors/sly/pkg-descr b/editors/sly/pkg-descr
new file mode 100644
index 000000000000..f9ea5a2b15bc
--- /dev/null
+++ b/editors/sly/pkg-descr
@@ -0,0 +1,19 @@
+SLY is a fork of SLIME. We track its bugfixes, particularly to the
+implementation backends. All SLIME's familiar features (debugger, inspector,
+xref, etc...) are still available, with improved overall UX.
+
+SLY's highlights are:
+- A full-featured REPL based on Emacs's comint.el. Everything can be copied to
+ the REPL.
+- Stickers, or live code annotations that record values as code traverses them.
+- Flex-style completion out-of-the-box, using Emacs's completion API. Company,
+ Helm, and other supported natively, no plugin required.
+- An interactive Trace Dialog.
+- Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box.
+- Multiple inspectors and multiple REPLs.
+- "Presentations" replaced by interactive backreferences which highlight the
+ object and remain stable throughout the REPL session.
+- Support for NAMED-READTABLES, macrostep.el and quicklisp.
+- A portable, annotation-based stepper in early but functional prototype stage.
+
+WWW: https://github.com/joaotavora/sly
diff --git a/editors/sly/pkg-message b/editors/sly/pkg-message
new file mode 100644
index 000000000000..c77fe0225204
--- /dev/null
+++ b/editors/sly/pkg-message
@@ -0,0 +1,27 @@
+[
+{ type: install
+ message: <<EOM
+To enable autoloading of SLY, add this to some Emacs init file:
+(require 'sly-autoloads)
+
+You should specify some Lisp implementation. This works for both SLY and SLIME:
+(setq inferior-lisp-program "path_to_your_lisp_binary")
+SLY however has convenient specific variables for more complex
+configurations. E.g.:
+(setq sly-default-lisp 'sbcl
+ sly-lisp-implementations '((sbcl ("sbcl"))))
+Please see their documentation.
+
+Contribs in `sly-contribs' list are automatically loaded and enabled (and those
+not in it are disabled) each time a new session is launched, or `sly-setup' is
+called. If you define `sly-contribs' in some initialization file, be sure to
+include sly-fancy in it (instead, you can add to the list using `add-to-list',
+after the `require' above).
+
+If you just want to immediately enable a contrib, you can instead use
+`sly-enable-contrib', but be aware that the effect will be temporary. It will
+last up to the next connection established or `sly-setup' call, unless you add
+the contrib to `sly-contribs' in the meantime.
+EOM
+}
+]
diff --git a/editors/sly/pkg-plist b/editors/sly/pkg-plist
new file mode 100644
index 000000000000..97b7bb463672
--- /dev/null
+++ b/editors/sly/pkg-plist
@@ -0,0 +1,91 @@
+%%THIS_LISPDIR%%/contrib/sly-autodoc.el
+%%THIS_LISPDIR%%/contrib/sly-autodoc.elc
+%%THIS_LISPDIR%%/contrib/sly-fancy-inspector.el
+%%THIS_LISPDIR%%/contrib/sly-fancy-inspector.elc
+%%THIS_LISPDIR%%/contrib/sly-fancy-trace.el
+%%THIS_LISPDIR%%/contrib/sly-fancy-trace.elc
+%%THIS_LISPDIR%%/contrib/sly-fancy.el
+%%THIS_LISPDIR%%/contrib/sly-fancy.elc
+%%THIS_LISPDIR%%/contrib/sly-fontifying-fu.el
+%%THIS_LISPDIR%%/contrib/sly-fontifying-fu.elc
+%%THIS_LISPDIR%%/contrib/sly-indentation.el
+%%THIS_LISPDIR%%/contrib/sly-indentation.elc
+%%THIS_LISPDIR%%/contrib/sly-mrepl.el
+%%THIS_LISPDIR%%/contrib/sly-mrepl.elc
+%%THIS_LISPDIR%%/contrib/sly-package-fu.el
+%%THIS_LISPDIR%%/contrib/sly-package-fu.elc
+%%THIS_LISPDIR%%/contrib/sly-profiler.el
+%%THIS_LISPDIR%%/contrib/sly-profiler.elc
+%%THIS_LISPDIR%%/contrib/sly-retro.el
+%%THIS_LISPDIR%%/contrib/sly-retro.elc
+%%THIS_LISPDIR%%/contrib/sly-scratch.el
+%%THIS_LISPDIR%%/contrib/sly-scratch.elc
+%%THIS_LISPDIR%%/contrib/sly-stickers.el
+%%THIS_LISPDIR%%/contrib/sly-stickers.elc
+%%THIS_LISPDIR%%/contrib/sly-trace-dialog.el
+%%THIS_LISPDIR%%/contrib/sly-trace-dialog.elc
+%%THIS_LISPDIR%%/contrib/sly-tramp.el
+%%THIS_LISPDIR%%/contrib/sly-tramp.elc
+%%THIS_LISPDIR%%/contrib/slynk-arglists.lisp
+%%THIS_LISPDIR%%/contrib/slynk-fancy-inspector.lisp
+%%THIS_LISPDIR%%/contrib/slynk-indentation.lisp
+%%THIS_LISPDIR%%/contrib/slynk-mrepl.lisp
+%%THIS_LISPDIR%%/contrib/slynk-package-fu.lisp
+%%THIS_LISPDIR%%/contrib/slynk-profiler.lisp
+%%THIS_LISPDIR%%/contrib/slynk-retro.lisp
+%%THIS_LISPDIR%%/contrib/slynk-stickers.lisp
+%%THIS_LISPDIR%%/contrib/slynk-trace-dialog.lisp
+%%THIS_LISPDIR%%/contrib/sylvesters.txt
+%%THIS_LISPDIR%%/lib/.nosearch
+%%THIS_LISPDIR%%/lib/hyperspec.el
+%%THIS_LISPDIR%%/lib/hyperspec.elc
+%%THIS_LISPDIR%%/lib/sly-buttons.el
+%%THIS_LISPDIR%%/lib/sly-buttons.elc
+%%THIS_LISPDIR%%/lib/sly-cl-indent.el
+%%THIS_LISPDIR%%/lib/sly-cl-indent.elc
+%%THIS_LISPDIR%%/lib/sly-common.el
+%%THIS_LISPDIR%%/lib/sly-common.elc
+%%THIS_LISPDIR%%/lib/sly-completion.el
+%%THIS_LISPDIR%%/lib/sly-completion.elc
+%%THIS_LISPDIR%%/lib/sly-messages.el
+%%THIS_LISPDIR%%/lib/sly-messages.elc
+%%THIS_LISPDIR%%/lib/sly-parse.el
+%%THIS_LISPDIR%%/lib/sly-parse.elc
+%%THIS_LISPDIR%%/lib/sly-tests.el
+%%THIS_LISPDIR%%/lib/sly-tests.elc
+%%THIS_LISPDIR%%/sly-autoloads.el
+%%THIS_LISPDIR%%/sly.el
+%%THIS_LISPDIR%%/sly.elc
+%%THIS_LISPDIR%%/slynk/backend/abcl.lisp
+%%THIS_LISPDIR%%/slynk/backend/allegro.lisp
+%%THIS_LISPDIR%%/slynk/backend/ccl.lisp
+%%THIS_LISPDIR%%/slynk/backend/clasp.lisp
+%%THIS_LISPDIR%%/slynk/backend/clisp.lisp
+%%THIS_LISPDIR%%/slynk/backend/cmucl.lisp
+%%THIS_LISPDIR%%/slynk/backend/corman.lisp
+%%THIS_LISPDIR%%/slynk/backend/ecl.lisp
+%%THIS_LISPDIR%%/slynk/backend/lispworks.lisp
+%%THIS_LISPDIR%%/slynk/backend/mkcl.lisp
+%%THIS_LISPDIR%%/slynk/backend/sbcl.lisp
+%%THIS_LISPDIR%%/slynk/backend/scl.lisp
+%%THIS_LISPDIR%%/slynk/metering.lisp
+%%THIS_LISPDIR%%/slynk/slynk-apropos.lisp
+%%THIS_LISPDIR%%/slynk/slynk-backend.lisp
+%%THIS_LISPDIR%%/slynk/slynk-completion.lisp
+%%THIS_LISPDIR%%/slynk/slynk-gray.lisp
+%%THIS_LISPDIR%%/slynk/slynk-loader.lisp
+%%THIS_LISPDIR%%/slynk/slynk-match.lisp
+%%THIS_LISPDIR%%/slynk/slynk-rpc.lisp
+%%THIS_LISPDIR%%/slynk/slynk-source-file-cache.lisp
+%%THIS_LISPDIR%%/slynk/slynk-source-path-parser.lisp
+%%THIS_LISPDIR%%/slynk/slynk.asd
+%%THIS_LISPDIR%%/slynk/slynk.lisp
+%%THIS_LISPDIR%%/slynk/start-slynk.lisp
+%%THIS_LISPDIR%%/slynk/xref.lisp
+%%THIS_LISPDIR%%/test/sly-autodoc-tests.el
+%%THIS_LISPDIR%%/test/sly-cl-indent-test.txt
+%%THIS_LISPDIR%%/test/sly-fontifying-fu-tests.el
+%%THIS_LISPDIR%%/test/sly-indentation-tests.el
+%%THIS_LISPDIR%%/test/sly-mrepl-tests.el
+%%THIS_LISPDIR%%/test/sly-parse-tests.el
+%%THIS_LISPDIR%%/test/sly-stickers-tests.el