Каков возвращаемый тип поиска вперед, а также другие функции поиска? - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь написать интерактивную функцию, которая просматривает каталоги для поиска слов или имен и возвращает файлы, которые содержат действительный результат поиска. Я пытался написать это очень простым способом, но я проверяю правильные результаты поиска следующим образом:

(point-min)
(if(search-forward thing-to-find)
 (do-thing))

Всякий раз, когда я проверяю это, он просто добавляет каталоги, которые в любом случае не имеют действительных результатов. Нужно ли самому писать алгоритм поиска слов? Мне просто нужно какое-то направление здесь.

1 Ответ

2 голосов
/ 19 апреля 2020

Я попытался прочитать документацию, и она ничего не говорит мне о типе возвращаемого значения.

Не верно. C -h f search-forward говорит:

Установить точку в конце найденного вхождения и точку возврата .

Точка - это позиция символа в буфере - целое число.
См. C -h f point, и C -h i g (elisp)Point.

К сожалению, в строке документации для search-forward отсутствует объяснение аргумент NOERROR, сведения о котором вы можете найти в аналогичной строке re-search-forward:

Необязательный третий аргумент NOERROR указывает, как обрабатываются ошибки в случае сбоя поиска. Если это ноль или опущен, выдать ошибку; если это t, просто верните ноль и ничего не делайте; если он не равен ни nil, ни t, перейдите к пределу поиска и верните nil.

Следовательно, при успешном выполнении эти функции возвращают целое число или, при ошибке, либо возвращают nil (если NOERROR не -nil) или сообщить об ошибке.

Пожалуйста, Mx report-emacs-bug, чтобы сообщить о проблеме документации с search-forward.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...