背景
最近我成了一个狂热分子
一切
我在电脑上打字时应该与
"DRY"
. 如果有什么东西我必须在任何上下文中多次键入,我希望某种用户感知的自动完成选项为我做一些工作——总是——没有例外。
(几乎)最优解
如果您有空,请打开Firefox3.0并在地址栏中键入一些按键。你会注意到它表现出
Incremental
Autocomplete
基于空格分隔的子字符串。Firefox中的另一个类似的地方是
about:config
这是次优的,因为我不想只在Firefox中使用。我想到处都用这个。
有没有人知道一个小部件或应用程序
没有什么
但是非常好的增量自动完成,可以作为一个通用的“到处运行”工具?允许用户执行以下操作:1)维护一个或多个“完成候选文件”;2)选择其中一个文件作为Firefox3.0风格完成的源文件;3)返回结果(如果用户取消,则返回空白),然后仅执行这三项操作?
细节
它的工作原理如下:
-
步骤1:用户将csv文件(或其他易于编辑的格式)保存在硬盘中的某个位置
-
步骤2:用户创建一个Windows脚本宿主脚本或一个批处理文件(或其他)来实例化FilterAsYouType GUI
-
步骤3:用户运行脚本文件,脚本文件实例化GUI,告诉它使用哪个CSV文件作为所有潜在完成的源
-
-
步骤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数据库)将为我提供一种自我生成“候选列表”或“历史日志”的方法,然后仅使用这些日志作为可能完成的源。
免责声明
我想知道有没有
简单的
更新:
Graphical Command Shell
,它捕获了这里提出的基本思想。