Skip to content

Commit

Permalink
define a variable for the amount of indented spaces
Browse files Browse the repository at this point in the history
makes it easier to override or, hopefully in the future, make
configurable
  • Loading branch information
toastal committed Jun 27, 2024
1 parent c67a7b6 commit f6ac0d2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/Nixfmt/Predoc.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{-# LANGUAGE OverloadedStrings #-}

module Nixfmt.Predoc (
indentWidth,
text,
comment,
trailingComment,
Expand Down Expand Up @@ -130,6 +131,10 @@ instance (Pretty a, Pretty b) => Pretty (a, b) where
instance (Pretty a, Pretty b, Pretty c) => Pretty (a, b, c) where
pretty (a, b, c) = pretty a <> pretty b <> pretty c

-- | Default indentation spacing.
indentWidth :: Int
indentWidth = 2

text :: Text -> Doc
text "" = []
text t = [Text 0 0 RegularT t]
Expand Down Expand Up @@ -484,7 +489,7 @@ layoutGreedy tw doc = Text.concat $ evalState (go [Group RegularG doc] []) (0, s
case textNL `compare` nl of
-- Push the textNL onto the stack, but only increase the actual indentation (`ci`)
-- if this is the first one of a line. All subsequent nestings within the line effectively get "swallowed"
GT -> putR ((if cc == 0 then ci + 2 else ci, textNL) <| indents) >> go'
GT -> putR ((if cc == 0 then ci + indentWidth else ci, textNL) <| indents) >> go'
-- Need to go down one or more levels
-- Just pop from the stack and recurse until the indent matches again
LT -> putR (NonEmpty.fromList indents') >> putText textNL textOffset t
Expand Down Expand Up @@ -611,14 +616,14 @@ layoutGreedy tw doc = Text.concat $ evalState (go [Group RegularG doc] []) (0, s
_ -> grp
(nl, off) = nextIndent grp'

indentWillIncrease = if fst (nextIndent rest) > lineNL then 2 else 0
indentWillIncrease = if fst (nextIndent rest) > lineNL then indentWidth else 0
where
lastLineNL = snd $ NonEmpty.head ci
lineNL = lastLineNL + (if nl > lastLineNL then 2 else 0)
lineNL = lastLineNL + (if nl > lastLineNL then indentWidth else 0)
in fits indentWillIncrease (tw - firstLineWidth rest) grp'
<&> \t -> runState (putText nl off t) (cc, ci)
else
let indentWillIncrease = if fst (nextIndent rest) > lineNL then 2 else 0
let indentWillIncrease = if fst (nextIndent rest) > lineNL then indentWidth else 0
where
lineNL = snd $ NonEmpty.head ci
in fits (indentWillIncrease - cc) (tw - cc - firstLineWidth rest) grp
Expand Down
1 change: 1 addition & 0 deletions src/Nixfmt/Pretty.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import Nixfmt.Predoc (
hardline,
hardspace,
hcat,
indentWidth,
line,
line',
nest,
Expand Down

0 comments on commit f6ac0d2

Please sign in to comment.