编程语言
首页 > 编程语言> > PHP文件的不正确的sublime缩进

PHP文件的不正确的sublime缩进

作者:互联网

我一直在使用自定义快捷方式缩进在这篇文章Indent multiple lines in Sublime Text中引用的Sublime Text

但如果有奇数个空格,它就不起作用.就像我的标签大小设置为2个空格,并且当任何行的开头有3个空格时,它不会缩进剩余的代码.

例如:

<?php

function test_indent() {
  if (condition) {
   echo "here";
  }
   else {
    echo "else";
   }
}

当我用上面帖子中指定的自定义快捷方式缩进时,它是:

{ "keys": ["ctrl+shift+f"], "command": "reindent", "args": {"single_line": false} }

对我来说,结果如下:

function test_indent() {
  if (condition) {
   echo "here";
 }
 else {
  echo "else";
}
}

我需要做什么才能使其缩进?

解决方法:

在玩弄这个时,我发现如果你首先完全取消选择,那么reindent将按预期工作.似乎当缩进不是设置的“制表符大小”的倍数时,会发生reindent命令中的错误.

因此,我们可以通过将您的快捷方式更改为完全取消选择然后再次重新缩进来解决此错误.

从“工具”菜单中,选择“开发人员” – >新插件……

选择所有内容并将其替换为以下内容:

import sublime
import sublime_plugin
import re

class UnindentAndReindentCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        while any([sel for sel in self.view.sel() if re.search('^[ \t]+', self.view.substr(sel.cover(self.view.line(sel.begin()))), re.MULTILINE)]):
            self.view.run_command('unindent')
        self.view.run_command('reindent', { 'single_line': False })

保存它,在ST建议的位置,像fix_reindent.py这样的东西 – 文件扩展名很重要,但基本名称不是.

然后,更改您的键绑定以使用我们刚刚创建的新unindent_and_reindent命令:

{ "keys": ["ctrl+shift+f"], "command": "unindent_and_reindent" }

现在它将正确地重新启动您的代码.

标签:php,editor,indentation,sublimetext2,sublimetext3
来源: https://codeday.me/bug/20190522/1154454.html