Фон
В последнее время я стал фанатиком того, что все , которое я печатаю при работе на компьютере, должно быть совместимо с "DRY" . Если есть что-то, что мне нужно вводить более одного раза в любом контексте, я хочу, чтобы какая-то опция автозаполнения, ориентированная на пользователя, выполняла за меня часть работы - всегда - без исключений.
Работая под Windows, я посмотрел на решения с графическим интерфейсом, чтобы воплотить эту безумную цель в реальность.
(почти) оптимальное решение
Если у вас есть время, откройте Firefox 3.0 и введите несколько нажатий клавиш в адресную строку. Вы заметите, что он выполняет своего рода Инкрементальное Автозаполнение на основе разделенных пробелами подстрок любого типа, который вы вводите. Еще одно место в Firefox, которое делает нечто подобное, - URL about:config
.
Это неоптимально, потому что я не хочу этого только в Firefox. Я хочу использовать это везде.
Вопрос
Кто-нибудь знает о виджете или приложении, которое не выполняет ничего , но безумно хорошее пошаговое автозаполнение, которое можно использовать в качестве универсального инструмента "везде бегать"? Что-то, что позволяет пользователю: 1) поддерживать один или несколько «файлов кандидатов на завершение»; 2) выберите один из этих файлов в качестве источника для завершения стиля Firefox 3.0; 3) вернуть результат (или пусто, если пользователь отменил), и делать только эти три вещи?
Подробнее
Вот как это должно работать:
- ШАГ1: пользователь сохраняет или несколько файлов CSV (или другой легко редактируемый формат) где-то на своем жестком диске
- STEP2: пользователь создает сценарий Windows Script Host или командный файл (или что-то еще), создает экземпляр FilterAsYouType GUI
- STEP3: пользователь запускает файл сценария, а файл сценария создает экземпляр GUI, сообщая ему, какой файл 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-файле, на который я случайно указал.
Мне интересно, есть ли какой-нибудь простой инструмент, который ничего не делает, кроме того, что я описываю выше.
ОБНОВЛЕНИЕ: Похоже, этот вопрос очень тесно связан с Графическая командная оболочка , которая отражает основную идею, представленную здесь.