在Eclipse中,编辑Java代码,如果我输入open-paren,我会得到一对parens.如果我然后"输入"第二个paren,它不会插入额外的paren.我如何在emacs中获得它?
Eclipse编辑器非常聪明,当我输入close-paren时,我知道我刚刚完成了我的工作.光标越过关闭的paren.如果我然后键入一个分号,同样的事情:它只是覆盖了分号,我没有得到其中的两个.
在emacs,java模式或csharp模式中,如果我将open-paren绑定到skeleton-pair-insert-maybe,我会得到一个开放式关闭的paren对,这很好.但是如果我"通过"密切关注,我会得到两个近距离.
有没有办法教emacs不要在紧接着前面的骨架对插入后插入关闭paren?如果这是可能的,那么为避免分号加倍,一些类似的情报怎么样呢?
我问的是parens,但同样适用于双引号,花括号,方括号等.任何插入骨架对插入的东西也许.
有没有办法在Visual Studio 2008中显示单个TestMethod的进度?
在一组单元测试中,我有一个运行非常长时间的TestMethod - 通常需要30到60分钟.我使用[超时]属性设置了超时,没问题.但我希望能够直观地了解测试的进展情况.
我知道"测试结果"窗口提供了所有测试方法的可视化进度更新.我想要的是单个方法的视觉进度更新.在WinForms应用程序中,我会弹出一个ProgressBar控件.在控制台应用程序中,我将定位光标并显示状态消息.但这是一个单元测试.我可以写入TestContext,但在测试完成之前,该窗口是不可见的.
编辑:我知道有办法做到这一点; 它只是软件,所以总有办法.但是什么是简单实用的方法呢?
一种方法是创建一个TestMethodProgressMonitor.exe应用程序,该应用程序从命名管道读取,并根据通过管道传递的消息更新进度条.TestMethod可以shellExec TestMethodProgressMonitor.exe,然后写入命名管道.完成后,可能有一个众所周知的关闭命令,TestMethod发送到TestMethodProgressMonitor.exe应用程序.
另一个选项是将TestMethodProgressMonitor.exe构造为COM服务器,TestMethod可以使用COM(DCOM)更新应用程序中的托管进度条.
另一种选择是使用user32.dll SendMessage()方法将WM_COPYDATA消息发送到监视器应用程序.这有时用于远程控制应用程序.
这些是一些可能性.在我开始构建其中一个之前,我想知道是否有更简单的方法.
如何将CheckBox的IsChecked成员绑定到表单中的成员变量?
(我意识到我可以直接访问它,但我正在尝试学习数据绑定和WPF)
以下是我失败的尝试.
XAML:
<Window x:Class="MyProject.Form1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Title" Height="386" Width="563" WindowStyle="SingleBorderWindow">
<Grid>
<CheckBox Name="checkBoxShowPending"
TabIndex="2" Margin="0,12,30,0"
Checked="checkBoxShowPending_CheckedChanged"
Height="17" Width="92"
VerticalAlignment="Top" HorizontalAlignment="Right"
Content="Show Pending" IsChecked="{Binding ShowPending}">
</CheckBox>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
码:
namespace MyProject
{
public partial class Form1 : Window
{
private ListViewColumnSorter lvwColumnSorter;
public bool? ShowPending
{
get { return this.showPending; }
set { this.showPending = value; }
}
private bool showPending = false;
private void checkBoxShowPending_CheckedChanged(object sender, EventArgs e)
{
//checking showPending.Value here. It's always false
}
}
}
Run Code Online (Sandbox Code Playgroud) 为了测试压缩,我需要能够创建大文件,理想情况下是文本,二进制和混合格式.
为了创建二进制文件,我可以新建一个大缓冲区并在循环中执行System.Random.NextBytes后跟FileStream.Write,如下所示:
Int64 bytesRemaining = size;
byte[] buffer = new byte[sz];
using (Stream fileStream = new FileStream(Filename, FileMode.Create, FileAccess.Write))
{
while (bytesRemaining > 0)
{
int sizeOfChunkToWrite = (bytesRemaining > buffer.Length) ? buffer.Length : (int)bytesRemaining;
if (!zeroes) _rnd.NextBytes(buffer);
fileStream.Write(buffer, 0, sizeOfChunkToWrite);
bytesRemaining -= sizeOfChunkToWrite;
}
fileStream.Close();
}
Run Code Online (Sandbox Code Playgroud)
使用足够大的缓冲区,比方说512k,这相对较快,即使对于超过2或3gb的文件也是如此.但内容完全是随机的,这不是我想要的.
对于文本文件,我采用的方法是使用Lorem Ipsum,并通过StreamWriter将其重复发送到文本文件中.内容是非随机且不均匀的,但它确实有许多相同的重复块,这是不自然的.此外,由于Lorem Ispum块非常小(<1k),因此需要很多循环并且需要非常长的时间.
这些都不是我满意的.
我已经看到了在Windows系统上快速创建大文件的答案?.这些方法非常快,但我认为它们只是用零或随机数据填充文件,这两者都不是我想要的.如果需要,我可以运行像contig或fsutil这样的外部进程.
测试在Windows上运行.
而不是创建新文件,仅使用文件系统中已存在的文件更有意义吗?我不知道任何足够大的东西.
如何从单个现有文件开始(对于文本文件可能是c:\ windows\Microsoft.NET\Framework\v2.0.50727\Config\enterprisesec.config.cch)并多次复制其内容?这适用于文本或二进制文件.
目前我有一种方法可行,但运行时间太长.
有没有人解决过这个问题?
编写文本文件比通过StreamWriter快得多吗?
建议?
编辑:我喜欢马尔可夫链的想法,以产生更自然的文本.但仍需要面对速度问题.
在阅读" LINQ的Java等价物是什么? "后,我想知道,是(小写)语言集成查询 - 换句话说,是使用简洁语法在对象集合或外部存储上执行查询的能力 -成为大多数通用语言的未来之路?或者LINQ是一项有趣的技术,仍将局限于微软的语言?介于两者之间?
编辑:我不知道其他语言,但正如我所知,LINQ既不是史无前例也不是唯一的.LINQ中的想法 - lambdas和查询 - 存在于其他语言中,并且这些想法似乎正在传播.
我是一名C#程序员,所以我无法利用VB中的酷XML语法.
Dim itemList1 = From item In rss.<rss>.<channel>.<item> _
Where item.<description>.Value.Contains("LINQ") Or _
item.<title>.Value.Contains("LINQ")
Run Code Online (Sandbox Code Playgroud)
使用C#,我发现XPath比使用LINQ to XML执行多嵌套选择更容易思考,更容易编码,更容易理解.看看这个语法,它看起来像希腊语发誓:
var waypoints = from waypoint in gpxDoc.Descendants(gpx + "wpt")
select new
{
Latitude = waypoint.Attribute("lat").Value,
Longitude = waypoint.Attribute("lon").Value,
Elevation = waypoint.Element(gpx + "ele") != null ?
waypoint.Element(gpx + "ele").Value : null,
Name = waypoint.Element(gpx + "name") != null ?
waypoint.Element(gpx + "name").Value : null,
Dt = waypoint.Element(gpx + "cmt") != null ?
waypoint.Element(gpx + "cmt").Value : null
};
Run Code Online (Sandbox Code Playgroud)
所有的演员,沉重的语法,NullPointerExceptions的可能性.XPath不会发生这种情况. …
由于文本属性被视为缓冲区(或字符串)内容的一部分,并且可能影响缓冲区在屏幕上的显示方式,因此缓冲区文本属性的任何更改都会将缓冲区标记为已修改.
首先,我不明白这个政策.谁能解释一下?保存缓冲区时,文本道具实际上不会保存在文件中.为什么要将缓冲区标记为已修改?对我来说,缓冲区修改表示"尚未保存某些更改".但了解这项政策只是为了我自己的乐趣.
更重要的是,是否有一种已经建立的方式,在代码中,我可以在缓冲区中的文本上更改语法文本属性,同时在这些更改之前将缓冲区修改标志设置为它是什么?我在想类似的东西save-excursion.编写它会很容易,但这似乎是一种常见的情况,如果可能的话我想使用标准函数.
有关该场景的更多信息 - 我有一种模式可以进行全文扫描并在文本上设置语法表属性.打开缓冲区后,扫描会运行,但会产生缓冲区修改设置为t的缓冲区.
一如既往,谢谢.
我运行了这样的安装:
msiexec /i Module.msi /l*v msilog.log
Run Code Online (Sandbox Code Playgroud)
在生成的日志文件中,我得到了一堆消息,如:
Note: 1: 2729.这是什么意思?
是否有一个rosetta-stone用于理解msi日志文件中所有这些消息的含义?
编辑:
这是msi日志文件的示例片段:
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:348]: Note: 1: 2729
MSI (c) (D4:8C) [12:16:44:348]: Note: 1: 2729
MSI (c) …Run Code Online (Sandbox Code Playgroud) 在Javascript中,我想定义一个带有内部(或嵌套)类的类.在内部类中,我希望能够访问父实例.我怎样才能有效地做到这一点?
有些代码会显示我的意思.假设我定义了一个类MyType1,它暴露了几个属性和一个函数,SayHello:
(function(){
MyType1 = function(name){
this.TypeName = "MyType1";
this.Name = name;
};
MyType1.prototype.SayHello = function() {
say(this.Name + " says hello...");
};
})();
Run Code Online (Sandbox Code Playgroud)
好的,现在,从那里开始,我想在MyType1中添加一个"内部类",所以我添加了一些新的代码,使它看起来像这样:
(function(){
MyType1 = function(name){
this.TypeName = "MyType1";
this.Name = name;
var parentName = name;
this.Child = function(name) {
this.Description = parentName + "'s child, " + name;
};
this.Child.prototype.Introduce = function() {
say(this.Description + ", greets you...");
};
};
MyType1.prototype.SayHello = function() {
say(this.Name + " says hello...");
};
})();
Run Code Online (Sandbox Code Playgroud)
现在我可以像这样使用这些类:
var x …Run Code Online (Sandbox Code Playgroud) 我认为是一些非常基本的CSS,它在FF4和IE8中表现不同.
有问题的CSS是这样的:
div.showme {
border: 1px dotted blue;
position: absolute;
top :10px;
bottom :10px;
left: 1%;
right: 33%;
overflow: auto;
padding: 0.8em 1em 0.8em 1em;
line-height:1.75em;
}
div.showme a {
padding: 0em 5px 0em 5px;
margin: 0;
white-space: nowrap;
color: #FF00FF;
background-color:#E6E6FA;
border: 1px solid grey;
padding: 0em 4px 0em 4px; }
div.showme a:link { color: blue; }
div.showme a:visited { color: #1E90FF; }
div.showme a:active { color: red; }
Run Code Online (Sandbox Code Playgroud)
相关的HTML如下所示:
<div class='showme'>
<a href='one'>one</a>
<a href='two'>two</a>
...
</div>
Run Code Online (Sandbox Code Playgroud)
问题是,在IE8中,填充不一致地显示. …
.net ×3
c# ×2
emacs ×2
java ×2
linq ×2
checkbox ×1
closures ×1
css ×1
data-binding ×1
filesystems ×1
javascript ×1
linq-to-xml ×1
msiexec ×1
oop ×1
python ×1
testing ×1
unit-testing ×1
windows ×1
wix ×1
wpf ×1
xpath ×1