【问题标题】:VS2008 is autoformatting my javascript in a .js file and I want it to stopVS2008 正在将我的 javascript 自动格式化为 .js 文件,我希望它停止
【发布时间】:2010-10-11 15:31:58
【问题描述】:

重复:VS2008 Removes my Indentation in .js file(在格式选项卡中关闭自动格式)

您好,我有 VS2008 和 ReSharper 4.0,但遇到了问题。当我在任何 .js 文件中输入新的代码行时,它会通过并重新格式化所有 JavaScript 大括号。我在 ReSharper 中找到了可以为 C# (.cs) 文件设置大括号行为的位置。我在 VS2008 中搜索过,找不到 JavaScript 代码的任何设置。

    function doSomething(withMe) 
    {
        for (idx in myArray) 
        {
            if (myArray[idx] != -1) 
            {
                return "yep";
            }
        }
        return "nope";
    }

变成这个(我更喜欢这个,但我的团队更喜欢上面那个)

    function doSomething(withMe) {
        for (idx in myArray) {
            if (myArray[idx] != -1) {
                return "yep";
            }
        }
        return "nope";      
    }

返回并在各处重新添加 CR 会变得很痛苦。我在哪里可以找到让这种疯狂停止的设置。

【问题讨论】:

  • 投票结束:重复:stackoverflow.com/questions/605461/…(在格式选项卡中关闭自动格式)
  • 不要关闭这个问题。这是对另一个问题的更好解释。
  • 它也会错过 Jonnii 的观点,即对齐在实践中的语法意义。

标签: javascript visual-studio-2008 resharper


【解决方案1】:

转到工具 -> 选项。

展开文本编辑器

扩展 JScript

取消选中所有格式选项。

【讨论】:

  • 感谢您的回答。这让我发疯了很长时间。
  • 显然,JScript 设置也会格式化 JavaScript 代码。难怪我找不到。 :) 感谢您的指点。
  • 我强烈建议您不要这样做。请参阅此问题的其他答案。
【解决方案2】:

对于 javascript,您应该养成将大括号放在行尾的习惯,就像 Visual Studio 建议的那样。这样做的原因是解释器偶尔可以添加一个 ;在解释可能导致奇怪行为的文件时。例如:

return
{
    'foo': 3
};

这返回未定义的,而不是你期望的散列文字,因为解释器将它变成:

return;
{
    'foo': 3
};

你可能认为我在编造这个。我向你保证我不是。

我建议您教育您的团队并养成按照 VS 建议格式化 javascript 的习惯。它会拯救你自己。


另外,还有一件事。而不是这样做:

myArray[idx] != -1

我建议你这样做:

myArray[idx] !== -1

这将阻止它进行类型强制。事实上...永远不要使用 == 或 != 总是使用 === 和 !==。

【讨论】:

  • 大声笑。 myArray[idx] != -1 只是我扔在那里的一些虚拟代码。我们的代码中没有它,只是从我的脑海中浮现出来。但有趣的一点。我不知道什么是强制,但这听起来很重要。
  • 类型强制是 javascript 进行类型比较的方式。例如 ' \t\r\n ' == 0 计算结果为真。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2020-12-14
  • 2010-11-28
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多