Схема PLT (ракетка)

#racket

#racket

Вопрос:

Есть ли у кого-нибудь идеи, как и возможно ли автоматическое заполнение скобок в DrScheme / Racket

Ответ №1:

DrRacket не выполняет автоматическое завершение закрывающих скобок (о чем, я полагаю, вы спрашиваете), но он вставит правильную форму paren — так что вы можете быстро нажать ]]] несколько раз, пока не закроете нужный уровень.

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

Ответ №2:

Я согласен с Eli в том, что проще постоянно поддерживать баланс parens и хотел бы добавить, что легко реализовать встроенное поведение и работать оттуда, настраивая все, что вы хотите. В DrRacket через «Редактировать / Привязки клавиш / Добавить пользовательские привязки клавиш» вы могли бы добавить файл, подобный следующему, который добавляет привязку к «Control-#», чтобы вставить пару скобок в курсоре (или вокруг текущего выделения, если таковое имеется). После этого вы должны перезапустить DrRacket.

 #lang s-exp framework/keybinding-lang
(keybinding "c:#"
        (λ (text evt)
          (define a (send text get-start-position))
          (define b (send text get-end-position))
          (send text insert #( a)
          (send text insert #) (  b 1))
          (send text move-position 'left)))
  

Ответ №3:

Если есть кто-нибудь с этой проблемой 11 лет спустя, выполните следующие действия

  1. Перейдите в настройки на Mac, возможно, это настройки в Windows

  2. Перейдите на вкладку редактирования

  3. Включить автоматическую скобку