Dev/Docu/ru/Search.odc

DevSearch
Редакция перевода: Ф.В.Ткачев, 2009-10-17

DEFINITION DevSearch;
	PROCEDURE Compare;
	PROCEDURE SearchInDocu (opts: ARRAY OF CHAR);
	PROCEDURE SearchInDocuLang (opts, lang: ARRAY OF CHAR);
	PROCEDURE SearchInSources;
	PROCEDURE SelectCaseInSens (pat: ARRAY OF CHAR);
	PROCEDURE SelectCaseSens (pat: ARRAY OF CHAR);
END DevSearch.

Модуль предоставляет средства глобального поиска (в папках Docu или Mod), а также возможности сравнения текстов. Механизм поиска взаимодействует с модуле TextCmds и, в частности, использует его интерактор поиска и замены. Это означает, что если строка была найдена одной их команд поиска, то сразу после этого можно использовать текстовую команду "Find Again" (найти снова) для поиска других вхождений той же строки в том же тексте.

Типичное меню:
MENU
	"Искать в исходниках"	""	"TextCmds.InitFindDialog; DevSearch.SearchInSources"	"TextCmds.SelectionGuard"
	"Искать в документации (с учетом регистра)"	""	"TextCmds.InitFindDialog; DevSearch.SearchInDocu('s')"	"TextCmds.SelectionGuard"
	"Искать в руссой документации (с учетом регистра)"	""	"TextCmds.InitFindDialog; DevSearch.SearchInDocuLang('s','ru')"	"TextCmds.SelectionGuard"
	"Искать в документации (без учета регистра)"	""	"TextCmds.InitFindDialog; DevSearch.SearchInDocu('i')"	"TextCmds.SelectionGuard"
	"Сравнить тексты"	""	"DevSearch.Compare"	"TextCmds.FocusGuard"
END

PROCEDURE Compare
Охрана: два верхних окна содержат текстовые документы
Выполняет текстовое сравнение содержимого двух самых верхних окон. 
Сравнение начинается в каждом окне с текущей позиции курсора или с конца выделенного фрагмента. 
Очередное найденное отличие показывается курсором или выделением отличающихся фрагментов. 
При сравнении игнорируются пробельные литеры (пробелы, табуляции, символы новой строки).

PROCEDURE SearchInSources
Охрана: TextCmds.SelectionGuard
Ищет выделенный текстовый фрагмент во всех доступных исходниках (во всех подсистемах). Поиск учитывает регистр.

PROCEDURE SearchInDocu (opts: ARRAY OF CHAR)
Охрана: TextCmds.SelectionGuard
Ищет выделенный текстовый фрагмент во всех доступных текстах документации (в папках Docu всех подсистем и в Руководствах). 
Если строка opts начинается с 's' или 'S', то регистр при поиске не учитывается, если она начинается с 'i' или 'I', то учитывается, а во всех остальных случаях используется значение из диалога Find.

PROCEDURE SearchInDocu (opts, lang: ARRAY OF CHAR)
Охрана: TextCmds.SelectionGuard
То же, что SearchInDocu, но поиск производится в подпапках lang всех папок Docu (например, имя lang = 'ru' зарезервировано для папок с переводами документации на русский язык).

PROCEDURE SelectCaseInSens (pat: ARRAY OF CHAR)
Устанавливает TextCmds.find.find в pat, вызывает TextCmds.FindFirst и открывает диалог поиска. Эта процедура используется вьюшками-ссылками, созданными вышеописанной процедурой SearchInDocu, когда поиск был выполнен без учета регистра.

PROCEDURE SelectCaseSens (pat: ARRAY OF CHAR)
Устанавливает TextCmds.find.find в pat и вызывает TextCmds.FindFirst. Эта процедура используется ссылочными вьюшками-ссылками, созданными вышеописанными процедурами SearchInDocu и SearchInSource, когда поиск был выполнен с учетом регистра.