我正在寻找一个(最好)命令行工具,可以在目录树上重新格式化C#源代码.理想情况下,我应该能够自定义格式.如果该工具可以在单声道(或Linux)上运行,则可获得奖励积分.
这是一个最佳实践问题.有明显的方法可以做到这一点,其中没有一个看起来很正确.
我经常需要测试是否产生了一些多行字符串.这通常会打破缩进,使一切看起来像一团糟:
class TestHelloWorld < Test::Unit::TestCase
def test_hello
assert_equal <<EOS, hello_world
Hello, world!
World greets you
EOS
end
end
Run Code Online (Sandbox Code Playgroud)
随着<<-我在这里可以缩进文档的盯防,但是它不会删除里面定界符缩进,它仍然看起来太可怕了.
class TestHelloWorld < Test::Unit::TestCase
def test_hello
assert_equal <<-EOS, hello_world
Hello, world!
World greets you
EOS
end
end
Run Code Online (Sandbox Code Playgroud)
这让我缩进,但测试线的可读性受到影响.这gsub真的感觉不对劲.
class TestHelloWorld < Test::Unit::TestCase
def test_hello
assert_equal <<-EOS.gsub(/^ {6}/, ""), hello_world
Hello, world!
World greets you
EOS
end
end
Run Code Online (Sandbox Code Playgroud)
有没有办法测试这种真正可读的多行字符串?
intellij是否可以选择对齐javascript变量声明
var x = "x",
yyyy = "y";
Run Code Online (Sandbox Code Playgroud)
请注意,=它们整齐排列.我找不到这样做的选项....更糟糕的是,如果我手工完成,然后格式化文件,我就失去了对齐=.
我不记得在哪里,但最近我通过了评论,其中用户告诉1TBS在JavaScript中比Allman更受欢迎,并且说Allman在JavaScript中有危险的含义.
这是一个有效的陈述吗?如果是这样,为什么?
如何在Netbeans中进行缩进代码块的对立?
缩进多行代码,我可以选择并使用Tab键来实现.
我怎样才能快速做到这一点,而不是逐行进行?
更好的是,有没有办法格式化所有代码?我之前在Dreamweaver中使用的地方..
我想lint(甚至可能自动)在JavaScript中美化空白.问题是是否有任何工具可以做到这一点.
我知道JSLint和JSHint,例如,可以检查缩进和尾随空格,这两者都很好,但这些并不是你可能拥有的唯一种类的空格.
我想要检查的是:
基本上,我想拥有像Visual Studio和Resharper这样的现代IDE可以做的所有东西,但作为可以嵌入到Grunt中的命令行工具.
我发现在这方面做的事情唯一的就是esformatter,但根据它的网站
仍处于早期开发阶段,并且缺少对许多重要功能的支持.
当然,如果有更成熟的东西会很棒.
有任何想法吗?
在Eclipse中,有一种自动转换方式:
int myX, myY, myZ;
Run Code Online (Sandbox Code Playgroud)
......对......
int myX;
int myY;
int myZ;
Run Code Online (Sandbox Code Playgroud)
我认为我可以通过"清理"和"成员排序"首选项来完成此操作,但它不会将多个声明分解为每行一个.有办法吗?
编辑:为了澄清,这是关于成员变量.
是否有一种直接的配置方式,Perl::Tidy以便正确处理使用Devel::Declare?创建的自定义关键字?
具体来说,我正在使用Sub::Curried,它创建一个curry或多或少sub与5.20中的方法签名一样的关键字,但具有currying功能:
curry add ($x, $y) {
return $x + $y;
}
Run Code Online (Sandbox Code Playgroud)
请注意,a ;不是必需的,Perl::Tidy因为它给出了:
curry add( $x, $y ) {
return $x + $y;
}
Run Code Online (Sandbox Code Playgroud)
使用更长的子程序,无论有没有,情况会变得更糟;:
curry add( $x, $y ) {
my $z = $x + $y;
return $z;
};
Run Code Online (Sandbox Code Playgroud)
我想告诉Perl::Tidy要curry完全sub不应该对待.或者,有没有办法让它忽略那些它不理解的部分并且仍然整理文件的其余部分?
我目前正在编写大量的async库代码,并且我知道ConfigureAwait(false)在每次异步调用之后添加的做法,以避免将延续代码编组回原始(通常是UI)线程上下文.因为我不喜欢未标记的布尔参数,所以我倾向于将其写为ConfigureAwait(continueOnCapturedContext: false)相反.
我添加了一个扩展方法,使其更具可读性(并在某种程度上减少了输入):
public static class TaskExtensions
{
public static ConfiguredTaskAwaitable<TResult> WithoutCapturingContext<TResult>(this Task<TResult> task)
{
return task.ConfigureAwait(continueOnCapturedContext: false);
}
public static ConfiguredTaskAwaitable WithoutCapturingContext(this Task task)
{
return task.ConfigureAwait(continueOnCapturedContext: false);
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我可以有类似的东西await SomethingAsync().WithoutCapturingContext()而不是await SomethingAsync().ConfigureAwait(continueOnCapturedContext: false).我认为这是一个改进,但是当我必须async在同一个代码块中调用多个方法时,即使这种情况开始变得很糟糕,因为我最终得到类似于此的东西:
await FooAsync().WithoutCapturingContext();
var bar = await BarAsync().WithoutCapturingContext();
await MoreFooAsync().WithoutCapturingContext();
var moreBar = await MoreBarAsync().WithoutCapturingContext();
// etc, etc
Run Code Online (Sandbox Code Playgroud)
在我看来,它开始使代码的可读性低得多.
我的问题基本上是这样的:有没有办法进一步减少这种情况(除了缩短扩展方法的名称)?
有没有办法在Visual Studio Team Services(以前的Visual Studio Online)中以任何方式格式化代码片段,理想情况下是类似Markdown的语法?
使用斜体字并不适合我.
code-formatting ×10
javascript ×3
c# ×2
async-await ×1
azure-devops ×1
eclipse ×1
gruntjs ×1
ide ×1
java ×1
macros ×1
netbeans ×1
node.js ×1
perl ×1
perl-tidy ×1
ruby ×1