小编joo*_*ool的帖子

VSCode 如果省略大括号时缩进

在 VSCode 中,在编写 javascript/typescript 时,我经常编写不带大括号的 if。特别是对于提早退出。

foo() {
  ...
  if(...) 
     return;
  ...
  for(...) {
    ...
    if(...)
      continue;
    ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

在 VSCode 中,返回/继续/无论我放在新行上的内容都不会缩进。有这方面的设置吗?

我只有 Chrome 扩展的图标和调试器。

这是 VSCode 格式化它的方式:

在此输入图像描述

事实上,这并不是唯一发生的奇怪的缩进!

这看起来不错:

在此输入图像描述

但是,如果我将参数放在不同的行上。(长变量名可能需要):

在此输入图像描述

该函数的其余部分最终缩进,文件的其余部分也是如此。

我尝试重新安装 VSCode,但没有帮助。

有什么建议么?

javascript indentation typescript visual-studio-code

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

使用IsInDateTimeRange扩展IQueryable

所以我有点厌倦了一遍又一遍地重写相同的查询.

repo.Query().Where(stuff => stuff.Timestamp >= minTime && stuff.Timestamp <= maxTime && ...);
Run Code Online (Sandbox Code Playgroud)

我以为我应该IQueryable使用一个名为的方法进行扩展IsInDateTimeRange,并像这样使用它

repo.Query().IsInDateTimeRange(stuff => stuff.Timestamp, minTime, maxTime) ...
Run Code Online (Sandbox Code Playgroud)

这将是非常容易的IEnumerable,只有一个Func<T, DateTime>和两个DateTime,但是对于IQueryable我需要采取一个Expression,我不知道如何使用它.

这是我的尝试,但似乎没有奏效.

public static IQueryable<TValue> IsInDateTimeRange<TValue>(
        this IQueryable<TValue> self,
        Expression<Func<TValue, DateTime>> getMember,
        DateTime minTime,
        DateTime maxTime)
    {
        return self.Where(value => minTime >= getMember(value) && maxTime <= getMember(value));
    }
Run Code Online (Sandbox Code Playgroud)

c# linq extension-methods iqueryable linq-expressions

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