我目前维护一个Firefox附加组件,它为实现自己的标记语言的论坛网站添加了许多功能,类似于stackoverflow提供的"Markdown".
我为这个附加组件构建了一个IntelliSense功能,类似于Visual Studio,在textarea中键入此标记时会弹出一个自动建议.例:
http://members.lycos.co.uk/suffusion/namfox/faq-1.5/autocomplete-example-2-1.jpg
实现最难的是在textarea中找到按键的(x,y)坐标,这样我就可以在非常靠近它的位置弹出IntelliSense窗口.JavaScript中的按键事件不会暴露这些坐标,所以我不得不解决这个问题.不幸的是,我只能找到一种跨浏览器兼容的获取y坐标的方法,而不是x坐标.该代码,位于这里的_getPopupPoint功能.
这适用于Firefox,因为我使用一些Mozilla的XPCOM接口来获取坐标.因此,虽然这适用于Firefox,但现在我想将我的插件移植到Google Chrome,我找不到获取坐标的方法.
所以我要问的是双重的:(1)有没有更好的方法来获得按键的x坐标?(2)如果没有,我可以在谷歌Chrome加载项的上下文中做些什么来获取相同的数据?
javascript intellisense google-chrome autocomplete firefox-addon
这感觉就像是一个愚蠢的问题,但我怎么能找到一个字符串NSArray
?
我试过用
[array indexOfObjectIdenticalTo:myString]
Run Code Online (Sandbox Code Playgroud)
但这需要刺痛具有相同的地址.
有没有人有关于如何做到这一点的任何提示?
类型类似乎很有可能以非常一致,高效和可扩展的方式编写泛型和可重用函数.但仍然没有 "主流语言"提供它们 - 相反:概念,这是一个非常类比的想法,已被排除在下一个C++之外!
反对类型类的原因是什么?显然,许多语言正在寻找一种方法来处理类似的问题:.NET引入了通用约束和类似于IComparable
允许函数的接口
T Max<T>(T a, T b) where T : IComparable<T> { // }
Run Code Online (Sandbox Code Playgroud)
对所有实现接口的类型进行操作.
Scala使用traits和所谓的隐式参数/视图边界的组合,它们会自动传递给泛型函数.
但是这里显示的两个概念都有很大的缺点 - 接口是基于继承的,因此由于间接而相对较慢,而且不可能让现有类型实现它们.
如果我们需要一个Monoid的抽象,我们可以很好地编写一个接口并让我们的类型实现它,但内置类型int
可能永远不会在你的函数本机上运行.
相反,隐式参数与常规接口/特征不一致.
使用类型类,不会有问题(伪代码)
typeclass Monoid of A where
static operator (+) (x : A, y : A) : A
static val Zero : A
end
instance Int of Monoid where
static operator (+) (x : Int, y : Int) : Int = …
Run Code Online (Sandbox Code Playgroud) 我在.NET中创建了我的第一个基于数据库的桌面应用程序,但无法理解如何使用应用程序安装程序部署数据库,以便一次性安装数据库,应用程序和SQL Server.
如果我只使用安装程序部署SQL Server的本机客户端和数据库,它会工作吗?
应用程序非常频繁地使用数据库.
除了sqlite3之外,还有其他可以在iPhone上使用的数据库引擎吗?像textDb这样的东西适用于 PHP,单文件且无服务器。
基本上,我接受一个事件名称作为字符串,以获得EventInfo
.然后,我发现使用反射的事件处理程序类型和事件参数类型,创建该类型的新委托(myEventHandler
),并将其与事件挂钩.在myEventHandler
调用时,我需要向下转换并将参数传递给处理程序.
我的代码如下.myEventHandler
当调用'd'时,需要调用'handler' .我需要在那里放一些反射发射代码??? 有什么想法吗?
EventHandler handler = delegate(object sender, EventArgs eventArgs)
{
//something will happen here
};
Type[] typeArgs = { typeof(object), derivedEventArgsType };
DynamicMethod myEventHandler = new DynamicMethod("", typeof(void), typeArgs);
var ilgen = myEventHandler.GetILGenerator();
//What should be the IL code here to
//cast derviedEventArgs to EventArgs and
//invoke the 'handler' above??????
ilgen.Emit(OpCodes.Pop);
ilgen.Emit(OpCodes.Ret);
Delegate d = dynamic.CreateDelegate(derviedEventHandlerType);
//addMethod is the add MethodInfo for an Event
addMethod.Invoke(target, new object[] { d }); …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个具有处理文本文件的函数的模块.我是新手测试,所以我决定一起去Test::More
.这是我的测试文件现在的样子:
use mymod;
use 5.10.0;
use strict;
use warnings;
use Test::More 'no_plan';
my $file_name = "test.file";
sub set_up {
my $self = shift;
open(my $handle,">",$file_name) or die "could not create file test.file $!\n";
# generate a sample text file here
close($handle);
}
sub tear_down {
my $self = shift;
unlink($file_name) or die "could not delete $file_name $!\n";
}
set_up();
open(my $handle,$file_name) || die "could not open $file_name $!\n";
my @lines = mymod->perform($handle);
is_deeply(\@lines,["expected line","another expected line"]);
close($handle);
tear_down(); …
Run Code Online (Sandbox Code Playgroud) 我有一些代码加载默认配置文件,然后允许用户提供自己的Python文件作为额外的补充配置或覆盖默认值:
# foo.py
def load(cfg_path=None):
# load default configuration
exec(default_config)
# load user-specific configuration
if cfg_path:
execfile(cfg_path)
Run Code Online (Sandbox Code Playgroud)
但是有一个问题:execfile()
在指定的文件中执行指令,cfg_path
就像它在工作目录中一样foo.py
,而不是它自己的工作目录.因此,import
如果cfg_path
文件执行,则指令可能会失败,例如,同一目录中的模块位于from m import x
何处.m
cfg_path
我如何execfile()
从其参数的工作目录中,或以其他方式获得相同的结果?另外,我被告知execfile
在Python 3中已弃用并且我应该使用它exec
,所以如果有更好的方法我应该这样做,我全都听见了.
注意:我认为仅仅改变工作目录的解决方案是正确的.据我所知,这不会将这些模块放在解释器的模块查找路径上.
我正在寻找一种方法,通过以下方式将任何数字转换为百分比:
高于1.00的数字以对数方式接近100%.
x> 0.因此y需要接近0,因为x在正侧变得无限小.
我确信这很简单,但我不记得怎么做了.
.net ×2
autocomplete ×1
c# ×1
cocoa ×1
deployment ×1
emulation ×1
execfile ×1
intellisense ×1
iphone ×1
javascript ×1
linux ×1
logarithm ×1
math ×1
nsarray ×1
nsstring ×1
perl ×1
python ×1
reflection ×1
sql-server ×1
sqlite ×1
testing ×1
typeclass ×1
unit-testing ×1