Фон
В последнее время я стал фанатиком того, что все, что я печатаю во время работы на компьютере, должно быть совместимо с "СУХОЙ". Если есть что-то, что мне нужно вводить более одного раза в любом контексте, я хочу, чтобы какой-то вариант автозаполнения, учитывающий пользователя, выполнял часть работы за меня - всегда - без исключений.
Мне пришлось работать под Windows, и я рассмотрел решения с графическим интерфейсом, чтобы воплотить эту безумную цель в жизнь.
(Почти) оптимальное решение
Если у вас есть время, откройте Firefox 3.0 и введите несколько нажатий клавиш в адресную строку. Вы заметите, что он выполняет что-то вроде Incremental Автозаполнение на основе разделенных пробелами подстрок того, что вы вводите. Еще одно место в Firefox, которое делает что-то подобное, — это URL-адрес about:config.
Это неоптимально, потому что я не хочу этого только в Firefox. Я хочу использовать это везде.
Вопрос
Кто-нибудь знает о виджете или приложении, которое ничего не делает, кроме безумно хорошего добавочного автозаполнения, которое можно использовать в качестве универсального инструмента «запускать везде»? Что-то, что позволяет пользователю: 1) поддерживать один или несколько «файлов-кандидатов на завершение»; 2) выбрать один из этих файлов в качестве источника для завершения стиля Firefox 3.0; 3) вернуть результат (или пустой, если пользователь отменил) и выполнить только эти три действия?
Подробности
Вот как это должно работать:
- ШАГ 1: пользователь сохраняет или несколько CSV-файлов (или других легко редактируемых форматов) где-нибудь на своем жестком диске.
- ШАГ 2: пользователь создает сценарий Windows Script Host или пакетный файл (или что-то еще) для создания экземпляра графического интерфейса FilterAsYouType.
- ШАГ 3: пользователь запускает файл сценария, и файл сценария создает экземпляр графического интерфейса пользователя, сообщая ему, какой CSV-файл использовать в качестве источника всех возможных завершений.
- ШАГ 4: пользователь либо выбирает одно из дополнений, вводит свой собственный текст, которого нет в списке, либо отменяет его, не вводя ничего.
- ШАГ 5: когда пользователь закончит, скрипт сохраняет результат в переменную и что-то с ним делает.
Вот некоторый псевдокод для скрипта:
include "GenericTypeaheadWidget";
var gengui = new GenericTypaheadWidget('c:\docs\favorite_foods.csv');
var fave_food = gengui.get_user_input();
if(fave_food != ''){
alert('you chose '+fave_food+'!');
}
Обоснование
Цель состоит в том, чтобы иметь возможность всегда выполнять автозаполнение из списка произвольных элементов, даже если список состоит из пары тысяч элементов, и не полагаться на его построение. в некоторую IDE или автономное приложение, которое принимает только определенные виды ввода или имеет чрезмерно сложный API по сравнению с простотой этой задачи.
CSV (или текстовая или sqlite база данных) предоставит мне возможность самостоятельно генерировать «списки кандидатов» или «журналы истории», а затем просто использовать эти журналы в качестве источника возможных завершений.
Отказ от ответственности
Я пробовал несколько программ запуска с графическим интерфейсом, механизмы командной строки, такие как power-shell и оболочки сценариев, обычную старую историю командной строки с разной степенью удовлетворения. Проблема с ними в том, что все они делают лишние вещи, такие как поиск в каталогах или встроенные команды. Мне просто не нужно ничего, кроме того, что находится в файле CSV, на который я указываю.
Мне интересно, есть ли какой-нибудь простой инструмент, который не делает ничего, кроме того, что я описал выше.
ОБНОВЛЕНИЕ: похоже, что этот вопрос очень тесно связан с Графическая командная оболочка, в которой отражена основная идея, представленная здесь.