2017-07-15 72 views
1

在我的自定義嗅出我加在PHP_CodeSniffer中強制使用空格縮進而不是製表符?

<rule ref="Generic.WhiteSpace.ScopeIndent"> 
    <properties> 
     <property name="indent" value="2" /> 
     <property name="tabIndent" value="false" /> 
    </properties> 
</rule> 

這對於內功能和控制結構的工作原理,但例如

function test_plugin_admin_enqueue($hook) { 
    /** 
    * Load only on ?page=test-ajax-admin.php 
    * The easiest way to find out the hook name is to go to the 
    * options page and put print_r($hook); before the conditional. 
    */ 
    if ($hook !== 'toplevel_page_test-ajax-admin') { 
    return; 
    } 

    wp_enqueue_script('test-plugin-admin-script', plugin_dir_url(__FILE__) . 'js/admin.js', array('jquery')); 
} 

return會有錯誤Tabs must be used to indent lines, spaces are not allowed

有沒有辦法檢查正確的間距,以及,而不使用製表符,但只有空格?

回答

2

如果您想使用WordPress編碼標準,但想要使用空格縮進,則需要覆蓋ScopeIndent設置(如您所做的那樣),排除對空格縮進提供一攬子禁止的嗅探,以及包括提供全面禁止選項卡縮進的嗅探。

此規則集可能是你想要什麼:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
    <description>WordPress with space indent.</description> 
     <rule ref="WordPress"> 
      <exclude name="Generic.WhiteSpace.DisallowSpaceIndent" /> 
     </rule> 
     <rule ref="Generic.WhiteSpace.ScopeIndent"> 
      <properties> 
       <property name="indent" value="2"/> 
       <property name="tabIndent" value="false"/> 
      </properties> 
     </rule> 
     <rule ref="Generic.WhiteSpace.DisallowTabIndent" /> 
</ruleset> 

如果任何人想要做類似的事情,但使用4空間縮進,只是在規則集中更改24,它的工作方式將你想。

如果您實際上沒有包含整個WordPress標準(可能只是WordPress-Core),請相應地更改WordPress參考。

+0

完美!我嘗試着用'DisallowSpaceIndent'和'DisallowTabIndent'來擺弄,但我無法讓它正常工作。謝謝! –

相關問題