From 17ef49165a1f975ecc8523ce8073e4ffeb8eb589 Mon Sep 17 00:00:00 2001 From: Li-Wen Hsu Date: Tue, 16 Mar 2021 10:35:08 +0000 Subject: Add editors/sly, Common Lisp IDE for Emacs PR: 253991 Submitted by: Olivier Certner --- editors/Makefile | 1 + editors/sly/Makefile | 67 ++++++++++++++++++++++++++ editors/sly/distinfo | 3 ++ editors/sly/files/patch-doc_Makefile | 20 ++++++++ editors/sly/files/patch-doc_sly.texi | 25 ++++++++++ editors/sly/files/patch-sly.el | 46 ++++++++++++++++++ editors/sly/pkg-descr | 19 ++++++++ editors/sly/pkg-message | 27 +++++++++++ editors/sly/pkg-plist | 91 ++++++++++++++++++++++++++++++++++++ 9 files changed, 299 insertions(+) create mode 100644 editors/sly/Makefile create mode 100644 editors/sly/distinfo create mode 100644 editors/sly/files/patch-doc_Makefile create mode 100644 editors/sly/files/patch-doc_sly.texi create mode 100644 editors/sly/files/patch-sly.el create mode 100644 editors/sly/pkg-descr create mode 100644 editors/sly/pkg-message create mode 100644 editors/sly/pkg-plist (limited to 'editors') 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 + +.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 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: <