Podczas pisania kodów lisp czasami jestem głęboko w wyrażeniu zagnieżdżonym i wszystko, czego chcę, to wstawienie wszystkich brakujących nawiasów zamykających. W tej chwili wkładam je tylko, dopóki nie otrzymam niedopasowanego miąższu, ale nie jest to zbyt wydajne.
Czy istnieje polecenie wstawienia wszystkich brakujących nawiasów?
Do Twojej wiadomości używam smartparens do automatycznego wstawiania pasujących parens. Mimo to czasami muszę to zrobić.
development
rlazo
źródło
źródło
]
działał jako super prawy paren, zamykając wszystkie otwarte pareny, zgodnie z twoją prośbą.Odpowiedzi:
Oto funkcja, która zamyka wszystkie niezamknięte nawiasy i inne dopasowane pary. Opiera się na analizie seksu Emacsa. Obsługuje tylko pary dopasowanych pojedynczych znaków, więc coś takiego
{-
zostanie zamknięte}
, a nie-}
. Dla Lispa to nie ma znaczenia.źródło
([-!-foo]
, czy wstawiasz])
w punkcie czy)
pofoo]
?([-!-foo]
, wstawiłbym)
pofoo]
. Ale oczywiście mogę się mylić. Może @rlazo może to rozwinąć.Dowiedziałem się, że jeśli masz zainstalowany szlam, jest do tego polecenie zwane
slime-close-all-parens-in-sexp
źródło
Byłby to bardzo prymitywny (i prawie na pewno zły) sposób na zrobienie tego
Między innymi zakłada, że wszystkie nawiasy wymagające wstawienia to:
Wydaje mi się, że to może być po prostu użyteczne w konkretnym przypadku użycia
źródło