Skip to content

Commit bd7802b

Browse files
committed
Add experimental.commit.preview
1 parent f76d5e0 commit bd7802b

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

unison-cli/src/Unison/Codebase/Editor/HandleInput.hs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import Unison.Builtin qualified as Builtin
3737
import Unison.Builtin.Terms qualified as Builtin
3838
import Unison.Cli.Monad (Cli)
3939
import Unison.Cli.Monad qualified as Cli
40-
import Unison.Cli.MonadUtils (getCurrentBranch0)
4140
import Unison.Cli.MonadUtils qualified as Cli
4241
import Unison.Cli.NamesUtils qualified as Cli
4342
import Unison.Cli.PrettyPrintUtils qualified as Cli
@@ -737,23 +736,20 @@ loop loadMode e = do
737736
let sr = Slurp.slurpFile uf vars Slurp.AddOp currentNames
738737
previewResponse sourceName sr uf
739738
CommitI mayScratchFile -> do
740-
uf <- handleLoad True LoadForCommit mayScratchFile
739+
uf <- handleLoad False LoadForCommit mayScratchFile
741740
currentPath <- Cli.getCurrentPath
742741
libNames <-
743742
Cli.getCurrentBranch0
744743
<&> Branch.onlyLib
745744
<&> Branch.toNames
746745
let sr = Slurp.slurpFile uf mempty Slurp.AddOp libNames
747746
let adds = SlurpResult.adds sr
748-
beforeBranch0 <- Cli.getCurrentBranch0
749747
Cli.Env {codebase} <- ask
750748
Cli.runTransaction . Codebase.addDefsToCodebase codebase $ uf
751749
description <- inputDescription input
752750
Cli.stepAt description (Path.unabsolute currentPath, doSlurpAdds adds uf . Branch.onlyLib)
753-
afterBranch0 <- getCurrentBranch0
754-
(ppe, diff) <- diffHelper beforeBranch0 afterBranch0
755-
currentPath <- Cli.getCurrentPath
756-
Cli.respondNumbered $ ShowDiffNamespace (Right currentPath) (Right currentPath) ppe diff
751+
CommitPreviewI mayScratchFile -> do
752+
void $ handleLoad False LoadForCommit mayScratchFile
757753
UpdateI optionalPatch requestedNames -> handleUpdate input optionalPatch requestedNames
758754
Update2I -> handleUpdate2
759755
PreviewUpdateI requestedNames -> do
@@ -1073,7 +1069,8 @@ inputDescription input =
10731069
DeleteTarget'ProjectBranch _ -> wat
10741070
DeleteTarget'Project _ -> wat
10751071
AddI _selection -> pure "add"
1076-
CommitI mayScratchFile -> pure ("commit" <> maybe "" Text.pack mayScratchFile)
1072+
CommitI mayScratchFile -> pure ("experimental.commit" <> maybe "" Text.pack mayScratchFile)
1073+
CommitPreviewI mayScratchFile -> pure ("experimental.commit.preview" <> maybe "" Text.pack mayScratchFile)
10771074
UpdateI p0 _selection -> do
10781075
p <-
10791076
case p0 of

unison-cli/src/Unison/Codebase/Editor/Input.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ data Input
148148
| AddI (Set Name)
149149
| PreviewAddI (Set Name)
150150
| CommitI (Maybe FilePath)
151+
| CommitPreviewI (Maybe FilePath)
151152
| UpdateI OptionalPatch (Set Name)
152153
| Update2I
153154
| PreviewUpdateI (Set Name)

unison-cli/src/Unison/CommandLine/InputPatterns.hs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module Unison.CommandLine.InputPatterns
1919
clear,
2020
clone,
2121
commit,
22+
commitPreview,
2223
compileScheme,
2324
createAuthor,
2425
debugClearWatchCache,
@@ -191,8 +192,8 @@ import Unison.Name (Name)
191192
import Unison.Name qualified as Name
192193
import Unison.NameSegment (NameSegment)
193194
import Unison.NameSegment qualified as NameSegment
194-
import Unison.Prelude hiding (view)
195195
import Unison.Parser.Ann (Ann)
196+
import Unison.Prelude hiding (view)
196197
import Unison.Project
197198
( ProjectAndBranch (..),
198199
ProjectAndBranchNames (..),
@@ -817,6 +818,20 @@ commit =
817818
[file] -> Input.LoadI . Just <$> unsupportedStructuredArgument "a file name" file
818819
_ -> Left (I.help load)
819820

821+
commitPreview :: InputPattern
822+
commitPreview =
823+
InputPattern
824+
"experimental.commit.preview"
825+
[]
826+
I.Visible
827+
[("scratch file", Optional, filePathArg)]
828+
( "`experimental.commit.preview` shows the diff which would be applied if you were to run " <> patternName commit
829+
)
830+
\case
831+
[] -> pure $ Input.CommitI Nothing
832+
[file] -> Input.LoadI . Just <$> unsupportedStructuredArgument "a file name" file
833+
_ -> Left (I.help load)
834+
820835
update :: InputPattern
821836
update =
822837
InputPattern

0 commit comments

Comments
 (0)