小编Che*_*eso的帖子

Emacs typeover skeleton-pair-insert-maybe

在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,但同样适用于双引号,花括号,方括号等.任何插入骨架对插入的东西也许.

c# java emacs

7
推荐指数
1
解决办法
647
查看次数

是否可以在执行Visual Studio TestMethod期间显示进度?

有没有办法在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消息发送到监视器应用程序.这有时用于远程控制应用程序.

这些是一些可能性.在我开始构建其中一个之前,我想知道是否有更简单的方法.

unit-testing visual-studio-2008

7
推荐指数
1
解决办法
2920
查看次数

WPF数据绑定CheckBox.IsChecked

如何将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)

data-binding wpf checkbox

7
推荐指数
1
解决办法
4万
查看次数

如何快速创建具有"自然"内容的大型(> 1gb)文本+二进制文件?(C#)

为了测试压缩,我需要能够创建大文件,理想情况下是文本,二进制和混合格式.

  • 文件的内容既不是完全随机也不是统一的.
    一个全零的二进制文件是不好的.具有完全随机数据的二进制文件也不好.对于文本,具有完全随机的ASCII序列的文件不好 - 文本文件应具有模拟自然语言或源代码(XML,C#等)的模式和频率.伪真实文本.
  • 每个文件的大小并不重要,但对于文件集,我需要的总数大约为8GB.
  • 我想将文件数量保持在可管理的水平,让我们说o(10).

为了创建二进制文件,我可以新建一个大缓冲区并在循环中执行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快得多吗?

建议?

编辑:我喜欢马尔可夫链的想法,以产生更自然的文本.但仍需要面对速度问题.

.net c# windows filesystems testing

7
推荐指数
3
解决办法
8152
查看次数

LINQ(或linq)是一个利基工具,还是它正在走向成为基础?

在阅读" LINQ的Java等价物是什么? "后,我想知道,是(小写)语言集成查询 - 换句话说,是使用简洁语法在对象集合或外部存储上执行查询的能力 -成为大多数通用语言的未来之路?或者LINQ是一项有趣的技术,仍将局限于微软的语言?介于两者之间?

编辑:我不知道其他语言,但正如我所知,LINQ既不是史无前例也不是唯一的.LINQ中的想法 - lambdas和查询 - 存在于其他语言中,并且这些想法似乎正在传播.

.net python java linq

7
推荐指数
1
解决办法
637
查看次数

只有我吗?与XPath相比,我发现LINQ to XML有点麻烦

我是一名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不会发生这种情况. …

.net linq xpath linq-to-xml

7
推荐指数
2
解决办法
563
查看次数

Emacs:如何在设置文本属性时智能地处理缓冲区修改?

Text Properties的文档说:

由于文本属性被视为缓冲区(或字符串)内容的一部分,并且可能影响缓冲区在屏幕上的显示方式,因此缓冲区文本属性的任何更改都会将缓冲区标记为已修改.

首先,我不明白这个政策.谁能解释一下?保存缓冲区时,文本道具实际上不会保存在文件中.为什么要将缓冲区标记为已修改?对我来说,缓冲区修改表示"尚未保存某些更改".但了解这项政策只是为了我自己的乐趣.

更重要的是,是否有一种已经建立的方式,在代码中,我可以在缓冲区中的文本上更改语法文本属性,同时在这些更改之前将缓冲区修改标志设置为它是什么?我在想类似的东西save-excursion.编写它会很容易,但这似乎是一种常见的情况,如果可能的话我想使用标准函数.

有关该场景的更多信息 - 我有一种模式可以进行全文扫描并在文本上设置语法表属性.打开缓冲区后,扫描会运行,但会产生缓冲区修改设置为t的缓冲区.

一如既往,谢谢.

emacs

7
推荐指数
2
解决办法
631
查看次数

当MSI日志文件显示"注意:1:2729"时,它是什么意思?

我运行了这样的安装:

  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)

windows-installer wix msiexec

7
推荐指数
1
解决办法
2254
查看次数

Javascript,内部类以及如何有效地访问父作用域

在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)

javascript oop closures

7
推荐指数
1
解决办法
1万
查看次数

我该如何解决这个CSS异常?

我认为是一些非常基本的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中,填充不一致地显示. …

css

7
推荐指数
1
解决办法
99
查看次数