我使用https://github.com/cakebaker/scss-syntax.vim在vim上突出显示SCSS(或SASS)文件的语法,这非常适用于语法高亮.但是,该插件没有附加缩进文件,并且在编写插件时遇到问题.
我想将缩进设置为如下所示:

但是,如果我这样做gg=G,我得到:

我怀疑它不理解基于大括号的嵌套缩进.我尝试了所有不同的组合
set cindent
set nocindent
set autoindent
set smartindent
并试图使用Tab键== 4空格中的代码和Vim中的花括号后自动缩进,包括
set tabstop=2
set shiftwidth=2
set expandtab
...但嵌套大括号缩进似乎永远不会起作用.
我相信我可能想写一个自定义缩进文件,我需要的是基于嵌套级别的大括号的缩进.我该怎么办呢?如果某人有一个具有类似语法的文件类型的缩进文件,那么这也是很好的.
这是我的iOS应用程序的一小段代码:
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Do you like my hat?"
                                                    message:@"If so, please help spread the word by rating our app now?"
                                                   delegate:nil
                                          cancelButtonTitle:@"No Thanks"
                                          otherButtonTitles:@"Sure!", @"Maybe Later", nil
                          ];
为什么Xcode缩进行如此血腥?作为一个旧的Perl,Ruby和JavaScript猴子,我更倾向于手动缩进它,如下所示:
    UIAlertView *alert = [[UIAlertView alloc]
        initWithTitle:     @"Do you like my hat?"
        message:           @"If so, please help spread the word by rating our app now?"
        delegate:          nil
        cancelButtonTitle: @"No Thanks"
        otherButtonTitles: @"Sure!", @"Maybe Later", nil
    ];
所以参数名称和值都是左对齐的,并且只缩进一个级别(对我来说是4个空格).这使用了更少的屏幕空间,而且我不太可能在MacBook Air上处理包装线(这使得最右边的缩进内容甚至更难阅读).
但是,我认为Apple更喜欢第一种方法,因此有Xcode缩进.还是有吗?
所以我有两个问题:
不试图在这里开始圣战; 我更喜欢Objective-C程序员中最好的做法,Xcode如何帮助实现这些做法,并找出Xcode是否有充分理由采用默认方式.
更新:评论者和答案指出默认格式在冒号处对齐参数.我应该记得在张贴之前,因为我当然注意到了它,当最长的项目没有缩进时,它看起来很漂亮.但我发现,通常情况下,最长的项目会缩进很多.例如: …
当我将函数参数放在新行上时,我希望函数参数能够像这样自动缩进
        using (MemoryMappedFile memoryMappedFile = MemoryMappedFile.CreateOrOpen("Global\\PointCloudData", 
                                                                                 capacity, 
                                                                                 MemoryMappedFileAccess.ReadWrite, 
                                                                                 MemoryMappedFileOptions.None, 
                                                                                 HandleInheritability.Inheritable))
但他们总是这样排列
            using (MemoryMappedFile memoryMappedFile = MemoryMappedFile.CreateOrOpen("Global\\PointCloudData", 
                capacity, 
                MemoryMappedFileAccess.ReadWrite, 
                MemoryMappedFileOptions.None, 
                HandleInheritability.Inheritable))
我已经设法在 Visual Studio 2017 Enterprise 上的 C++ 中获得此行为,但在 C# 的任何地方都找不到它。Visual Studio 是否允许这样做?如果没有那就奇怪了,但我查了一下,根本找不到。
如果 Javascript(或 Typescript)函数签名具有多行参数(在 Typescript 中很容易发生,类型名称较长),则 Visual Studio Code 在我点击后会像这样缩进return:
我更喜欢它排列论据,如下所示:
是否有某个设置可以自动执行此操作,这样我就不必手动缩进代码?
(我也想对函数调用执行此操作。)
javascript code-formatting indentation auto-indent visual-studio-code
将 xcode 升级到 v.11 后,当我复制/粘贴代码时,缩进消失了。下面的示例显示了我复制代码时的外观。有人知道如何解决这个问题吗?
public func configure(_ view: WithdrawelView) {
        view.paySumLabel.text = self.pay
        view.expensesSumLabel.text = self.expenses
        view.refundSumLabel.text = self.refund
        view.taxLastYearSumLabel.text = self.taxLastYear
        view.futureWithdrawelSumLabel.text = self.futureWithdrawel
        view.balanceSumLabel.text = self.balance
    }
public func configure(_ view: WithdrawelView) {
           view.paySumLabel.text = self.pay
           view.expensesSumLabel.text = self.expenses
           view.refundSumLabel.text = self.refund
           view.taxLastYearSumLabel.text = self.taxLastYear
           view.futureWithdrawelSumLabel.text = self.futureWithdrawel
           view.balanceSumLabel.text = self.balance
       }
我通常使用逗号,来设置与上面的 gif 相同的变量类型。
但问题是当我Enter在写入第二个变量后点击时,VS 会自动断线。
作为正式的 Atom 用户,这有点乏味,因为在 Atom 中,无论缩进数字是多少,它都不会断行。(我当前的缩进数是 2。)
我更改并测试了 中的所有选项Tools > Options > Text Editor > Basic > Tabs,但这些选项都没有关闭断线。即使禁用漂亮的聆听也不起作用。
如何关闭此功能?
假设我有一个这样的评论块:
/**
 * comment
 * comment
 * comment
 */
当我在这个块中打开一个新行时,我希望vim启动它
/**
 * comment
 * _
 * comment
 * comment
 */
但是标准(ubuntu)vim脚本中的autoindent开始一个空行,如下所示:
/**
 * comment
 _
 * comment
 * comment
 */
是否有一个修改过的脚本或命令会使vim这样做(我记得几年前我有这个功能,但现在不能google)?
TIA.
当然,像NetBeans一样功能强大的IDE并不是一件容易的事,但是因为我只是在输入代码,所以这就是它如何格式化它:
$(document).ready(function() {
    if (someVar > 2)
        {
            complain('that is not how you indent braces');
        }
        else if (someVar == -1)
            complain('this is not right either!');
        else
            {
                complain('but it did auto outdent the else which is smart');
                complain('smart indeed');
            }
});
我该如何解决这个问题,因此格式如下:
$(document).ready(function() {
    if (someVar > 2)
    {
        // this is how it's done
    }
    else if (someVar == -1)
        // this is right
    else
    {
        // correct
    }
});
在Emacs中编写Scala代码时,我注意到以下缩进问题:
List(1,2,3).foreach{ x =>
然后按Enter键.
然后关闭括号,这就是最终发生的事情:
List(1,2,3).foreach{ x =>
                  }
虽然这是一个特殊示例,但在Emacs中自动缩进时,此问题会以多种方式出现.
对这两个问题中的任何一个问题的答案将不胜感激:
如何解决这个问题,以便将支架放在适当的位置,并且支架内的任何东西都向右缩进一级?
是否可以禁用这种类型的自动缩进(即像vi中的'set noautoindent').我尝试了像这里建议的解决方案:在Emacs中全局禁用自动缩进而没有成功.
提前致谢!
当我复制一段代码并将其粘贴到IDE中的其他位置时,我的自定义代码缩进级别会自动由Visual Studio更改.我该如何防止这种情况?
例:

我当前的标签设置是:

我想继续使用智能缩进功能和实际制表符(而不是空格而不是空格).我只想防止这种特殊行为.
auto-indent ×10
indentation ×7
formatting ×2
tabs ×2
vim ×2
c# ×1
copy-paste ×1
emacs ×1
javascript ×1
line-breaks ×1
netbeans ×1
objective-c ×1
phpdoc ×1
sass ×1
scala ×1
swift ×1
xcode11 ×1
xcode4 ×1