Packages icon indicating copy to clipboard operation
Packages copied to clipboard

Question: indentNextLinePattern in tmPreferences

Open keith-hall opened this issue 8 years ago • 1 comments

Performing a search on this repo finds that there are 5 tmPreferences files which specify the key "indentNextLinePattern". However, recent research has revealed that this key is not used by ST, and "bracketIndentNextLinePattern" should be used instead.

Searching 164 files for "<key>indentNextLinePattern</key>" (regex)

Packages\C#\Indentation.tmPreferences:
  17       |   ^ \s* \{ \} $
  18       </string>
  19:      <key>indentNextLinePattern</key>
  20       <string>(?x)^
  21       (?! .* [;:{}]                   # do not indent when line ends with ;, :, {, or }

Packages\Go\Indentation Rules.tmPreferences:
  41       </string>
  42       <!--
  43:      <key>indentNextLinePattern</key>
  44       <string>(?x)^
  45       (?! .* [;:{}]                    # do not indent when line ends with ;, :, {, or }

Packages\OCaml\Indent rules.tmPreferences:
  12       <key>increaseIndentPattern</key>
  13       <string><![CDATA[^.*(\([^)"\n]*|begin)$|\bobject\s*$|\blet [a-zA-Z0-9_-]+( [^ ]+)+ =\s*$|method[ \t]+.*=[ \t]*$|->[ \t]*$|\b(for|while)[ \t]+.*[ \t]+do[ \t]*$|(\btry$|\bif\s+.*\sthen$|\belse|[:=]\s*sig|=\s*struct)\s*$]]></string>
  14:      <key>indentNextLinePattern</key>
  15       <string>(?!\bif.*then.*(else.*|(;|[ \t]in)[ \t]*$))\bif|\bthen[ \t]*$|\belse[ \t]*$$</string>
  16   </dict>

Packages\PHP\Indentation Rules.tmPreferences:
  10       <key>decreaseIndentPattern</key>
  11       <string><![CDATA[(?x) ^ (.*\*/)? \s* \} .* $|<\?(php)?\s+(else(if)?|end(if|for(each)?|while))]]></string>
  12:      <key>indentNextLinePattern</key>
  13       <string><![CDATA[^(?!.*(#|//|\*/|<\?))(?!.*[};:]\s*(//|/\*.*\*/\s*$)).*[^\s;:{}]\s*$|<\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1)]]></string>
  14  

Packages\ShellScript\Miscellaneous.tmPreferences:
  12       <key>increaseIndentPattern</key>
  13       <string>^\s*(if|elif|else|case)\b|^.*(\{|\b(do)\b)$</string>
  14:      <key>indentNextLinePattern</key>
  15       <string>^.*[^\\]\\$</string>
  16   </dict>

5 matches across 5 files

Therefore, the question is, should we rename these keys for these 5 files to get this functionality working? Or will it be an unexpected and undesired change for users? (If we will correct the naming, probably we should also check that the regex patterns are still valid/useful.)

keith-hall avatar Feb 19 '17 16:02 keith-hall