Функции абстрактного отображения
В этом подразделе ewoc и node обозначают структуры, описанные выше (см. Абстрактное отображение), а data — произвольный объект Lisp, используемый как элемент данных.
- Функция: ewoc-create pretty-printer &optional header footer nosep
-
Эта функция создает и возвращает новый ewoc без узлов (и, следовательно, без элементов данных). pretty-printer должна быть функцией, принимающей один аргумент — элемент данных того типа, который вы планируете использовать в этом ewoc, и вставляет его текстовое описание в текущую позицию с помощью
insert. (и никогдаinsert-before-markers, так как это помешает внутренним механизмам пакета Ewoc).Обычно после заголовка, подписи и текстового описания каждого узла автоматически вставляется новая строка. Если nosep — не
nil, новая строка не вставляется. Это может быть полезно для отображения всего ewoc в одной строке или для того, чтобы сделать узлы невидимыми, организовав pretty-printer так, чтобы он ничего не делал для этих узлов.Ewoc сохраняет свой текст в буфере, который используется в момент его создания, поэтому переключитесь на нужный буфер перед вызовом
ewoc-create.
- Функция: ewoc-buffer ewoc
Эта функция возвращает буфер, в котором ewoc сохраняет свой текст.
- Функция: ewoc-get-hf ewoc
Эта функция возвращает ячейку cons
(header . footer), составленную из заголовка и подписи ewoc.
- Функция: ewoc-set-hf ewoc header footer
Эта функция устанавливает заголовок и подпись ewoc соответственно на строки header и footer.
- Функция: ewoc-enter-first ewoc data
- Функция: ewoc-enter-last ewoc data
Эти функции добавляют новый узел, содержащий data, помещая его соответственно в начало или конец цепочки узлов ewoc.
- Функция: ewoc-enter-before ewoc node data
- Функция: ewoc-enter-after ewoc node data
Эти функции добавляют новый узел, содержащий data, добавляя его в ewoc соответственно перед или после узла node.
- Функция: ewoc-prev ewoc node
- Функция: ewoc-next ewoc node
Эти функции возвращают соответственно предыдущий и следующий узел узла node в ewoc.
- Функция: ewoc-nth ewoc n
Эта функция возвращает узел в ewoc, найденный по индексу n (с нуля). Отрицательное значение n означает подсчет с конца.
ewoc-nthвозвращаетnil, если n выходит за пределы диапазона.
- Функция: ewoc-data node
Эта функция извлекает данные, содержащиеся в узле node, и возвращает их.
- Функция: ewoc-set-data node data
Эта функция устанавливает данные, содержащиеся в узле node, на data.
- Функция: ewoc-locate ewoc &optional pos guess
Эта функция определяет узел в ewoc, который содержит текущую позицию (или pos, если задано), и возвращает этот узел. Если у ewoc нет узлов, возвращает
nil. Если pos находится перед первым узлом, возвращает первый узел; если pos находится после последнего узла, возвращает последний узел. Необязательный третий аргумент guess должен быть узлом, который, скорее всего, находится рядом с pos; это не изменяет результат, но ускоряет работу функции.
- Функция: ewoc-location node
Эта функция возвращает начальную позицию узла node.
- Функция: ewoc-goto-prev ewoc arg
- Функция: ewoc-goto-next ewoc arg
Эти функции соответственно перемещают текущую позицию к предыдущему или следующему arg-му узлу в ewoc.
ewoc-goto-prevне перемещает, если она уже находится в первом узле или если ewoc пустой, в то время какewoc-goto-nextперемещает за последний узел, возвращаяnil. За исключением этого специального случая, эти функции возвращают узел, к которому произошло перемещение.
- Функция: ewoc-goto-node ewoc node
Эта функция перемещает текущую позицию к началу узла node в ewoc.
- Функция: ewoc-refresh ewoc
Эта функция пересоздает текст ewoc. Она работает путем удаления текста между заголовком и подписью, т.е. всех представлений элементов данных, а затем вызова функции pretty-printer для каждого узла по одному, в порядке.
- Функция: ewoc-invalidate ewoc &rest nodes
Эта функция похожа на
ewoc-refresh, за исключением того, что обновляются только узлы nodes в ewoc, а не весь набор.
- Функция: ewoc-delete ewoc &rest nodes
Эта функция удаляет каждый узел из nodes из ewoc.
- Функция: ewoc-filter ewoc predicate &rest args
Эта функция вызывает predicate для каждого элемента данных в ewoc и удаляет те узлы, для которых predicate возвращает
nil. Любые args передаются в predicate.
- Функция: ewoc-collect ewoc predicate &rest args
Эта функция вызывает predicate для каждого элемента данных в ewoc и возвращает список тех элементов, для которых predicate возвращает не-
nil. Элементы в списке упорядочены так же, как и в буфере. Любые args передаются в predicate.
- Функция: ewoc-map map-function ewoc &rest args
Эта функция вызывает map-function для каждого элемента данных в ewoc и обновляет те узлы, для которых map-function возвращает не-
nil. Любые args передаются в map-function.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Abstract-Display-Functions.html