summaryrefslogtreecommitdiff
path: root/support/latexindent/LatexIndent
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-12-15 03:01:18 +0000
committerNorbert Preining <norbert@preining.info>2021-12-15 03:01:18 +0000
commit0efaa39c6d0b17b58df9a68ae1319ea20aaabc28 (patch)
tree677b276738cd1c52e8778f985da1705c64a4b729 /support/latexindent/LatexIndent
parent829614e28f2055883ff74da11eb4e5e57d199be3 (diff)
CTAN sync 202112150301
Diffstat (limited to 'support/latexindent/LatexIndent')
-rw-r--r--support/latexindent/LatexIndent/Document.pm6
-rw-r--r--support/latexindent/LatexIndent/Environment.pm8
-rw-r--r--support/latexindent/LatexIndent/GetYamlSettings.pm1
-rw-r--r--support/latexindent/LatexIndent/Item.pm8
-rw-r--r--support/latexindent/LatexIndent/MandatoryArgument.pm8
-rw-r--r--support/latexindent/LatexIndent/OptionalArgument.pm8
-rw-r--r--support/latexindent/LatexIndent/Special.pm8
-rw-r--r--support/latexindent/LatexIndent/Version.pm4
8 files changed, 43 insertions, 8 deletions
diff --git a/support/latexindent/LatexIndent/Document.pm b/support/latexindent/LatexIndent/Document.pm
index c989b20152..5be5084729 100644
--- a/support/latexindent/LatexIndent/Document.pm
+++ b/support/latexindent/LatexIndent/Document.pm
@@ -247,15 +247,15 @@ sub find_objects{
}
# search for environments
- $logger->trace('looking for ENVIRONMENTS') if $is_t_switch_active;
+ $logger->trace('*looking for ENVIRONMENTS') if $is_t_switch_active;
$self->find_environments if ${$self}{body} =~ m/$environmentBasicRegExp/s;
# search for ifElseFi blocks
- $logger->trace('looking for IFELSEFI') if $is_t_switch_active;
+ $logger->trace('*looking for IFELSEFI') if $is_t_switch_active;
$self->find_ifelsefi if ${$self}{body} =~ m/$ifElseFiBasicRegExp/s;
# search for headings (part, chapter, section, setc)
- $logger->trace('looking for HEADINGS (chapter, section, part, etc)') if $is_t_switch_active;
+ $logger->trace('*looking for HEADINGS (chapter, section, part, etc)') if $is_t_switch_active;
$self->find_heading if ${$self}{body} =~ m/$allHeadingsRegexp/s;
# the ordering of finding commands and special code blocks can change
diff --git a/support/latexindent/LatexIndent/Environment.pm b/support/latexindent/LatexIndent/Environment.pm
index 12c8d6e191..0f51dfec56 100644
--- a/support/latexindent/LatexIndent/Environment.pm
+++ b/support/latexindent/LatexIndent/Environment.pm
@@ -109,6 +109,14 @@ sub tasks_particular_to_each_object{
${${$self}{linebreaksAtEnd}}{body} = 1;
}
+ # lookForAlignDelims: lookForChildCodeBlocks set to 0 means no child objects searched for
+ # see: test-cases/alignment/issue-308.tex
+ #
+ if( defined ${$self}{lookForChildCodeBlocks} and !${$self}{lookForChildCodeBlocks} ){
+ $logger->trace("lookForAlignDelims: lookForChildCodeBlocks set to 0, so child objects will *NOT* be searched for") if($is_t_switch_active);
+ return;
+ }
+
# search for items as the first order of business
$self->find_items if ${$mainSettings{indentAfterItems}}{${$self}{name}};
diff --git a/support/latexindent/LatexIndent/GetYamlSettings.pm b/support/latexindent/LatexIndent/GetYamlSettings.pm
index 113106e88e..bb88a5a8b1 100644
--- a/support/latexindent/LatexIndent/GetYamlSettings.pm
+++ b/support/latexindent/LatexIndent/GetYamlSettings.pm
@@ -49,6 +49,7 @@ our @alignAtAmpersandInformation = ( {name=>"lookForAlignDelims",yamlname=>"de
{name=>"delimiterRegEx",default=>"(?<!\\\\)(&)"},
{name=>"delimiterJustification",default=>"left"},
{name=>"leadingBlankColumn",default=>-1},
+ {name=>"lookForChildCodeBlocks",default=>1},
);
sub yaml_read_settings{
diff --git a/support/latexindent/LatexIndent/Item.pm b/support/latexindent/LatexIndent/Item.pm
index 4e10401ae1..d9b191d62f 100644
--- a/support/latexindent/LatexIndent/Item.pm
+++ b/support/latexindent/LatexIndent/Item.pm
@@ -43,17 +43,19 @@ sub construct_list_of_items{
# detail items in the log
$logger->trace("*List of items: $listOfItems (see itemNames)") if $is_t_switch_active;
+ my $itemCanBeFollowedBy = qr/${${$mainSettings{fineTuning}}{items}}{canBeFollowedBy}/;
+
$itemRegExp = qr/
(
- \\((?:$listOfItems)(?:\[[^]]*?\])?(?!\S))
+ \\((?:$listOfItems)(?:$itemCanBeFollowedBy)?(?!\S))
\h*
(\R*)?
)
(
(?: # cluster-only (), don't capture
(?!
- (?:\\(?:(?:$listOfItems)(?:\[[^]]*?\])?(?!\S))) # cluster-only (), don't capture
- ). # any character, but not \\$item
+ (?:\\(?:(?:$listOfItems)(?:$itemCanBeFollowedBy)?(?!\S))) # cluster-only (), don't capture
+ ). # any character, but not \\$item
)*
)
(\R)?
diff --git a/support/latexindent/LatexIndent/MandatoryArgument.pm b/support/latexindent/LatexIndent/MandatoryArgument.pm
index b5b3ac8de6..a7b4e2088a 100644
--- a/support/latexindent/LatexIndent/MandatoryArgument.pm
+++ b/support/latexindent/LatexIndent/MandatoryArgument.pm
@@ -122,6 +122,14 @@ sub yaml_get_object_attribute_for_indentation_settings{
sub tasks_particular_to_each_object{
my $self = shift;
+ # lookForAlignDelims: lookForChildCodeBlocks set to 0 means no child objects searched for
+ # see: test-cases/alignment/issue-308-command.tex
+ #
+ if( defined ${$self}{lookForChildCodeBlocks} and !${$self}{lookForChildCodeBlocks} ){
+ $logger->trace("lookForAlignDelims: lookForChildCodeBlocks set to 0, so child objects will *NOT* be searched for") if($is_t_switch_active);
+ return;
+ }
+
# search for ifElseFi blocks
$self->find_ifelsefi if ${$self}{body} =~ m/$ifElseFiBasicRegExp/s;
diff --git a/support/latexindent/LatexIndent/OptionalArgument.pm b/support/latexindent/LatexIndent/OptionalArgument.pm
index fdaa549a7a..31e7b8f51e 100644
--- a/support/latexindent/LatexIndent/OptionalArgument.pm
+++ b/support/latexindent/LatexIndent/OptionalArgument.pm
@@ -107,6 +107,14 @@ sub create_unique_id{
sub tasks_particular_to_each_object{
my $self = shift;
+ # lookForAlignDelims: lookForChildCodeBlocks set to 0 means no child objects searched for
+ # see: test-cases/alignment/issue-308-command.tex
+ #
+ if( defined ${$self}{lookForChildCodeBlocks} and !${$self}{lookForChildCodeBlocks} ){
+ $logger->trace("lookForAlignDelims: lookForChildCodeBlocks set to 0, so child objects will *NOT* be searched for") if($is_t_switch_active);
+ return;
+ }
+
# search for ifElseFi blocks
$self->find_ifelsefi if ${$self}{body} =~ m/$ifElseFiBasicRegExp/s;
diff --git a/support/latexindent/LatexIndent/Special.pm b/support/latexindent/LatexIndent/Special.pm
index 4b585f42ae..8d7346324d 100644
--- a/support/latexindent/LatexIndent/Special.pm
+++ b/support/latexindent/LatexIndent/Special.pm
@@ -238,6 +238,14 @@ sub tasks_particular_to_each_object{
return unless(${$mainSettings{specialBeginEnd}}{specialBeforeCommand});
+ # lookForAlignDelims: lookForChildCodeBlocks set to 0 means no child objects searched for
+ # see: test-cases/alignment/issue-308-special.tex
+ #
+ if( defined ${$self}{lookForChildCodeBlocks} and !${$self}{lookForChildCodeBlocks} ){
+ $logger->trace("lookForAlignDelims: lookForChildCodeBlocks set to 0, so child objects will *NOT* be searched for") if($is_t_switch_active);
+ return;
+ }
+
# search for commands with arguments
$self->find_commands_or_key_equals_values_braces;
diff --git a/support/latexindent/LatexIndent/Version.pm b/support/latexindent/LatexIndent/Version.pm
index 4d320379f9..8d774311c6 100644
--- a/support/latexindent/LatexIndent/Version.pm
+++ b/support/latexindent/LatexIndent/Version.pm
@@ -19,6 +19,6 @@ use warnings;
use Exporter qw/import/;
our @EXPORT_OK = qw/$versionNumber $versionDate/;
-our $versionNumber = '3.13.2';
-our $versionDate = '2021-11-15';
+our $versionNumber = '3.13.3';
+our $versionDate = '2021-12-13';
1