Skip to content

Question: indentNextLinePattern in tmPreferences #811

Open
@keith-hall

Description

@keith-hall

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.)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions