Co to jest lokalna zmienna pliku mangle-whiteespace?

12

Widzę

;; Local Variables:
;; mangle-whitespace: t
;; End:

w wielu plikach źródłowych Elisp różnych doświadczonych programistów Emacsa.

Ale kiedy ja describe-variable, Emacs 24.3 mówi, że nie mangle-whitespacezdefiniowano żadnej zmiennej .

Czy mangle-whitespacezapewnia Emacs 24.4? Lub jakimś popularnym pakietem? (Nie widzę żadnego na MELPA o nazwie „magiel”.)

Co ma mangle-whitespacezrobić?

Uwaga: szukałem tego zarówno tutaj, jak i na SO pod tagiem emacs. Próbowałem także DuckDuckGo i Google, a wyniki wyszukiwania to tylko więcej przykładów .elplików, które to wykorzystują. Ergo pyta tutaj.

Greg Hendershott
źródło
1
Zgadzam się - nic nie wyskakuje w Google poza ustawieniem zmiennej lokalnej pliku, która jest iluzoryczna.
prawnik
3
Brak dopasowania grepowanie kodu źródłowego dla Emacsa w fazie rozwoju 25.1. Brak pasujących elementów do starożytnego Emacsa 22.1.
PythonNut

Odpowiedzi:

8

Mam grepped Moje strony ~/.emacs.d/elpadla mangle-whitespacei zauważyłem, że jest używany w kilku pakietów, które są napisane przez Roland Walker . Następnie przystąpiłem do pobierania archiwów dla Emacsa 22.1 do Emacsa 24.4 (ponieważ są to wersje Emacsa, które Roland Walker obsługuje w swoich pakietach) i grepowałem je dla tej zmiennej, ale bez powodzenia.

Właśnie dlatego otworzyłem problem, aby znaleźć przyczyny. Zaktualizuję tę odpowiedź, gdy tylko pojawi się odpowiedź.

edycja: Autor tych pakietów potwierdził, że jest to zmienna respektowana przez jego własną konfigurację Emacsa, która nakazuje bezwarunkowo wymagać końcowej nowej linii. Wyraził także zainteresowanie przekształceniem go w zmienną lokalną dla katalogu, aby uniknąć wypychania go do Github.

wasamasa
źródło
Tak więc, dla wyjaśnienia, nie jest to część Emacsa i nie jest częścią pakietu innej firmy, ale raczej jest osobistą personalizacją, prawda?
Dan
Nawiasem mówiąc, to była imponująca ilość snu.
Dan
Tak jest w przypadku wszystkich pakietów wykazujących tę dość unikalną zmienną lokalną pliku napisaną przez Rolanda Walkera. Jeśli znajdziesz jakieś przez innych autorów, powiedz mi.
wasamasa
2
Na marginesie. Ta zmienna może zostać zastąpiona przez ;; require-final-newline: t. Powinno to zapewnić podobny wynik z wbudowaną zmienną.
Jonathan Leech-Pepin
@wasamasa Inne przykłady: exec-path-from-shell i magit-find-file .
Greg Hendershott