例如,我想在括号,(),UPCASE中创建所有文本.以交互方式执行以下操作非常简单:
M-x query-replace-regexp
replace: "(\(.+?\))"
with : "(\,(upcase \1))"
Run Code Online (Sandbox Code Playgroud)
相反,我想写一个defun会这样做:
(defun upcs ()
(interactive)
(goto-char 1)
(while (search-forward "(\\(.+?\\))" nil t) (replace-match "(\\,(upcase \\1))" t nil)))
Run Code Online (Sandbox Code Playgroud)
但它不起作用!虽然下面的工作(其追加foo并bar以括号文本):
(defun HOOK ()
(interactive)
(goto-char 1)
(while (search-forward-regexp "(\\(.+?\\))" nil t) (replace-match "(foo \\1 bar)" t nil)))
Run Code Online (Sandbox Code Playgroud) 我试图在构造函数中设置页面的Name属性:
public partial class PageListView : Page
{
public PageListView(string title)
{
InitializeComponent();
Name = title;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我经常收到以下错误消息.
'x' is not a valid value for property 'Name'.
Run Code Online (Sandbox Code Playgroud)
凡x似乎是几乎所有的东西,向下钻取到异常的详细信息似乎并没有提供任何有用的信息(如的InnerException为空).
有谁知道这里发生了什么?
似乎kendo的不显眼的javascript样式事件调用this在我的方法上下文中断.
假设我有一个对象Foo,实例化为bar = new Foo()
function Foo(){};
Foo.prototype.name = "Herring";
Foo.prototype.doSomething = function(e) {
alert(this.name);
};
bar = new Foo();
Run Code Online (Sandbox Code Playgroud)
然后使用数据单击附加事件
<a data-role="button" data-click="bar.doSomething">Click Me</a>
Run Code Online (Sandbox Code Playgroud)
对象上下文bar被替换(不知道为什么,因为我们有方便的element容器.)因此this.name是未定义的.
我var self = this;在对象构造函数中尝试了旧的,但它不起作用,有谁知道解决这个问题的最佳方法是什么?
因为我真的不想失去将模块包装为类的好处,所以我创建了事件调用函数包装器,然后调用适当对象上的方法.
例如,将标记连接到包装函数.
<a data-role="button" data-click="doSomething">Click Me</a>
Run Code Online (Sandbox Code Playgroud)
并且包装函数只调用object.method.
function doSomething(e){ bar.doSomething(e) };
Run Code Online (Sandbox Code Playgroud)
现在,这实现了预期的结果,但它非常可怕,从标记调用的每个事件都必须具有类似上面的代理功能.所以想象一下你有300个事件的场景......你会立刻明白为什么这很糟糕.
如果没有其他解决方案,我非常希望有.我将这个解决方法作为答案发布,但就我而言,它远非理想.
我会完全诚实,这似乎是剑道的主要架构缺陷,因为这种从标记调用事件的方法是"剑道方式".显然它无法修补,因为可能有一些代码已经处理this作为html元素的引用.
能够覆盖它,或者能够通过可以传递调用的泛型处理程序(实质上是通用代理函数)来路由这些事件调用,是可以处理它的可能方法.它也可以是kendo.对象上的简单可配置值.
如果有效,我会发布后续内容,理论上可以在通用代理中抛出事件,并让它调用正确的范围函数.
假设我们使用event属性来调用代理,然后创建一个单独的属性来传达对象/方法调用.例如.
<a data-role="button" data-click="prox" data-prox="o.eventHandler">Click Me</a>
Run Code Online (Sandbox Code Playgroud)
代理函数将从prox属性数据集中提取:
我有很多方便的功能,可以在当前的单词或区域上运行,并且由于懒惰等等,我用模板构建它们......
例如
(defun lower-camelcase-at-point-or-region ()
"lowerCamelCaseTheCurrent dashed or snake_case word or any words in text selection."
(interactive)
(let (pos1 pos2 meat)
(if (and transient-mark-mode mark-active)
(setq pos1 (region-beginning)
pos2 (region-end))
(setq pos1 (car (bounds-of-thing-at-point 'symbol))
pos2 (cdr (bounds-of-thing-at-point 'symbol))))
(setq meat (s-lower-camel-case (buffer-substring-no-properties pos1 pos2)))
(delete-region pos1 pos2)
(insert meat)
)
)
Run Code Online (Sandbox Code Playgroud)
实际上这是所有锅炉板,除了这条线......
(setq meat (s-lower-camel-case (buffer-substring-no-properties pos1 pos2)))
Run Code Online (Sandbox Code Playgroud)
我调用s-lower-camel-case缓冲区子串的地方.我想重用at点或区域的东西,但是没有在任何地方重复它(因为那是愚蠢的,并且很难维护.)
所以我真正想知道的是,我可以在Emacs Lisp中讨论函数吗?
当我试着这个......
(defun do-stuff-on-point-or-region ()
"Do stuff."
(interactive)
(operate-on-point-or-region 's-lower-camel-case)
)
Run Code Online (Sandbox Code Playgroud)
随着operate-on-point-or-region定义为...:
(defun operate-on-point-or-region (fn) …Run Code Online (Sandbox Code Playgroud) (渲染为模板图像)
我试过这段代码:
@IBOutlet weak var imgAdd: NSImageView!
imgAdd.layer?.backgroundColor = CGColor.white
Run Code Online (Sandbox Code Playgroud)
这只会改变背景颜色.
有没有办法以编程方式更改此图像的颜色?
到目前为止,我已经尝试了下面的代码不起作用.(图像颜色不会改变.)
func tintedImage(_ image: NSImage, tint: NSColor) -> NSImage {
guard let tinted = image.copy() as? NSImage else { return image }
tinted.lockFocus()
tint.set()
let imageRect = NSRect(origin: NSZeroPoint, size: image.size)
NSRectFillUsingOperation(imageRect, .sourceAtop)
tinted.unlockFocus()
return tinted
}
imgDok.image = tintedImage(NSImage(named: "myImage")!, tint: NSColor.red)
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个类似于flex组件SpringGraph的 Javascript灵活的图形可视化框架.我需要能够将节点表示为不同的可视组件,例如窗口,图像等.能够命名边缘等任何建议?
我有很多文件,我想删除第1行到第55行,然后为第25行到第35行添加注释(例如://),然后保存到新文件.
如何在bash shell上使用vim自动执行此操作?
我有一个遗留的HTTP/XML服务,我需要与我的应用程序中的各种功能进行交互.
我必须为服务创建各种请求消息,因此为了避免在代码周围乱七八糟的魔术字符串,我决定创建xml XElement片段来创建一个基本的DSL.
例如.
代替...
new XElement("root",
new XElement("request",
new XElement("messageData", ...)));
Run Code Online (Sandbox Code Playgroud)
我打算用:
Root( Request( MessageData(...) ) );
Run Code Online (Sandbox Code Playgroud)
使用Root,Request和MessageData(当然,这些是出于说明目的)定义为静态方法,它们都执行类似于以下操作:
private static XElement Root(params object[] content)
{
return new XElement("root", content);
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个伪功能组合风格,我喜欢这种任务.
我的终极问题实际上是一个理智/最佳实践,所以它可能过于主观,但我很高兴有机会得到一些反馈.
我打算将这些私有方法移动到公共静态类,以便任何想要为服务撰写消息的类都可以轻松访问它们.
我还打算让服务的不同功能将消息由特定的消息构建类创建,以提高可维护性.
这是实现这个简单的DSL的好方法,还是我错过了一些特殊的酱汁,让我能做得更好?
让我怀疑的是,事实上,只要我将这些方法移动到另一个类,我就会增加这些方法调用的长度(当然,我仍然保留了删除大量魔术字符串的初始目标.)我更关心DSL语言类的大小(loc),而不是语法简洁?
请注意,在这种情况下,远程服务实现不当,并且不符合任何通用消息传递标准,例如WSDL,SOAP,XML/RPC,WCF等.
在这些情况下,创建手工构建的消息显然不是明智之举.
在极少数情况下,您必须处理此类服务,并且无论出于何种原因无法重新设计,下面的答案提供了一些处理情况的可能方法.
我正在考虑从FactoryGirl迁移到Fabrication宝石的许多模拟.
但是,到目前为止,我一直无法找到有关实现FactoryGirl中可用的特征模式的任何信息.
是否有一种普遍接受的方法来使用Fabrication来做到这一点?
提前感谢您的任何答案或信息.
在Bash中,有一种方法可以在进程运行后捕获/重定向进程的输出(和stderr?)吗?