Całkiem kilka trybów Emacsa używa (coś w tym rodzaju): interfejs dostosowywania jest jednym z nich, tryb wiadomości (czytaj: część nagłówka) jest inny; jest ich więcej, niestety nie zawsze bardzo podobne. Przez „formularz” rozumiem tu bufor z częściami tylko do odczytu i miejscami przeznaczonymi do wprowadzania tekstu; może, ale nie musi zawierać przycisków (prawdopodobnie powinien przyjąć C-c C-c
jako klawisz potwierdzenia / zatwierdzenia, niezależnie od obecności przycisku OK ).
Szczególnie interesuje mnie automatyczne uzupełnianie w polach (w szczególności włączanie pól z listami wartości z określonego zestawu, powiedzmy rozdzielonego przecinkami). Moje pytanie brzmi: czy jest jakakolwiek biblioteka Emacsa umożliwiająca łatwe (przez „łatwe”, to znaczy nie wynajdowanie koła) tworzenie takich formularzy, czy też powinienem wszystko kodować sam?
(Wyobrażam sobie, że to, co należy zrobić w takim przypadku byłoby (1) ustawić kilka części bufora tylko do odczytu (2) przygotowuje specjalny tryb główną, tak że np TAB
i S-TAB
przełączać się między „pola”, oraz (3) może użyć czegoś takiego jak Sople lub Hełm do autouzupełniania).
Odpowiedzi:
Zobacz bibliotek
cus-edit.el
iwid-edit.el
(i ich biblioteki najwyższym poziomiecustom.el
iwidget.el
, oraz związane z bibliotek komponentów), które są dołączone do GNU Emacs. Pierwsza wykorzystuje drugą. Ten ostatni definiuje w hierarchii podstawowe (i nie tak podstawowe) rzeczy do wprowadzania formularzy, zwane „ widżetami ”. Możesz użyć tych predefiniowanych widżetów i funkcji w bibliotece do tworzenia własnych widżetów i typów widżetów.Ostrzegamy jednak, że kod tych bibliotek, zwłaszcza tych
wid-edit.el
, nie jest bardzo łatwy do naśladowania. Najlepszym rozwiązaniem jest ponowne użycie istniejących widżetów lub użycie istniejącego kodu definicji widgetów jako przewodnika.(Dwie mniejsze biblioteki rozszerzeń do tego to
cus-edit+.el
iwid-edit+.el
. Przedstawiają także przykłady użycia.)Istnieje podręcznik informacyjny dla widżetów, rozpowszechniany z GNU Emacs, zatytułowany „ Biblioteka widżetów Emacs ”.
Istnieje także biblioteka
forms.el
dołączona do GNU Emacs, ale nie jestem z nią zaznajomiona. Być może ktoś inny ma coś na ten temat do powiedzenia. Istnieje podręcznik dla formularzy, rozpowszechniany z GNU Emacs, zatytułowany „ Tryb formularzy ”.źródło
\(custom\|widget\).el
i\(cus\|wid\)-edit.el
trochę? Uważam, zwłaszcza tę część z widżetów ręcznego niezrozumiałe:(require 'widget) (eval-when-compile (require 'wid-edit))
.cus-edit.el
iwid-edit.el
. Pozostałe wymienione pliki to pliki najwyższego poziomu; te*-edit.el
pliki mają kod, który był zainteresowany Nie wiem o wiele więcej niż to.; Przepraszam. Prawdziwą trudnością jest sam kod, który korzysta ze szczególnego stylu semi-OOP, który nie nadaje się dobrze ani do auto-dokumentacji Emacsa (delikatnie mówiąc), ani do debuggera Emacsa. Możesz to zbadać samodzielnie lub spróbować skontaktować się z autorem (powodzenia!). Może inni tutaj będą potrzebować pomocy.