[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/schema","$id":"latexindent-yaml-schema.json","title":"latexindent.pl YAML schema","description":"latexindent.pl YAML schema helper, V3.24.5 2025-03-13","type":"object","properties":{"fileExtensionPreference":{"description":"calling latexindent.pl to operate on myfile (without extension) is fine, and in which case the file extensions from this field will be used in order","type":"object","patternProperties":{".*":{"description":"integer specifying the order in which latexindent.pl will search for myfile ending with this extension","type":"integer"}}},"backupExtension":{"description":"when the -w, --overwrite switch is active, a back-up file is created with this extension","type":"string"},"onlyOneBackUp":{"description":"when the -w, --overwrite switch is active, the default is to create a back-up file for each call to latexindent.pl. Changing onlyOneBackUp to 1 means that only one back-up file is created","type":"integer","enum":[0,1]},"maxNumberOfBackUps":{"description":"when the -w, --overwrite switch is active, the default is to create a back-up file for each call to latexindent.pl. This field sets the maximum number of back-up files","type":"integer","minimum":0},"cycleThroughBackUps":{"description":"when the -w, --overwrite switch is active, back-up files can be overwritten in order; see also maxNumberOfBackUps","type":"integer","enum":[0,1]},"logFilePreferences":{"description":"latexindent.pl will write logging information to indent.log; the appearance of some of the information can be customised","type":"object","properties":{"showEveryYamlRead":{"description":"0/1, binary switch to show every YAML file's settings in indent.log","type":"integer","enum":[0,1]},"showAmalgamatedSettings":{"description":"0/1, binary switch to show the overall/amalgamated settings in indent.log","type":"integer","enum":[0,1]},"showDecorationStartCodeBlockTrace":{"description":"0/1, binary switch to show decorations at *start* of code block in indent.log when -t, -tt switches active","type":"integer","enum":[0,1]},"showDecorationFinishCodeBlockTrace":{"description":"0/1, binary switch to show decorations at *finish* of code block in indent.log when -t, -tt switches active","type":"integer","enum":[0,1]},"endLogFileWith":{"description":"string decoration to finish indent.log","type":"string"},"showGitHubInfoFooter":{"description":"0/1, binary switch to show GitHub information in footer of indent.log","type":"integer","enum":[0,1]},"Dumper":{"description":"options to be passed to the Dumper module; most helpful when -t, -tt active.","type":"object","properties":{"Terse":{"type":"integer","enum":[0,1]},"Indent":{"type":"integer","enum":[0,1]},"Useqq":{"type":"integer","enum":[0,1]},"Deparse":{"type":"integer","enum":[0,1]},"Quotekeys":{"type":"integer","enum":[0,1]},"Sortkeys":{"type":"integer","enum":[0,1]},"Pair":{"type":"string"}}}}},"verbatimEnvironments":{"description":"specify the names of verbatim environments in this field","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to mean don't look for/look for this *environment*","type":"integer","enum":[0,1]}}},"verbatimCommands":{"description":"specify the names of verbatim *commands* in this field","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to mean don't look for/look for this *command*","type":"integer","enum":[0,1]}}},"noIndentBlock":{"description":"specify the names of *noIndentBlock* in this field","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to mean don't look for/look for this *noIndentBlock*","type":"integer","enum":[0,1]}}},"fileContentsEnvironments":{"description":"specify the names of *filecontents* in this field","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to mean don't look for/look for this *filecontents* environment","type":"integer","enum":[0,1]}}},"indentPreamble":{"description":"0/1, binary switch to instruct latexindent.pl to operate on preamble or not","type":"integer","enum":[0,1]},"lookForPreamble":{"description":"list of extensions detailing which files latexindent.pl should look for preamble","type":"object","patternProperties":{".*":{"description":"0/1, binary switch for preamble search for this file type","type":"integer","enum":[0,1]}}},"preambleCommandsBeforeEnvironments":{"description":"0/1, binary switch to instruct latexindent.pl to search for commands before environments in preamble","type":"integer","enum":[0,1]},"defaultIndent":{"description":"default indentation, needs to be specified as horizontal space","type":"string"},"removeTrailingWhitespace":{"description":"remove horizontal space at the *end* of lines","type":"object","properties":{"beforeProcessing":{"description":"0/1, binary switch to remove horizontal space *before* indenting","type":"integer","enum":[0,1]},"afterProcessing":{"description":"0/1, binary switch to remove horizontal space *after* indenting","type":"integer","enum":[0,1]}}},"lookForAlignDelims":{"description":"list of names of code blocks detailing that latexindent.pl should align at delimiters","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to detail if this code block has delimiters. Option to specify this field in 'advanced' form","type":["integer","object"],"properties":{"delims":{"description":"0/1, binary switch to look for delimiters","type":"integer","enum":[0,1]},"alignDoubleBackSlash":{"description":"0/1, binary switch to align the \\\\","type":"integer","enum":[0,1]},"spacesBeforeDoubleBackSlash":{"description":"integer detailing number of spaces *before* \\\\","type":"integer","minimum":0},"multiColumnGrouping":{"description":"0/1, binary switch to group alignment under \\multicolumn command","type":"integer","enum":[0,1]},"alignRowsWithoutMaxDelims":{"description":"0/1, binary switch to align rows without the maximum number of delimiters","type":"integer","enum":[0,1]},"spacesBeforeAmpersand":{"description":"integer detailing number of spaces *before* delimiter","type":"integer","minimum":0},"spacesAfterAmpersand":{"description":"integer detailing number of spaces *after* delimiter","type":"integer","minimum":0},"justification":{"description":"justification of cell","type":"string","enum":["left","right"]},"alignFinalDoubleBackSlash":{"description":"0/1, binary switch to align final \\\\","type":"integer","enum":[0,1]},"dontMeasure":{"description":"entries not to be measured in the alignment routine; can also be set to 'largest'","type":["integer","string","array"],"items":{"description":"entry not to be measured","type":["string","object"],"properties":{"this":{"type":"string","description":"string containing the cell *not* to be measured"},"applyTo":{"type":"string","enum":["cell","row"],"description":"detail cell or row"},"regex":{"type":"string","description":"regular expression to match cell or row"}}}},"delimiterRegEx":{"description":"delimiter regex. NOTE: the capturing ()","type":"string"},"delimiterJustification":{"description":"delimiter justification","type":"string","enum":["left","right"]},"lookForChildCodeBlocks":{"description":"0/1, binary switch to look for child code blocks","type":"integer","enum":[0,1]},"alignContentAfterDoubleBackSlash":{"description":"0/1, binary switch to align content after \\\\","type":"integer","enum":[0,1]},"spacesAfterDoubleBackSlash":{"description":"integer detailing number of spaces to be placed *after* \\\\ when alignContentAfterDoubleBackSlash is active","type":"integer","minimum":0}}}}},"indentAfterItems":{"description":"specify the names of environments that contain items","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to mean don't look for/look for items in this environment","type":"integer","enum":[0,1]}}},"itemNames":{"description":"names of items","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to mean don't look for/look for items","type":"integer","enum":[0,1]}}},"specialBeginEnd":{"description":"special code blocks have begin, end, and optionally 'middle' specified as regular expressions","type":"object","properties":{"specialBeforeCommand":{"description":"0/1, binary switch to look for commands before special code blocks","type":"integer","enum":[0,1]}},"patternProperties":{"^(?!specialBeforeCommand$).*":{"description":"name of special code block","type":"object","properties":{"begin":{"type":"string","description":"regular expression containing the *beginning* part"},"middle":{"type":["string","array"],"description":"optional: one or more regular expressions for the *middle* part","items":{"description":"regular expression for the *middle* part","type":"string"}},"end":{"type":"string","description":"regular expression containing the *ending* part"},"body":{"type":"string","description":"optional: regular expression containing the body of the block"},"lookForThis":{"type":"integer","description":"optional: 0/1, binary switch detailing look for this or not. Default is 1 if not specified","enum":[0,1]}}}}},"indentAfterHeadings":{"description":"indentation after headings","type":"object","patternProperties":{".*":{"description":"name of heading","type":"object","properties":{"indentAfterThisHeading":{"type":"integer","description":"0/1, binary switch to look for heading or not","enum":[0,1]},"level":{"type":"integer","description":"level of the heading (minimum is 1)","minimum":1}}}}},"maximumIndentation":{"description":"maximum value of indentation; specify as horizontal space","type":["string","integer"]},"noAdditionalIndent":{"description":"names of code blocks to not have additional indentation","type":"object","patternProperties":{".*":{"description":"0/1, binary switch to mean code block does not have/has additional indentation","type":"integer","enum":[0,1]}}},"indentRules":{"description":"per-code block indentation rule","type":"object","patternProperties":{".*":{"description":"indentation/horizontal space per-code block","type":"string"}}},"noAdditionalIndentGlobal":{"description":"*types* of code blocks to not have additional indentation","type":"object","properties":{"environments":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"commands":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"optionalArguments":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"mandatoryArguments":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"ifElseFi":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"items":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"keyEqualsValuesBracesBrackets":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"namedGroupingBracesBrackets":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"UnNamedGroupingBracesBrackets":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"specialBeginEnd":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"afterHeading":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]},"filecontents":{"description":"0/1, binary switch to mean *type* of code block does not have/has additional indentation","type":"integer","enum":[0,1]}}},"indentRulesGlobal":{"description":"*types* of code blocks indentation rules","type":"object","properties":{"environments":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"commands":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"optionalArguments":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"mandatoryArguments":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"ifElseFi":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"items":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"keyEqualsValuesBracesBrackets":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"namedGroupingBracesBrackets":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"UnNamedGroupingBracesBrackets":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"specialBeginEnd":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"afterHeading":{"description":"indentation rules per *type* of code block","type":["integer","string"]},"filecontents":{"description":"indentation rules per *type* of code block","type":["integer","string"]}}},"commandCodeBlocks":{"description":"command code blocks need some particular attention","type":"object","properties":{"roundParenthesesAllowed":{"description":"0/1, binary switch to not allow/allow round parenthesis () between arguments","type":"integer","enum":[0,1]},"stringsAllowedBetweenArguments":{"description":"strings allowed between arguments","type":["integer","array"],"items":{"description":"entry to be allowed between arguments","type":["string","object"],"properties":{"amalgamate":{"description":"optional: 0/1, binary switch to add to/overwrite previously loaded items. Default is 1 if not specified","type":"integer","enum":[0,1]}}}},"commandNameSpecial":{"description":"there are some particular commands that need individual attention","type":["integer","array"],"items":{"description":"entry for particular attention","type":["string","object"],"properties":{"amalgamate":{"description":"optional: 0/1, binary switch to add to/overwrite previously loaded items. Default is 1 if not specified","type":"integer","enum":[0,1]}}}}}},"dos2unixlinebreaks":{"description":"0/1, binary switch to convert dos line breaks to unix line breaks","type":"integer","enum":[0,1]},"modifyLineBreaks":{"description":"when -m switch active, latexindent.pl has ability to modify line breaks","type":"object","properties":{"preserveBlankLines":{"description":"0/1, binary switch to preserve blank lines or not","type":"integer","enum":[0,1]},"condenseMultipleBlankLinesInto":{"description":"condense multiple blank lines into this many blank lines","type":"integer","minimum":0},"oneSentencePerLine":{"properties":{"manipulateSentences":{"description":"0/1, binary switch to perform one sentence per line routine or not","type":"integer","enum":[0,1]},"removeSentenceLineBreaks":{"description":"0/1, binary switch to remove line breaks from within sentences or not","type":"integer","enum":[0,1]},"multipleSpacesToSingle":{"description":"0/1, binary switch to convert multiple spaces into single spaces or not","type":"integer","enum":[0,1]},"textWrapSentences":{"description":"0/1, binary switch to text wrap sentences or not","type":"integer","enum":[0,1]},"sentenceIndent":{"description":"horizontal space representing indentation within sentences","type":"string"},"sentencesFollow":{"description":"things that sentences can follow","properties":{"par":{"description":"0/1, binary switch to determine if sentences can follow \\par or not","type":"integer","enum":[0,1]},"blankLine":{"description":"0/1, binary switch to determine if sentences can follow blank lines or not","type":"integer","enum":[0,1]},"fullStop":{"description":"0/1, binary switch to determine if sentences can follow blank lines or not","type":"integer","enum":[0,1]},"exclamationMark":{"description":"0/1, binary switch to determine if sentences can follow ! or not","type":"integer","enum":[0,1]},"questionMark":{"description":"0/1, binary switch to determine if sentences can follow ? or not","type":"integer","enum":[0,1]},"rightBrace":{"description":"0/1, binary switch to determine if sentences can follow } or not","type":"integer","enum":[0,1]},"commentOnPreviousLine":{"description":"0/1, binary switch to determine if sentences can follow % on previous line or not","type":"integer","enum":[0,1]},"other":{"description":"regular expression detailing what else sentences can follow","type":["integer","string"]}}},"sentencesBeginWith":{"description":"things that sentences can begin with","properties":{"A-Z":{"description":"0/1, binary switch to determine if sentences can begin upper case letters or not","type":"integer","enum":[0,1]},"a-z":{"description":"0/1, binary switch to determine if sentences can begin lower case letters or not","type":"integer","enum":[0,1]},"other":{"description":"regular expression detailing what else sentences can begin with","type":["integer","string"]}}},"sentencesEndWith":{"description":"things that sentences can end with","properties":{"basicFullStop":{"description":"0/1, binary switch to determine if sentences can end with basic full stop (period) or not","type":"integer","enum":[0,1]},"betterFullStop":{"description":"0/1, binary switch to determine if sentences can end with better full stop (period) or not (RECOMMENDED)","type":"integer","enum":[0,1]},"exclamationMark":{"description":"0/1, binary switch to determine if sentences can end with ! or not","type":"integer","enum":[0,1]},"questionMark":{"description":"0/1, binary switch to determine if sentences can end with ? or not","type":"integer","enum":[0,1]},"other":{"description":"regular expression detailing what else sentences can end with","type":["integer","string"]}}},"sentencesDoNOTcontain":{"description":"things that sentences cannot contain","properties":{"other":{"description":"regular expression detailing what sentences cannot contain. Can be turned off by setting 0","type":["integer","string"]}}}}},"textWrapOptions":{"description":"options for the text wrap routine","type":"object","properties":{"columns":{"description":"integer > 0 sets the number of columns for the text wrap routine, or if -1 then text wrap blocks simply have line breaks removed","type":"integer","minimum":-1},"multipleSpacesToSingle":{"description":"0/1, binary switch to determine whether text wrap should convert multiple spaces to single space","type":"integer","enum":[0,1]},"removeBlockLineBreaks":{"description":"0/1, binary switch to determine whether text wrap should convert multiple spaces to single space","type":"integer","enum":[0,1]},"when":{"description":"optional: string specifying whether text wrapping should be made before/after code blocks have been found. Default is 'before' if not specified","type":"string","enum":["before","after"]},"comments":{"description":"instructions for wrapping comments","type":"object","properties":{"wrap":{"description":"0/1, binary switch to determine whether comments should be combined and wrapped","type":"integer","enum":[0,1]},"inheritLeadingSpace":{"description":"0/1, binary switch to determine whether comments should inherit leading spaces","type":"integer","enum":[0,1]}}},"blocksFollow":{"description":"field containing switches that text wrap blocks *follow*","type":"object","properties":{"headings":{"description":"0/1, binary switch to instruct latexindent to find text wrap blocks after the fields listed in indentAfterHeading (regardless of the value of indentAfterThisHeading or level) or not. The heading command can, optionally, be followed by a label command","type":"integer","enum":[0,1]},"commentOnPreviousLine":{"description":"0/1, binary switch to instruct latexindent to find text wrap blocks after a comment on its own line or not","type":"integer","enum":[0,1]},"par":{"description":"0/1, binary switch to instruct latexindent to find text wrap blocks after \\par or not","type":"integer","enum":[0,1]},"blankLine":{"description":"0/1, binary switch to instruct latexindent to find text wrap blocks after a blank line or not","type":"integer","enum":[0,1]},"verbatim":{"description":"0/1, binary switch to instruct latexindent to find text wrap blocks after a verbatim block or not","type":"integer","enum":[0,1]},"filecontents":{"description":"0/1, binary switch to instruct latexindent to find text wrap blocks after a filecontents environment or not","type":"integer","enum":[0,1]},"other":{"description":"regular expression detailing what text wrap blocks should follow. Can be turned off by setting 0. The default value corresponds to the end of display math or an item command","type":"string"}}},"blocksBeginWith":{"description":"field containing switches that text wrap blocks *begin with*","type":"object","properties":{"A-Z":{"description":"0/1, binary switch to determine whether text wrap block can begin with an uppercase letter or not","type":"integer","enum":[0,1]},"a-z":{"description":"0/1, binary switch to determine whether text wrap block can begin with a lowercase letter or not","type":"integer","enum":[0,1]},"0-9":{"description":"0/1, binary switch to determine whether text wrap block can begin with a digit or not","type":"integer","enum":[0,1]},"other":{"description":"regular expression detailing what text wrap blocks can begin with. Can be turned off by setting 0. Default is 0 if not specified","type":["integer","string"]}}},"blocksEndBefore":{"description":"field containing switches that text wrap blocks *end before*","type":"object","properties":{"commentOnOwnLine":{"description":"0/1, binary switch to determine whether text wrap block should end before a comment on its own line or not","type":"integer","enum":[0,1]},"verbatim":{"description":"0/1, binary switch to determine whether text wrap block should end before a verbatim environment or not","type":"integer","enum":[0,1]},"filecontents":{"description":"0/1, binary switch to determine whether text wrap block should end before a filecontents environment or not","type":"integer","enum":[0,1]},"other":{"description":"regular expression detailing what text wrap blocks should end before. Can be turned off by setting 0. The default value corresponds to begin statements, display math, and end statements","type":"string"}}},"huge":{"description":"WARNING: I don't recommend changing this from overflow; passed to Perl's Text::Wrap module","type":"string","enum":["overflow","wrap","die"]},"tabstop":{"description":"passed to Perl's Text::Wrap module","type":"integer"},"separator":{"description":"passed to Perl's Text::Wrap module","type":"string"},"separator2":{"description":"passed to Perl's Text::Wrap module","type":"string"},"break":{"description":"passed to Perl's Text::Wrap module","type":"string"},"unexpand":{"description":"passed to Perl's Text::Wrap module","type":"integer","enum":[0,1]}}},"environments":{"description":"poly-switches for environments (GLOBAL)","type":"object","properties":{"BeginStartsOnOwnLine":{"description":"poly-switch for line break before beginning of environments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"BodyStartsOnOwnLine":{"description":"poly-switch for line break before body of environments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"EndStartsOnOwnLine":{"description":"poly-switch for line break before end of environments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"EndFinishesWithLineBreak":{"description":"poly-switch for line break after end of environments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(BeginStartsOnOwnLine|BodyStartsOnOwnLine|EndStartsOnOwnLine|EndFinishesWithLineBreak)$).*":{"description":"poly-switches for environments (PER-NAME)","type":"object","properties":{"BeginStartsOnOwnLine":{"description":"poly-switch for line break before beginning of environments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"BodyStartsOnOwnLine":{"description":"poly-switch for line break before body of environments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"EndStartsOnOwnLine":{"description":"poly-switch for line break before end of environments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"EndFinishesWithLineBreak":{"description":"poly-switch for line break after end of environments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"specialBeginEnd":{"description":"poly-switches for specialBeginEnd (GLOBAL)","type":"object","properties":{"SpecialBeginStartsOnOwnLine":{"description":"poly-switch for line break before beginning of specialBeginEnd (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"SpecialBodyStartsOnOwnLine":{"description":"poly-switch for line break before body of specialBeginEnd (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"SpecialEndStartsOnOwnLine":{"description":"poly-switch for line break before end of specialBeginEnd (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"SpecialEndFinishesWithLineBreak":{"description":"poly-switch for line break after end of specialBeginEnd (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(SpecialBeginStartsOnOwnLine|SpecialBodyStartsOnOwnLine|SpecialEndStartsOnOwnLine|SpecialEndFinishesWithLineBreak)$).*":{"description":"poly-switches for specialBeginEnd (PER-NAME)","type":"object","properties":{"SpecialBeginStartsOnOwnLine":{"description":"poly-switch for line break before beginning of specialBeginEnd (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"SpecialBodyStartsOnOwnLine":{"description":"poly-switch for line break before body of specialBeginEnd (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"SpecialEndStartsOnOwnLine":{"description":"poly-switch for line break before end of specialBeginEnd (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"SpecialEndFinishesWithLineBreak":{"description":"poly-switch for line break after end of specialBeginEnd (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"keyEqualsValuesBracesBrackets":{"description":"poly-switches for key equals value (GLOBAL)","type":"object","properties":{"KeyStartsOnOwnLine":{"description":"poly-switch for line break before beginning of key equals value (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"EqualsStartsOnOwnLine":{"description":"poly-switch for line break before = of key equals value (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"EqualsFinishesWithLineBreak":{"description":"poly-switch for line break after = of key equals value (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(KeyStartsOnOwnLine|EqualsStartsOnOwnLine|EqualsFinishesWithLineBreak)$).*":{"description":"poly-switches for key equals value (PER-NAME)","type":"object","properties":{"KeyStartsOnOwnLine":{"description":"poly-switch for line break before beginning of key equals value (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"EqualsStartsOnOwnLine":{"description":"poly-switch for line break before = of key equals value (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"EqualsFinishesWithLineBreak":{"description":"poly-switch for line break after = of key equals value (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"ifElseFi":{"description":"poly-switches for ifElseFi (GLOBAL)","type":"object","properties":{"IfStartsOnOwnLine":{"description":"poly-switch for line break before beginning of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"BodyStartsOnOwnLine":{"description":"poly-switch for line break before body of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"OrStartsOnOwnLine":{"description":"poly-switch for line break before or statement of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"OrFinishesWithLineBreak":{"description":"poly-switch for line break after or statement of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"ElseStartsOnOwnLine":{"description":"poly-switch for line break before else statement of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"ElseFinishesWithLineBreak":{"description":"poly-switch for line break after else statement of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"FiStartsOnOwnLine":{"description":"poly-switch for line break before end of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"FiFinishesWithLineBreak":{"description":"poly-switch for line break after end of ifElseFi (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(IfStartsOnOwnLine|BodyStartsOnOwnLine|OrStartsOnOwnLine|OrFinishesWithLineBreak|ElseStartsOnOwnLine|ElseFinishesWithLineBreak|FiStartsOnOwnLine|FiFinishesWithLineBreak)$).*":{"description":"poly-switches for ifElseFi (PER-NAME)","type":"object","properties":{"IfStartsOnOwnLine":{"description":"poly-switch for line break before beginning of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"BodyStartsOnOwnLine":{"description":"poly-switch for line break before body of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"OrStartsOnOwnLine":{"description":"poly-switch for line break before or statement of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"OrFinishesWithLineBreak":{"description":"poly-switch for line break after or statement of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"ElseStartsOnOwnLine":{"description":"poly-switch for line break before else statement of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"ElseFinishesWithLineBreak":{"description":"poly-switch for line break after else statement of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"FiStartsOnOwnLine":{"description":"poly-switch for line break before end of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"FiFinishesWithLineBreak":{"description":"poly-switch for line break after end of ifElseFi (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"commands":{"description":"poly-switches for commands (GLOBAL)","type":"object","properties":{"CommandStartsOnOwnLine":{"description":"poly-switch for line break before beginning of commands (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"CommandNameFinishesWithLineBreak":{"description":"poly-switch for line break after end of commands (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(CommandStartsOnOwnLine|CommandNameFinishesWithLineBreak)$).*":{"description":"poly-switches for commands (PER-NAME)","type":"object","properties":{"CommandStartsOnOwnLine":{"description":"poly-switch for line break before beginning of commands (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"CommandNameFinishesWithLineBreak":{"description":"poly-switch for line break after end of commands (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"verbatim":{"description":"poly-switches for verbatim (GLOBAL)","type":"object","properties":{"VerbatimBeginStartsOnOwnLine":{"description":"poly-switch for line break before beginning of verbatim (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"VerbatimEndFinishesWithLineBreak":{"description":"poly-switch for line break after end of verbatim (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(VerbatimBeginStartsOnOwnLine|VerbatimEndFinishesWithLineBreak)$).*":{"description":"poly-switches for verbatim (PER-NAME)","type":"object","properties":{"VerbatimBeginStartsOnOwnLine":{"description":"poly-switch for line break before beginning of verbatim (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"VerbatimEndFinishesWithLineBreak":{"description":"poly-switch for line break after end of verbatim (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"namedGroupingBracesBrackets":{"description":"poly-switches for namedGroupingBracesBrackets (GLOBAL)","type":"object","properties":{"NameStartsOnOwnLine":{"description":"poly-switch for line break before beginning of namedGroupingBracesBrackets (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"NameFinishesWithLineBreak":{"description":"poly-switch for line break after end of namedGroupingBracesBrackets (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(NameStartsOnOwnLine|NameFinishesWithLineBreak)$).*":{"description":"poly-switches for commands (PER-NAME)","type":"object","properties":{"NameStartsOnOwnLine":{"description":"poly-switch for line break before beginning of namedGroupingBracesBrackets (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"NameFinishesWithLineBreak":{"description":"poly-switch for line break after end of namedGroupingBracesBrackets (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"items":{"description":"poly-switches for items (GLOBAL)","type":"object","properties":{"ItemStartsOnOwnLine":{"description":"poly-switch for line break before beginning of items (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"ItemFinishesWithLineBreak":{"description":"poly-switch for line break after end of items (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(ItemStartsOnOwnLine|ItemFinishesWithLineBreak)$).*":{"description":"poly-switches for items (PER-NAME)","type":"object","properties":{"ItemStartsOnOwnLine":{"description":"poly-switch for line break before beginning of items (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"ItemFinishesWithLineBreak":{"description":"poly-switch for line break after end of items (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"optionalArguments":{"description":"poly-switches for optional arguments (GLOBAL)","type":"object","properties":{"LSqBStartsOnOwnLine":{"description":"poly-switch for line break before beginning of optional arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"OptArgBodyStartsOnOwnLine":{"description":"poly-switch for line break before body of optional arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"RSqBStartsOnOwnLine":{"description":"poly-switch for line break before end of optional arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"RSqBFinishesWithLineBreak":{"description":"poly-switch for line break after end of optional arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(LSqBStartsOnOwnLine|OptArgBodyStartsOnOwnLine|RSqBStartsOnOwnLine|RSqBFinishesWithLineBreak)$).*":{"description":"poly-switches for optional arguments (PER-NAME)","type":"object","properties":{"LSqBStartsOnOwnLine":{"description":"poly-switch for line break before beginning of optional arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"OptArgBodyStartsOnOwnLine":{"description":"poly-switch for line break before body of optional arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"RSqBStartsOnOwnLine":{"description":"poly-switch for line break before end of optional arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"RSqBFinishesWithLineBreak":{"description":"poly-switch for line break after end of optional arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}},"mandatoryArguments":{"description":"poly-switches for mandatory arguments (GLOBAL)","type":"object","properties":{"LCuBStartsOnOwnLine":{"description":"poly-switch for line break before beginning of mandatory arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"MandArgBodyStartsOnOwnLine":{"description":"poly-switch for line break before body of mandatory arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"RCuBStartsOnOwnLine":{"description":"poly-switch for line break before end of mandatory arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]},"RCuBFinishesWithLineBreak":{"description":"poly-switch for line break after end of mandatory arguments (GLOBAL)","type":"integer","enum":[-1,0,1,2,3,4]}},"patternProperties":{"^(?!(LCuBStartsOnOwnLine|MandArgBodyStartsOnOwnLine|RCuBStartsOnOwnLine|RCuBFinishesWithLineBreak)$).*":{"description":"poly-switches for mandatory arguments (PER-NAME)","type":"object","properties":{"LCuBStartsOnOwnLine":{"description":"poly-switch for line break before beginning of mandatory arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"MandArgBodyStartsOnOwnLine":{"description":"poly-switch for line break before body of mandatory arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"RCuBStartsOnOwnLine":{"description":"poly-switch for line break before end of mandatory arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]},"RCuBFinishesWithLineBreak":{"description":"poly-switch for line break after end of mandatory arguments (PER-NAME)","type":"integer","enum":[-1,0,1,2,3,4]}}}}}}},"replacements":{"description":"replacements to be made; requires -r, -rr or -rv switch","type":"array","items":{"description":"entry for replacement","type":"object","properties":{"amalgamate":{"description":"optional: 0/1, binary switch to add to/overwrite previously loaded items. Default is 1 if not specified","type":"integer","enum":[0,1]},"this":{"description":"string to be replaced","type":"string"},"that":{"description":"string to replace with","type":"string"},"lookForThis":{"description":"optional: 0/1, binary switch detailing look for this or not. Default is 1 if not specified","type":"integer","enum":[0,1]},"when":{"description":"optional: string specifying whether replacement should be made before/after indentation. Default is 'before' if not specified","type":"string","enum":["before","after"]},"substitution":{"description":"regular expression of the form 's/regex/replacement/modifiers; works only if 'this' is blank","type":"string"}}}},"fineTuning":{"description":"fine tuning, proceed with caution!","type":"object","properties":{"environments":{"description":"fine tuning, for environments","type":"object","properties":{"name":{"description":"regular expression for environment name","type":"string"}}},"ifElseFi":{"description":"fine tuning, for ifElseFi","type":"object","properties":{"name":{"description":"regular expression for ifElseFi name","type":"string"}}},"commands":{"description":"fine tuning, for commands","type":"object","properties":{"name":{"description":"regular expression for commands name","type":"string"}}},"items":{"description":"fine tuning, for items","type":"object","properties":{"canBeFollowedBy":{"description":"regular expression for what can follow items","type":"string"}}},"keyEqualsValuesBracesBrackets":{"description":"fine tuning, for keyEqualsValuesBracesBrackets","type":"object","properties":{"name":{"description":"regular expression for key = value name","type":"string"},"follow":{"description":"regular expression for what key = values follow","type":"string"}}},"namedGroupingBracesBrackets":{"description":"fine tuning, for namedGroupingBracesBrackets","type":"object","properties":{"name":{"description":"regular expression for named grouping braces name","type":"string"},"follow":{"description":"regular expression for what named grouping braces follow","type":"string"}}},"UnNamedGroupingBracesBrackets":{"description":"fine tuning, for UnNamedGroupingBracesBrackets","type":"object","properties":{"follow":{"description":"regular expression for what UN named grouping braces follow","type":"string"}}},"arguments":{"description":"fine tuning, for arguments","type":"object","properties":{"before":{"description":"regular expression for what can come BEFORE arguments","type":"string"},"between":{"description":"regular expression for what can come BETWEEN arguments","type":"string"}}},"trailingComments":{"description":"fine tuning, for trailing comments","type":"object","properties":{"notPrecededBy":{"description":"regular expression for what can NOT come before %, for example \\%","type":"string"},"notPreceededBy":{"description":"please use notPrecededBy instead","type":"string","deprecated":true},"afterComment":{"description":"regular expression for what can come after %","type":"string"}}},"modifyLineBreaks":{"description":"fine tuning for some of the -m switch based features","type":"object","properties":{"betterFullStop":{"description":"regular expression for the 'better full stop' in the one-sentence-per-line routine","type":"string"},"doubleBackSlash":{"description":"regular expression for the double back slash used in the DBS poly-switches","type":"string"},"comma":{"description":"regular expression for the comma used in the comma-based poly-switches","type":"string"}}}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "latexindent.pl YAML schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

latexindent.pl YAML schema

latexindent.pl YAML schema helper, V3.24.5 2025-03-13

calling latexindent.pl to operate on myfile (without extension) is fine, and in which case the file extensions from this field will be used in order

integer specifying the order in which latexindent.pl will search for myfile ending with this extension

when the -w, --overwrite switch is active, a back-up file is created with this extension

when the -w, --overwrite switch is active, the default is to create a back-up file for each call to latexindent.pl. Changing onlyOneBackUp to 1 means that only one back-up file is created

when the -w, --overwrite switch is active, the default is to create a back-up file for each call to latexindent.pl. This field sets the maximum number of back-up files

when the -w, --overwrite switch is active, back-up files can be overwritten in order; see also maxNumberOfBackUps

latexindent.pl will write logging information to indent.log; the appearance of some of the information can be customised

0/1, binary switch to show every YAML file's settings in indent.log

0/1, binary switch to show the overall/amalgamated settings in indent.log

0/1, binary switch to show decorations at *start* of code block in indent.log when -t, -tt switches active

0/1, binary switch to show decorations at *finish* of code block in indent.log when -t, -tt switches active

string decoration to finish indent.log

0/1, binary switch to show GitHub information in footer of indent.log

options to be passed to the Dumper module; most helpful when -t, -tt active.

specify the names of verbatim environments in this field

0/1, binary switch to mean don't look for/look for this *environment*

specify the names of verbatim *commands* in this field

0/1, binary switch to mean don't look for/look for this *command*

specify the names of *noIndentBlock* in this field

0/1, binary switch to mean don't look for/look for this *noIndentBlock*

specify the names of *filecontents* in this field

0/1, binary switch to mean don't look for/look for this *filecontents* environment

0/1, binary switch to instruct latexindent.pl to operate on preamble or not

list of extensions detailing which files latexindent.pl should look for preamble

0/1, binary switch for preamble search for this file type

0/1, binary switch to instruct latexindent.pl to search for commands before environments in preamble

default indentation, needs to be specified as horizontal space

remove horizontal space at the *end* of lines

0/1, binary switch to remove horizontal space *before* indenting

0/1, binary switch to remove horizontal space *after* indenting

list of names of code blocks detailing that latexindent.pl should align at delimiters

0/1, binary switch to detail if this code block has delimiters. Option to specify this field in 'advanced' form

0/1, binary switch to look for delimiters

0/1, binary switch to align the \\

integer detailing number of spaces *before* \\

0/1, binary switch to group alignment under \multicolumn command

0/1, binary switch to align rows without the maximum number of delimiters

integer detailing number of spaces *before* delimiter

integer detailing number of spaces *after* delimiter

justification of cell

0/1, binary switch to align final \\

entries not to be measured in the alignment routine; can also be set to 'largest'

entry not to be measured

string containing the cell *not* to be measured

detail cell or row

regular expression to match cell or row

delimiter regex. NOTE: the capturing ()

delimiter justification

0/1, binary switch to look for child code blocks

0/1, binary switch to align content after \\

integer detailing number of spaces to be placed *after* \\ when alignContentAfterDoubleBackSlash is active

specify the names of environments that contain items

0/1, binary switch to mean don't look for/look for items in this environment

names of items

0/1, binary switch to mean don't look for/look for items

special code blocks have begin, end, and optionally 'middle' specified as regular expressions

0/1, binary switch to look for commands before special code blocks

name of special code block

regular expression containing the *beginning* part

optional: one or more regular expressions for the *middle* part

regular expression for the *middle* part

regular expression containing the *ending* part

optional: regular expression containing the body of the block

optional: 0/1, binary switch detailing look for this or not. Default is 1 if not specified

indentation after headings

name of heading

0/1, binary switch to look for heading or not

level of the heading (minimum is 1)

maximum value of indentation; specify as horizontal space

names of code blocks to not have additional indentation

0/1, binary switch to mean code block does not have/has additional indentation

per-code block indentation rule

indentation/horizontal space per-code block

*types* of code blocks to not have additional indentation

0/1, binary switch to mean *type* of code block does not have/has additional indentation

*types* of code blocks indentation rules

indentation rules per *type* of code block

command code blocks need some particular attention

0/1, binary switch to not allow/allow round parenthesis () between arguments

strings allowed between arguments

entry to be allowed between arguments

optional: 0/1, binary switch to add to/overwrite previously loaded items. Default is 1 if not specified

there are some particular commands that need individual attention

entry for particular attention

0/1, binary switch to convert dos line breaks to unix line breaks

when -m switch active, latexindent.pl has ability to modify line breaks

0/1, binary switch to preserve blank lines or not

condense multiple blank lines into this many blank lines

0/1, binary switch to perform one sentence per line routine or not

0/1, binary switch to remove line breaks from within sentences or not

0/1, binary switch to convert multiple spaces into single spaces or not

0/1, binary switch to text wrap sentences or not

horizontal space representing indentation within sentences

things that sentences can follow

0/1, binary switch to determine if sentences can follow \par or not

0/1, binary switch to determine if sentences can follow blank lines or not

0/1, binary switch to determine if sentences can follow ! or not

0/1, binary switch to determine if sentences can follow ? or not

0/1, binary switch to determine if sentences can follow } or not

0/1, binary switch to determine if sentences can follow % on previous line or not

regular expression detailing what else sentences can follow

things that sentences can begin with

0/1, binary switch to determine if sentences can begin upper case letters or not

0/1, binary switch to determine if sentences can begin lower case letters or not

regular expression detailing what else sentences can begin with

things that sentences can end with

0/1, binary switch to determine if sentences can end with basic full stop (period) or not

0/1, binary switch to determine if sentences can end with better full stop (period) or not (RECOMMENDED)

0/1, binary switch to determine if sentences can end with ! or not

0/1, binary switch to determine if sentences can end with ? or not

regular expression detailing what else sentences can end with

things that sentences cannot contain

regular expression detailing what sentences cannot contain. Can be turned off by setting 0

options for the text wrap routine

integer > 0 sets the number of columns for the text wrap routine, or if -1 then text wrap blocks simply have line breaks removed

0/1, binary switch to determine whether text wrap should convert multiple spaces to single space

optional: string specifying whether text wrapping should be made before/after code blocks have been found. Default is 'before' if not specified

instructions for wrapping comments

0/1, binary switch to determine whether comments should be combined and wrapped

0/1, binary switch to determine whether comments should inherit leading spaces

field containing switches that text wrap blocks *follow*

0/1, binary switch to instruct latexindent to find text wrap blocks after the fields listed in indentAfterHeading (regardless of the value of indentAfterThisHeading or level) or not. The heading command can, optionally, be followed by a label command

0/1, binary switch to instruct latexindent to find text wrap blocks after a comment on its own line or not

0/1, binary switch to instruct latexindent to find text wrap blocks after \par or not

0/1, binary switch to instruct latexindent to find text wrap blocks after a blank line or not

0/1, binary switch to instruct latexindent to find text wrap blocks after a verbatim block or not

0/1, binary switch to instruct latexindent to find text wrap blocks after a filecontents environment or not

regular expression detailing what text wrap blocks should follow. Can be turned off by setting 0. The default value corresponds to the end of display math or an item command

field containing switches that text wrap blocks *begin with*

0/1, binary switch to determine whether text wrap block can begin with an uppercase letter or not

0/1, binary switch to determine whether text wrap block can begin with a lowercase letter or not

0/1, binary switch to determine whether text wrap block can begin with a digit or not

regular expression detailing what text wrap blocks can begin with. Can be turned off by setting 0. Default is 0 if not specified

field containing switches that text wrap blocks *end before*

0/1, binary switch to determine whether text wrap block should end before a comment on its own line or not

0/1, binary switch to determine whether text wrap block should end before a verbatim environment or not

0/1, binary switch to determine whether text wrap block should end before a filecontents environment or not

regular expression detailing what text wrap blocks should end before. Can be turned off by setting 0. The default value corresponds to begin statements, display math, and end statements

WARNING: I don't recommend changing this from overflow; passed to Perl's Text::Wrap module

passed to Perl's Text::Wrap module

passed to Perl's Text::Wrap module

passed to Perl's Text::Wrap module

passed to Perl's Text::Wrap module

passed to Perl's Text::Wrap module

poly-switches for environments (GLOBAL)

poly-switch for line break before beginning of environments (GLOBAL)

poly-switch for line break before body of environments (GLOBAL)

poly-switch for line break before end of environments (GLOBAL)

poly-switch for line break after end of environments (GLOBAL)

poly-switches for environments (PER-NAME)

poly-switch for line break before beginning of environments (PER-NAME)

poly-switch for line break before body of environments (PER-NAME)

poly-switch for line break before end of environments (PER-NAME)

poly-switch for line break after end of environments (PER-NAME)

poly-switches for specialBeginEnd (GLOBAL)

poly-switch for line break before beginning of specialBeginEnd (GLOBAL)

poly-switch for line break before body of specialBeginEnd (GLOBAL)

poly-switch for line break before end of specialBeginEnd (GLOBAL)

poly-switch for line break after end of specialBeginEnd (GLOBAL)

poly-switches for specialBeginEnd (PER-NAME)

poly-switch for line break before beginning of specialBeginEnd (PER-NAME)

poly-switch for line break before body of specialBeginEnd (PER-NAME)

poly-switch for line break before end of specialBeginEnd (PER-NAME)

poly-switch for line break after end of specialBeginEnd (PER-NAME)

poly-switches for key equals value (GLOBAL)

poly-switch for line break before beginning of key equals value (GLOBAL)

poly-switch for line break before = of key equals value (GLOBAL)

poly-switch for line break after = of key equals value (GLOBAL)

poly-switches for key equals value (PER-NAME)

poly-switch for line break before beginning of key equals value (PER-NAME)

poly-switch for line break before = of key equals value (PER-NAME)

poly-switch for line break after = of key equals value (PER-NAME)

poly-switches for ifElseFi (GLOBAL)

poly-switch for line break before beginning of ifElseFi (GLOBAL)

poly-switch for line break before body of ifElseFi (GLOBAL)

poly-switch for line break before or statement of ifElseFi (GLOBAL)

poly-switch for line break after or statement of ifElseFi (GLOBAL)

poly-switch for line break before else statement of ifElseFi (GLOBAL)

poly-switch for line break after else statement of ifElseFi (GLOBAL)

poly-switch for line break before end of ifElseFi (GLOBAL)

poly-switch for line break after end of ifElseFi (GLOBAL)

poly-switches for ifElseFi (PER-NAME)

poly-switch for line break before beginning of ifElseFi (PER-NAME)

poly-switch for line break before body of ifElseFi (PER-NAME)

poly-switch for line break before or statement of ifElseFi (PER-NAME)

poly-switch for line break after or statement of ifElseFi (PER-NAME)

poly-switch for line break before else statement of ifElseFi (PER-NAME)

poly-switch for line break after else statement of ifElseFi (PER-NAME)

poly-switch for line break before end of ifElseFi (PER-NAME)

poly-switch for line break after end of ifElseFi (PER-NAME)

poly-switches for commands (GLOBAL)

poly-switch for line break before beginning of commands (GLOBAL)

poly-switch for line break after end of commands (GLOBAL)

poly-switches for commands (PER-NAME)

poly-switch for line break before beginning of commands (PER-NAME)

poly-switch for line break after end of commands (PER-NAME)

poly-switches for verbatim (GLOBAL)

poly-switch for line break before beginning of verbatim (GLOBAL)

poly-switch for line break after end of verbatim (GLOBAL)

poly-switches for verbatim (PER-NAME)

poly-switches for namedGroupingBracesBrackets (GLOBAL)

poly-switch for line break before beginning of namedGroupingBracesBrackets (GLOBAL)

poly-switch for line break after end of namedGroupingBracesBrackets (GLOBAL)

poly-switches for commands (PER-NAME)

poly-switches for items (GLOBAL)

poly-switch for line break before beginning of items (GLOBAL)

poly-switch for line break after end of items (GLOBAL)

poly-switches for items (PER-NAME)

poly-switch for line break before beginning of items (PER-NAME)

poly-switch for line break after end of items (PER-NAME)

poly-switches for optional arguments (GLOBAL)

poly-switch for line break before beginning of optional arguments (GLOBAL)

poly-switch for line break before body of optional arguments (GLOBAL)

poly-switch for line break before end of optional arguments (GLOBAL)

poly-switch for line break after end of optional arguments (GLOBAL)

poly-switches for optional arguments (PER-NAME)

poly-switch for line break before beginning of optional arguments (PER-NAME)

poly-switch for line break before body of optional arguments (PER-NAME)

poly-switch for line break before end of optional arguments (PER-NAME)

poly-switch for line break after end of optional arguments (PER-NAME)

poly-switches for mandatory arguments (GLOBAL)

poly-switch for line break before beginning of mandatory arguments (GLOBAL)

poly-switch for line break before body of mandatory arguments (GLOBAL)

poly-switch for line break before end of mandatory arguments (GLOBAL)

poly-switch for line break after end of mandatory arguments (GLOBAL)

poly-switches for mandatory arguments (PER-NAME)

poly-switch for line break before beginning of mandatory arguments (PER-NAME)

poly-switch for line break before body of mandatory arguments (PER-NAME)

poly-switch for line break before end of mandatory arguments (PER-NAME)

poly-switch for line break after end of mandatory arguments (PER-NAME)

replacements to be made; requires -r, -rr or -rv switch

entry for replacement

string to be replaced

string to replace with

optional: string specifying whether replacement should be made before/after indentation. Default is 'before' if not specified

regular expression of the form 's/regex/replacement/modifiers; works only if 'this' is blank

fine tuning, proceed with caution!

fine tuning, for environments

regular expression for environment name

fine tuning, for ifElseFi

regular expression for ifElseFi name

fine tuning, for commands

regular expression for commands name

fine tuning, for items

regular expression for what can follow items

fine tuning, for keyEqualsValuesBracesBrackets

regular expression for key = value name

regular expression for what key = values follow

fine tuning, for namedGroupingBracesBrackets

regular expression for named grouping braces name

regular expression for what named grouping braces follow

fine tuning, for UnNamedGroupingBracesBrackets

regular expression for what UN named grouping braces follow

fine tuning, for arguments

regular expression for what can come BEFORE arguments

regular expression for what can come BETWEEN arguments

fine tuning, for trailing comments

regular expression for what can NOT come before %, for example \%

please use notPrecededBy instead

regular expression for what can come after %

fine tuning for some of the -m switch based features

regular expression for the 'better full stop' in the one-sentence-per-line routine

regular expression for the double back slash used in the DBS poly-switches

regular expression for the comma used in the comma-based poly-switches

Provide a JSON object that satisfies the schema "latexindent.pl YAML schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","allowTrailingCommas":true,"definitions":{"profile":{"type":"object","allOf":[{"$ref":"#/definitions/profileContent"}],"required":["commandName"]},"iisSetting":{"type":"object","allOf":[{"$ref":"#/definitions/iisSettingContent"}]},"iisSettingContent":{"properties":{"windowsAuthentication":{"type":"boolean","description":"Set to true to enable windows authentication for your site in IIS and IIS Express.","default":false},"anonymousAuthentication":{"type":"boolean","description":"Set to true to enable anonymous authentication for your site in IIS and IIS Express.","default":true},"iisExpress":{"type":"object","description":"Site settings to use with IISExpress profiles.","allOf":[{"$ref":"#/definitions/iisBindingContent"}]},"iis":{"type":"object","description":"Site settings to use with IIS profiles.","allOf":[{"$ref":"#/definitions/iisBindingContent"}]}}},"iisBindingContent":{"properties":{"applicationUrl":{"type":"string","format":"uri","description":"The URL of the web site.","default":""},"sslPort":{"type":"integer","maximum":65535,"minimum":0,"description":"The SSL port to use for the web site.","default":0}}},"profileContent":{"properties":{"commandName":{"type":"string","description":"Identifies the debug target to run.","enum":["Executable","Project","IIS","IISExpress","DebugRoslynComponent","Docker","DockerCompose","MsixPackage","SdkContainer","WSL2"],"default":"","minLength":1},"commandLineArgs":{"type":"string","description":"The arguments to pass to the target being run.","default":""},"executablePath":{"type":"string","description":"An absolute or relative path to the executable.","default":""},"workingDirectory":{"type":"string","description":"Sets the working directory of the command."},"launchBrowser":{"type":"boolean","description":"Set to true if the browser should be launched.","default":false},"launchUrl":{"type":"string","description":"The relative URL to launch in the browser."},"environmentVariables":{"type":"object","description":"Set the environment variables as key/value pairs.","additionalProperties":{"type":"string"}},"applicationUrl":{"type":"string","description":"A semi-colon delimited list of URL(s) to configure for the web server."},"nativeDebugging":{"type":"boolean","description":"Set to true to enable native code debugging.","default":false},"externalUrlConfiguration":{"type":"boolean","description":"Set to true to disable configuration of the site when running the Asp.Net Core Project profile.","default":false},"use64Bit":{"type":"boolean","description":"Set to true to run the 64 bit version of IIS Express, false to run the x86 version.","default":true},"ancmHostingModel":{"enum":["InProcess","OutOfProcess"],"description":"Specifies the hosting model to use when running ASP.NET core projects in IIS and IIS Express.","default":false},"sqlDebugging":{"type":"boolean","description":"Set to true to enable debugging of SQL scripts and stored procedures.","default":false},"jsWebView2Debugging":{"type":"boolean","description":"Set to true to enable the JavaScript debugger for Microsoft Edge (Chromium) based WebView2.","default":false},"leaveRunningOnClose":{"type":"boolean","description":"Set to true to leave the IIS application pool running when the project is closed.","default":false},"remoteDebugEnabled":{"type":"boolean","description":"Set to true to have the debugger attach to a process on a remote computer.","default":false},"remoteDebugMachine":{"type":"string","description":"The name and port number of the remote machine in name:port format."},"authenticationMode":{"enum":["None","Windows"],"description":"The authentication scheme to use when connecting to the remote computer.","default":"None"},"hotReloadEnabled":{"type":"boolean","description":"Set to true to enable applying code changes to the running application.","default":true},"publishAllPorts":{"type":"boolean","description":"Publish all exposed ports to random ports in Docker (-P).","default":true},"useSSL":{"type":"boolean","description":"Set to true to bind the SSL port.","default":true},"sslPort":{"type":"integer","maximum":65535,"minimum":0,"description":"The SSL port to use for the web site.","default":0},"httpPort":{"type":"integer","maximum":65535,"minimum":0,"description":"The HTTP port to use for the web site.","default":0},"dotnetRunMessages":{"type":"boolean","description":"Set to true to display a message when the project is building.","default":true},"inspectUri":{"type":"string","description":"The url to enable debugging on a Blazor WebAssembly application.","default":"{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"},"targetProject":{"type":"string","description":"A relative or absolute path to the .NET project file on which Roslyn component should be executed. Relative to the current project's folder.","default":""}}}},"id":"https://json.schemastore.org/launchsettings.json","properties":{"profiles":{"type":"object","description":"A list of debug profiles","additionalProperties":{"$ref":"#/definitions/profile"}},"iisSettings":{"type":"object","description":"IIS and IIS Express settings","allOf":[{"$ref":"#/definitions/iisSettingContent"}]}},"title":"JSON schema for the Visual Studio LaunchSettings.json file.","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for the Visual Studio LaunchSettings.json file.". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Set to true to enable windows authentication for your site in IIS and IIS Express.

Set to true to enable anonymous authentication for your site in IIS and IIS Express.

Site settings to use with IISExpress profiles.

Site settings to use with IIS profiles.

The URL of the web site.

The SSL port to use for the web site.

Identifies the debug target to run.

Executable Project IIS IISExpress DebugRoslynComponent Docker DockerCompose MsixPackage SdkContainer WSL2

The arguments to pass to the target being run.

An absolute or relative path to the executable.

Sets the working directory of the command.

Set to true if the browser should be launched.

The relative URL to launch in the browser.

Set the environment variables as key/value pairs.

A semi-colon delimited list of URL(s) to configure for the web server.

Set to true to enable native code debugging.

Set to true to disable configuration of the site when running the Asp.Net Core Project profile.

Set to true to run the 64 bit version of IIS Express, false to run the x86 version.

Specifies the hosting model to use when running ASP.NET core projects in IIS and IIS Express.

Set to true to enable debugging of SQL scripts and stored procedures.

Set to true to enable the JavaScript debugger for Microsoft Edge (Chromium) based WebView2.

Set to true to leave the IIS application pool running when the project is closed.

Set to true to have the debugger attach to a process on a remote computer.

The name and port number of the remote machine in name:port format.

The authentication scheme to use when connecting to the remote computer.

Set to true to enable applying code changes to the running application.

Publish all exposed ports to random ports in Docker (-P).

Set to true to bind the SSL port.

The SSL port to use for the web site.

The HTTP port to use for the web site.

Set to true to display a message when the project is building.

The url to enable debugging on a Blazor WebAssembly application.

A relative or absolute path to the .NET project file on which Roslyn component should be executed. Relative to the current project's folder.

A list of debug profiles

IIS and IIS Express settings

Provide a JSON object that satisfies the schema "JSON schema for the Visual Studio LaunchSettings.json file.". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/lazydocker.json","definitions":{"color":{"type":"string","oneOf":[{"enum":["black","red","green","yellow","blue","magenta","cyan","white","bold","default","reverse","underline","strikethrough"]},{"pattern":"^#[0-9a-fA-F]{6}$","examples":["#ff00ff"]}]}},"description":"Settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","properties":{"gui":{"title":"gui","description":"UI settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","properties":{"scrollHeight":{"title":"scroll height","description":"A scroll height\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"integer","minimum":1,"default":2},"language":{"title":"language","description":"A language\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","enum":["auto","en","pl","nl","de","tr"],"default":"auto"},"theme":{"title":"theme","description":"Theme settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","properties":{"activeBorderColor":{"title":"active border color","description":"An active border color\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"array","uniqueItems":true,"minItems":1,"items":{"$ref":"#/definitions/color"}},"inactiveBorderColor":{"title":"inactive border color","description":"An inactive border color\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"array","uniqueItems":true,"minItems":1,"items":{"$ref":"#/definitions/color"}},"selectedLineBgColor":{"title":"selected line background color","description":"A selected line background color\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"array","uniqueItems":true,"minItems":1,"items":{"$ref":"#/definitions/color"}},"optionsTextColor":{"title":"options text color","description":"An option text color\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"array","uniqueItems":true,"minItems":1,"items":{"$ref":"#/definitions/color"}}}},"returnImmediately":{"title":"return immediately","description":"Whether to return immediately\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"boolean","default":false},"wrapMainPanel":{"title":"wrap main panel","description":"Whether to wrap main panel\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"boolean","default":true},"sidePanelWidth":{"title":"side panel width","description":"A side panel ratio of screen's width\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"number","minimum":0,"default":0.333},"showBottomLine":{"title":"show bottom line","description":"Whether to show bottom line\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"boolean","default":true},"expandFocusedSidePanel":{"title":"expand focused side panel","description":"Whether to expand focused side panel\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"boolean","default":false},"screenMode":{"title":"screen mode","description":"A screen mode\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","enum":["normal","half","fullscreen"],"default":"normal"},"containerStatusHealthStyle":{"title":"container status health style","description":"A style of container status and it's health display\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","enum":["long","short","icon"],"default":"long"}}},"logs":{"title":"logs","description":"Log settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","properties":{"timestamps":{"title":"timestamps","description":"Whether to show timestamps\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"boolean","default":false},"since":{"title":"since","description":"A start time\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"60m"},"tail":{"title":"tail","description":"A last line count\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","oneOf":[{"type":"string"},{"type":"integer","minimum":0,"examples":[200]}],"default":""}}},"commandTemplates":{"title":"command templates","description":"Command templates\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","properties":{"dockerCompose":{"title":"docker compose","description":"A docker compose command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"docker-compose"},"restartService":{"title":"restart service","description":"A restart service command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} restart {{ .Service.Name }}"},"up":{"title":"up","description":"An up command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} up -d"},"down":{"title":"down","description":"A down command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} down"},"downWithVolumes":{"title":"down with volumes","description":"A down with volumes command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} down --volumes"},"upService":{"title":"up service","description":"An up service command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} up -d {{ .Service.Name }}"},"startService":{"title":"start service","description":"A start service command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} start {{ .Service.Name }}"},"stopService":{"title":"stop service","description":"A stop service command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} stop {{ .Service.Name }}"},"serviceLogs":{"title":"service logs","description":"A service logs command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} logs --since=60m --follow {{ .Service.Name }}"},"viewServiceLogs":{"title":"view service logs","description":"A view service logs command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} logs --follow {{ .Service.Name }}"},"rebuildService":{"title":"rebuild service","description":"A rebuild service command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} up -d --build {{ .Service.Name }}"},"recreateService":{"title":"recreate service","description":"A recreate service command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} up -d --force-recreate {{ .Service.Name }}"},"allLogs":{"title":"all logs","description":"An all logs command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} logs --tail=300 --follow"},"viewAlLogs":{"title":"view al logs","description":"A view al logs command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} logs"},"dockerComposeConfig":{"title":"docker compose config","description":"A docker compose config command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} config"},"checkDockerComposeConfig":{"title":"check docker compose config","description":"A check docker compose config command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} config --quiet"},"serviceTop":{"title":"service top","description":"A service top command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"{{ .DockerCompose }} top {{ .Service.Name }}"}}},"os":{"title":"os","description":"OS settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","properties":{"openCommand":{"title":"open command","description":"An open command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"open {{filename}}"},"openLinkCommand":{"title":"open link command","description":"An open link command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","default":"open {{link}}"}}},"stats":{"title":"stats","description":"Statistic settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","properties":{"graphs":{"title":"graphs","description":"Graph settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"array","items":{"type":"object","properties":{"caption":{"title":"caption","description":"A caption\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","examples":["CPU (%)"]},"statPath":{"title":"stat path","description":"A path\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","examples":["DerivedStats.CPUPercentage"]},"color":{"$ref":"#/definitions/color","title":"color","description":"A color\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default"}}}}}},"customCommands":{"title":"custom commands","description":"Custom commands\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","properties":{"containers":{"title":"containers","description":"Container settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"array","uniqueItems":true,"items":{"type":"object","properties":{"name":{"title":"name","description":"A name\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","examples":["bash"]},"attach":{"title":"attach","description":"Whether to attach\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"boolean"},"command":{"title":"command","description":"A command\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","examples":["docker exec -it {{ .Container.ID }} bash"]},"serviceNames":{"title":"service names","description":"Service names\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"array","uniqueItems":true,"items":{"description":"A service name\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string"},"default":[]}}}}}},"replacements":{"title":"replacements","description":"Replacement settings\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","patternProperties":{".":{"title":"replacement group","description":"A replacement group\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"object","patternProperties":{".":{"title":"replacement","description":"A replacement\nhttps://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default","type":"string","examples":["<dev>","<prod>"]}}}}}},"title":"ui settings","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "ui settings". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

black red green yellow blue magenta cyan white bold default reverse underline strikethrough

Settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

gui

UI settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

scroll height

A scroll height
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

language

A language
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

theme

Theme settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

active border color

An active border color
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

inactive border color

An inactive border color
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

selected line background color

A selected line background color
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

options text color

An option text color
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

return immediately

Whether to return immediately
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

wrap main panel

Whether to wrap main panel
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

side panel width

A side panel ratio of screen's width
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

show bottom line

Whether to show bottom line
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

expand focused side panel

Whether to expand focused side panel
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

screen mode

A screen mode
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

container status health style

A style of container status and it's health display
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

logs

Log settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

timestamps

Whether to show timestamps
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

since

A start time
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

tail

A last line count
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

command templates

Command templates
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

docker compose

A docker compose command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

restart service

A restart service command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} restart {{ .Service.Name }}

up

An up command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

down

A down command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

down with volumes

A down with volumes command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

up service

An up service command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} up -d {{ .Service.Name }}

start service

A start service command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} start {{ .Service.Name }}

stop service

A stop service command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} stop {{ .Service.Name }}

service logs

A service logs command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} logs --since=60m --follow {{ .Service.Name }}

view service logs

A view service logs command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} logs --follow {{ .Service.Name }}

rebuild service

A rebuild service command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} up -d --build {{ .Service.Name }}

recreate service

A recreate service command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} up -d --force-recreate {{ .Service.Name }}

all logs

An all logs command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} logs --tail=300 --follow

view al logs

A view al logs command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

docker compose config

A docker compose config command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

check docker compose config

A check docker compose config command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

service top

A service top command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

{{ .DockerCompose }} top {{ .Service.Name }}

os

OS settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

open command

An open command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

open link command

An open link command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

stats

Statistic settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

graphs

Graph settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

caption

A caption
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

stat path

A path
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

color

A color
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

custom commands

Custom commands
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

containers

Container settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

name

A name
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

attach

Whether to attach
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

command

A command
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

docker exec -it {{ .Container.ID }} bash

service names

Service names
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

A service name
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

replacements

Replacement settings
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

replacement group

A replacement group
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

replacement

A replacement
https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md#default

ui settings

Provide a JSON object that satisfies the schema "ui settings". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","$defs":{"file":{"oneOf":[{"description":"This object or string represents the file format","type":"string"},{"description":"This object or string represents the file format","type":"null"},{"$ref":"#/$defs/fileFormat","description":"This object or string represents the file format"}]},"fileFormat":{"description":"This object represents a file format","type":"object","properties":{"name":{"description":"Name of block file","type":"string"},"template":{"description":"Path to file template","type":"string"}},"required":["name"]}},"id":"https://json.schemastore.org/lego.json","properties":{"blocks":{"description":"An array of your app's blocks.","type":"array","items":{"type":"object","properties":{"type":{"description":"The name of the block type","type":"string"},"path":{"description":"Path relative to root where the block will be stored","type":"string"},"isFile":{"description":"Is this a file? or a folder? False by default.","type":"boolean"},"files":{"description":"Files making up the block","type":"array","items":{"$ref":"#/$defs/file"}},"file":{"$ref":"#/$defs/file"}},"required":["type","path"]}},"fileFormats":{"description":"An object mapping file objects to strings","type":"object","patternProperties":{".*":{"$ref":"#/$defs/fileFormat"}}}},"required":["blocks"],"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "lego". Here are the required top‑level fields: blocks. Return only the valid JSON object.

This object or string represents the file format

This object represents a file format

Name of block file

Path to file template

An array of your app's blocks.

The name of the block type

Path relative to root where the block will be stored

Is this a file? or a folder? False by default.

Files making up the block

An object mapping file objects to strings

Provide a JSON object that satisfies the schema "lego". Here are the required top‑level fields: blocks. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/lerna","description":"Lerna is a tool used in JavaScript monorepo projects. The lerna.json file is\nused to configure lerna to to best fit your project.","properties":{"version":{"description":"The current version of the repository (or independent).","type":"string"},"npmClient":{"description":"Specify which client to run commands with (change to \"yarn\" to run commands with yarn. Defaults to \"npm\".","type":"string"},"npmClientArgs":{"description":"Array of strings that will be passed as arguments to the npmClient.","type":"array","items":{"type":"string"}},"useWorkspaces":{"description":"Enable workspaces integration when using Yarn.","type":"boolean"},"workspaces":{"description":"Array of globs to use a workspace locations.","type":"array","items":{"type":"string"}},"packages":{"description":"Array of globs to use a package locations.","type":"array","items":{"type":"string"}},"ignoreChanges":{"description":"Array of globs of files to ignore when detecting changed packages.","type":"array","items":{"type":"string"}},"command":{"description":"Options for the CLI commands.","type":"object","properties":{"publish":{"description":"Options for the publish command.","type":"object","properties":{"ignoreChanges":{"description":"An array of globs that won't be included in \"lerna changed/publish\". Use this to prevent publishing of a new version unnecessarily for changes, such as fixing a README.md typo.","type":["string","array"],"items":{"type":"string"}},"message":{"description":"A custom commit message when performing version updates for publication. See https://github.com/lerna/lerna/tree/master/commands/version#--message-msg for more information.","type":"string"}}},"bootstrap":{"description":"Options for the bootstrap command.","type":"object","properties":{"ignore":{"description":"An array of globs that won't be bootstrapped when running \"lerna bootstrap\" command.","type":["string","array"],"items":{"type":"string"}},"npmClientArgs":{"description":"Array of strings that will be passed as arguments directly to \"npm install\" during the \"lerna bootstrap\" command.","type":"array","items":{"type":"string"}}}},"init":{"description":"Options for the init command.","type":"object","properties":{"exact":{"description":"Use lerna 1.x behavior of \"exact\" comparison. It will enforce the exact match for all subsequent executions.","type":"boolean"}}},"run":{"description":"Options for the run command.","type":"object","properties":{"npmClient":{"description":"Which npm client should be used when running package scripts.","type":"string"}}},"version":{"description":"Options for the version command.","type":"object","properties":{"allowBranch":{"description":"A whitelist of globs that match git branches where \"lerna version\" is enabled.","type":["string","array"],"items":{"type":"string"}},"message":{"description":"A custom commit message when performing version updates for publication. See https://github.com/lerna/lerna/tree/master/commands/version#--message-msg for more information.","type":"string"}}}}}},"title":"A JSON schema for lerna.json files","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "A JSON schema for lerna.json files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Lerna is a tool used in JavaScript monorepo projects. The lerna.json file is
used to configure lerna to to best fit your project.

The current version of the repository (or independent).

Specify which client to run commands with (change to "yarn" to run commands with yarn. Defaults to "npm".

Array of strings that will be passed as arguments to the npmClient.

Enable workspaces integration when using Yarn.

Array of globs to use a workspace locations.

Array of globs to use a package locations.

Array of globs of files to ignore when detecting changed packages.

Options for the CLI commands.

Options for the publish command.

An array of globs that won't be included in "lerna changed/publish". Use this to prevent publishing of a new version unnecessarily for changes, such as fixing a README.md typo.

A custom commit message when performing version updates for publication. See https://github.com/lerna/lerna/tree/master/commands/version#--message-msg for more information.

Options for the bootstrap command.

An array of globs that won't be bootstrapped when running "lerna bootstrap" command.

Array of strings that will be passed as arguments directly to "npm install" during the "lerna bootstrap" command.

Options for the init command.

Use lerna 1.x behavior of "exact" comparison. It will enforce the exact match for all subsequent executions.

Options for the run command.

Which npm client should be used when running package scripts.

Options for the version command.

A whitelist of globs that match git branches where "lerna version" is enabled.

A JSON schema for lerna.json files

Provide a JSON object that satisfies the schema "A JSON schema for lerna.json files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.