Что ближе всего к Slime for Scheme?

Я занимаюсь большей частью своей разработки на Common Lisp, но бывают моменты, когда я хочу переключиться на Scheme (например, при чтении Лисп мелкими кусочками, когда я хочу поиграть с продолжениями или когда я хочу написать сценарий в Gauche). В таких ситуациях мой главный источник дискомфорта заключается в том, что у меня нет слизи (да, вы можете называть меня наркоманом).

Что является ближайшим аналогом Slime от Scheme? В частности, меня больше всего интересуют:

  • Интеграция с Emacs (это очевидно;))
  • Достойное завершение табуляции (в идеале c-w-c-c TAB должно расширяться до call-with-current-continue). Он может быть даже основан на таблице символов (т.е. он не должен сразу замечать функцию, которую я определил в let).
  • Подсказки аргументов функции в минибуфере (если я набрал (map |) (позиция курсора обозначается |)), я бы хотел видеть (map predicate . lists) в минибуфере
  • Отправка форм переводчику
  • Интеграция с отладчиком.

Я упорядочил функции по убыванию важности.

Мои предпочтительные реализации схемы:

  • MzScheme
  • Икарус
  • Gauche
  • Bigloo
  • Курица

Было бы здорово, если бы это сработало хотя бы с ними.

комментарий, а не ответ - вы, вероятно, уже это знаете - но DrScheme IDE имеет привязки клавиш emacs, завершение табуляции (хотя и не с табуляцией), интегрированную документацию, отладчик и множество других инструментов.

Stephen 24.09.2008 12:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
44
1
13 296
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Что ж ... Я бы сказал, что Слайм для схемы - это самая близкая вещь к Slime for Scheme;)

Да, конечно, я видел Slime48. Однако (а) он работает только со Scheme48, (b) только со старой версией Scheme 48. Тем не менее, вы поняли, что я должен был упомянуть в вопросе свои реализации Scheme по выбору (я отредактировал его соответственно).

Ryszard Szopa 24.09.2008 06:30

В каталоге contrib SLIME, похоже, есть реализации SWANK для MIT Scheme и Kawa.

Я не использовал его, но вы можете попробовать Шарлатан с mzscheme.

Хотя SLIME довольно сложно победить. В конце SWANK есть много изящества.

Ответ принят как подходящий

Вы также можете считать схему завершенной:

http://www.emacswiki.org/cgi-bin/wiki/SchemeComplete

Он в основном обеспечивает завершение табуляции.

Комментатор сказал: «DrScheme IDE имеет привязки клавиш emacs», и это высоко ценимая среда со многими функциями, которые вы явно указали.

Кроме того, режим схемы для Emacs предоставляет некоторые возможности SLIME - интегрированный REPL, возможность отправлять формы в этот REPL и загружать файлы целиком. Насколько мне известно, в общем случае для схемы, которую вы указали, нет эквивалента для таких вещей, как удаленное подключение к работающему образу (по сравнению с заменой схемы в буфере Emacs) или интеграция отладчика.

Для работы с mzscheme я обычно использую cmuscheme + quack, которые предоставляют почти то, что мне нужно во время разработки.

Bigloo имеет очень мощный пчелиный режим.

А для работы вы можете использовать пакет GCA, который обеспечивает завершение имен, отображение описаний функций и вставку шаблонов кода.

Обновлять: Я опубликовал статья об интеграции Scheme + Emacs на своем сайте

Вы можете использовать Chicken Scheme со слизью, используя swank-chicken.

Я бы посоветовал взглянуть на режим гейзер, но сейчас он поддерживает только Racket и Guile, которых я не вижу в вашем списке.

На данный момент Гейзер утверждает, что поддерживает нечто большее, чем просто Racket и Guile: github.com/jaor/geiser#requirements. Это также упоминается в ответе @ haziz: stackoverflow.com/a/28998868/2636454.

GDP2 12.11.2016 04:49

Гейзер предоставляет отличную среду для Scheme. Последняя версия теперь также может взаимодействовать с Chez Scheme, Схема Чиби, Схема с курицей, а также с этим старым резервным Схема MIT, в дополнение к Хитрость и Ракетка. Я бы предложил установка его через Мельпа, особенно для того, чтобы последняя версия обрабатывала гораздо более широкий выбор REPL.

Другие вопросы по теме