Фильтр общего назначения при вводе текста (он же typeahead, инкрементальный поиск, автозаполнение) это там? - PullRequest
1 голос
/ 02 декабря 2008

Фон

В последнее время я стал фанатиком того, что все , которое я печатаю при работе на компьютере, должно быть совместимо с "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-файле, на который я случайно указал.

Мне интересно, есть ли какой-нибудь простой инструмент, который ничего не делает, кроме того, что я описываю выше.

ОБНОВЛЕНИЕ: Похоже, этот вопрос очень тесно связан с Графическая командная оболочка , которая отражает основную идею, представленную здесь.

1 Ответ

1 голос
/ 03 января 2009

Вы должны действительно попробовать Launchy - это именно то, что вы ищете, «запустить что-нибудь» с интеллектуальным автозаполнением. Это полностью меняет способ взаимодействия с ПК с Windows.

И у него есть открытый исходный код, так что вы можете позаимствовать его код автозаполнения, если хотите развернуть свой собственный интерфейс.

...