Xcode中的缩进错误

问题描述 投票:2回答:1

我最近遇到过这几次。我无法隔离导致它的原因,但是如果有一条带有cout语句的行,就会发生这种情况。当然并不总是,它有点罕见,但当它确实发生时,它是由一条以cout开头的线引起的。

它的工作方式如下:在“错误的”cout行之后,Xcode会自动将代码缩进一到两个级别。每次按下回车键开始在新行上书写时,代码将不必要地缩进。代码本身没有任何问题,没有语法错误或任何东西。只是一个简单的cout << someString << endl;线。但是如果我摆脱那条线,或者将它评论出来,Xcode将使用适量的缩进,所以一切都恢复正常。如果我取消注释,以下行的缩进再次被搞砸。即使我删除了整段代码并重写它(如果在那里或某些东西中有一个时髦的隐形unicode),同样的事情也会发生。

最烦人的是,这不容易再现。我经常编写C ++代码,并且在完全不相关的上下文(不同的项目,不同类型的代码等)中只遇到过两三次。唯一常见的事情是,它始终是一个cout声明,与以下行的缩进相混淆。

顺便说一句,我最近在我的Mac上安装了一个干净的OS X,并从Mac App Store下载了一个新的Xcode副本,所以我认为没有任何损坏或其他东西。

有没有其他人注意到这一点?我似乎无法在互联网上找到任何类似的东西。我应该联系Apple了吗?

编辑(2015. 11. 29.):

OS X 10.11.1上的Xcode 7.1.1中仍然存在这个问题。这是一张图片:

Code

正如您所看到的,cout线后面的线条的缩进是混乱的。即使我选择了整段代码并选择“Re-Indent”,Xcode也无法修复它。事实上,即使我手动修复它,“重新缩进”选项也会将其恢复为这种混乱的状态。而且,在不同版本的Xcode中,在不同时间创建的完全不同的项目中都会发生这种情况。我已经重新安装了OS X(干净利落!)因为我最初发布了这个问题,事情没有改变。这就是为什么我确定它是Xcode本身的某种错误。

c++ xcode ide indentation auto-indent
1个回答
0
投票

我可以确认Xcode版本9.3(9E145)中仍存在此错误。请考虑以下测试代码段:

#include <iostream>
#include <sstream>
#include <string>

using namespace std;


class Date
{

private:

    int Day;
    int Month;
    int Year;
    string DateInString;

public:

    Date(int InputDay, int InputMonth, int InputYear):
    Day (InputDay), Month (InputMonth), Year (InputYear) {};

    operator const char*()
    {
        ostringstream formattedDate;
        formattedDate << Day << " / " << Month << " / " << Year;
        DateInString = formattedDate.str();
        return DateInString.c_str();
        }

        };


        int main()
        {
            Date Holiday (25, 12, 2011);
            cout << "Holiday is on: " << Holiday << endl;
            return 0;
        }

formattedDate << Day << " / " << Month << " / " << Year;导致错误的缩进。当注释掉时,Xcode可以正确地重新缩进代码。

© www.soinside.com 2019 - 2024. All rights reserved.